SlideShare a Scribd company logo
CƠ BẢN VỀ SQL
Nội dung chính
1-2
• Giới thiệu về SQL
• DML
• DDL
• Tối ưu hóa câu lệnh SQL
SQL
1-3
 SQL: Structured Query Language
 Các loại:
• DML (Data Manipulation Language)
• DDL (Data Definition Language)
• Transaction Control
• Session Control
• System Control
(Data Manipulation Language)
- !I'
O R A C L E "
1-4
Kiểu dữ liệu
1-5
Character Numeric Datetime LOB ROWID Binary
CHAR (n) NUMBER(m,n) DATE CLOB ROWID RAW(size)
NCHAR(n) FLOAT TIMESTAMP WITH
TIMEZONE
NCLOB UROWID LONG
RAW
VARCHAR2(n) BINARY_FLOAT TIMESTAMP
WITH LOCAL
TIMEZONE
BLOB
NVARCHAR2(n) BINARY_DOUBLE INTERVAL
YEAR[(n)] TO
MONTH
BFILE
INTERVAL
DAY[(m)] TO
SECOND[(n)]
Truy vấn dữ liệu
1-6
SELECT [DISTINCT] danh_sách_cột
FROM {table_name | view_name}
[WHERE điều_kiện]
[GROUP BY danh_sách_cột_1]
[HAVING điều_kiện_lọc]
[ORDER BY danh_sách_cột_2 [ASC | DESC]]
DEMO
1-7
Phép toán
1-8
Loại phép toán Phép toán
T
oán học +, -, *, /
So sánh =, {!=, <>, ^=}, <, >, <=, >=
 SOME/ANY
, ALL
Logic NOT
, AND, OR
Các phép toán
chuỗi
||, LIKE, NOT LIKE
Các phép toán
khác
IN, NOT IN, BETWEEN, EXISTS, IS NULL, IS
NOT NULL
Một hàm phục vụ cho truy vấn
1-9
Chuỗi Số Thời gian Chuyển đổi Rẽ
nhánh
Gộp
LENGTH FLOOR,
CEIL,
ROUND
ADD_MONTHS CAST CASE MIN,
MAX
LOWER,
UPPER
MOD SYSDATE TO_CHAR DECODE COUNT
LPAD,
RPAD
SQRT EXTRACT TO_DATE AVG
LTRIM,
RTRIM,
TRIM
MONTHS_BETWEEN TO_NUMBER SUM
SUBSTR
Lấy dữ liệu từ nhiều bảng
1-10
 Sử dụng phép nối
• INNER JOIN
• NATURAL JOIN
• OUTER JOIN
– LEFT OUTER JOIN
– RIGHT OUTER JOIN
– FULL OUTER JOIN
TRUY VẤN LỒNG (SUBQUERY)
1-11
 Subquery có thể đặt ở:
• SELECT
• FROM
• WHERE
• ….
Tối ưu hóa truy vấn
1-12
• Chỉ SELECT những cột và những bảng ghi cần thiết
• Sử dụng JOIN thay vì subquery
• Tránh truy vấn trên view
• Gọi tên cột tường mình
• Dùng CASE thay vì sử dụng nhiều truy vấn
• Dùng INDEX
• Dùng WHERE tốt hơn HAVING
• Dùng EXISTS/NOT EXISTS tốt hơn IN/NOT IN
• Hạn chế sử dụng các phép tính toán trong mệnh đề
WHERE
Sửa dữ liệu
UPDATE Tên_bảng
SET cột1 = giá_trị1, …, cộtn
[WHERE điều_kiện];
1-13
= giá_trị_n
Xóa dữ liệu
 Xóa từng bản ghi
 Xóa toàn bộ dữ liệu
DELETE Tên_bảng WHERE [điều_kiện];
TRUNCATE TABLE
1-14
Tên_bảng;
Thêm mới dữ liệu
 Nhập giá trị cho mọi cột trong bảng
 Nhập giá trị cho một số cột trong bảng
 Lấy giá trị từ bảng khác
INSERT INTO Tên_bảng VALUES(gt1, gt2, …)
INSERT INTO Tên_bảng (cột1, cột2, …)
VALUES (gt1, gt2, …)
INSERT INTO
SELECT cotx,
FROM…WHERE…
1-15
Tên_bảng (cột1, cột2, …)
coty, …
(Data Definition Language)
O R A C L E "
1-16
Bảng
1-17
 Tên bảng & tên cột tuân theo quy tắc:
• 1-30 kí tự
• Bắt đầu bằng chữ cái
• Bao gồm chữ cái, số, _, #, $ (hạn chế dùng #, $)
• Không dùng những từ có sẵn trong Oracle
(NUMBER, INDEX…)
• Tên cột phải duy nhất trong bảng
• Tên bảng phải duy nhất trong namespace
Tạo bảng
 Ví dụ:
1-18
Constraint
 Đảm bảo tính toàn vẹn của dữ liệu
 Có thể tạo constraint lúc tạo bảng hoặc sau khi
tạo bảng
1-19
Các loại constraint
1-20
 NOT NULL
 UNIQUE
• Không cho phép nhập giá trị giống nhau
• Oracle tự động tạo unique index cho cột có ràng buộc
UNIQUE
 PRIMARY KEY
• Có thể tạo khóa chính cho 1 hoặc nhiều cột
• Oracle tự động tạo unique index cho cột làm khóa chính
 FOREIGN KEY
• Thiết lập mối quan hệ của 1 bảng với bảng khác
 CHECK
• Kiểm tra giá trị của một cột thỏa mãn điều kiện cho trước
Khai báo constraint - 1
 NOT NULL contraint
 UNIQUE contraint
1-21
Khai báo constraint - 2
 PRIMARY KEY constraint
1-22
Khai báo constraint - 3
 FOREIGN KEY constraint
• Chú ý: Không được phép tạo khóa ngoại cho những
cột có kiểu dữ liệu: CLOB, NCLOB, BLOB, LONG,
LONG RAW, TIMESTAMP WITH TIMEZONE
 Ví dụ:
1-23
Khai báo constraint - 4
 CHECK constraint
• Kiểm tra giá trị của một cột có thỏa mãn điều kiện
cho trước hay không
 Ví dụ:
1-24
 Sửa giá trị mặc định của cột
 Đổi tên bảng
 Xóa cột
Các thao tác liên quan tới bảng
1-25
 Sửa cột
 Thêm cột
Các thao tác liên quan tới bảng
1-26
 Khi xóa bảng, Oracle tiến hành:
• Xóa dữ liệu
• Xóa cấu trúc dữ liệu lưu trữ bảng
• Xóa các trigger liên quan tới bảng
• Xóa các quyền liên quan tới bảng
DROP TABLE hr.employees PURGE;
 Một số tùy chọn cho câu lệnh xóa bảng
• PURGE: không cho phép flashback
• CASCADE CONSTRAINTS: xóa mọi ràng buộc dữ
liệu có liên quan
1-27
Các thao tác liên quan tới bảng
Các thao tác liên quan tới bảng
 Thêm constraints
• Ví dụ
1-28
Các thao tác liên quan tới bảng
 Sửa constraints
• Xóa
• Đổi tên
• Vô hiệu hóa (disable)
1-29
Sequence
1-30
Là một đối tượng trong schema dùng để tự động
sinh ra các số nguyên theo thứ tự nào đó(thường
dùng cho khóa chính)
 Đặc điểm
• Mỗi sequence có 1 tên xác định
• Không gắn với 1 cột hay 1 bảng nào
• Có thể tạo ra số nguyên theo thứ tự tăng hoặc giảm
dần đều
• Khoảng cách giữa 2 số nguyên do người dùng tùy
đặt
• Có thể quay vòng nếu giá trị sinh ra đã đạt ngưỡng
Sequence …
 Các thuộc tính:
• START WITH
• INCREMENT BY
• MAXVALUE
• MINVALUE
• CACHE
1 3 5 7 9 11 13 15 …
1-31
Quản lý sequence
 Sửa sequence
• Có thể sửa các thuộc tính: INCREMENT BY,
MAXVALUE, MINVALUE, CYCLE, CACHE
• Không thể sửa: START WITH
• Ví dụ:
 Xóa sequence
 Sử dụng sequence
1-32
O R A C L E "
1-33

More Related Content

What's hot

Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTBài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
MasterCode.vn
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
MasterCode.vn
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
hoangdinhhanh88
 
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTBài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
MasterCode.vn
 
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTBài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
MasterCode.vn
 
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTBài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
MasterCode.vn
 
Ngon ngu truy van sql
Ngon ngu truy van sqlNgon ngu truy van sql
Ngon ngu truy van sqlPhùng Duy
 
Slides1
Slides1Slides1
Slides1
trucmt2000
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_server
thai
 
Com201 slide 7
Com201   slide 7Com201   slide 7
Com201 slide 7
tuanduongcntt
 
Bài 1 Tổng quan về MS Access - Giáo trình FPT
Bài 1 Tổng quan về MS Access - Giáo trình FPTBài 1 Tổng quan về MS Access - Giáo trình FPT
Bài 1 Tổng quan về MS Access - Giáo trình FPT
MasterCode.vn
 
Chuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tinChuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tin
MasterCode.vn
 
Cursor & Function trong SQL Server
Cursor & Function trong SQL ServerCursor & Function trong SQL Server
Cursor & Function trong SQL Server
Huy Vũ
 
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vnPdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
MasterCode.vn
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
MasterCode.vn
 
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
Pix Nhox
 
Com201 slide 1
Com201   slide 1Com201   slide 1
Com201 slide 1
tuanduongcntt
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
MasterCode.vn
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
MasterCode.vn
 
Sao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vnSao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vn
zBackupVN
 

What's hot (20)

Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPTBài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
Bài 6: Bảo mật trong SQL SERVER 2008 - Giáo trình FPT
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
 
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPTBài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
Bài 6 Làm việc với truy vấn cơ bản - Giáo trình FPT
 
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPTBài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
Bài 5: Hàm người dùng định nghĩa & VIEW - Giáo trình FPT
 
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPTBài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
Bài 7: Làm việc với truy vấn nâng cao - Giáo trình FPT
 
Ngon ngu truy van sql
Ngon ngu truy van sqlNgon ngu truy van sql
Ngon ngu truy van sql
 
Slides1
Slides1Slides1
Slides1
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_server
 
Com201 slide 7
Com201   slide 7Com201   slide 7
Com201 slide 7
 
Bài 1 Tổng quan về MS Access - Giáo trình FPT
Bài 1 Tổng quan về MS Access - Giáo trình FPTBài 1 Tổng quan về MS Access - Giáo trình FPT
Bài 1 Tổng quan về MS Access - Giáo trình FPT
 
Chuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tinChuong 5 toi_uu_hoa_van_tin
Chuong 5 toi_uu_hoa_van_tin
 
Cursor & Function trong SQL Server
Cursor & Function trong SQL ServerCursor & Function trong SQL Server
Cursor & Function trong SQL Server
 
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vnPdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
 
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
SQL Cursor - kiểu dữ liệu Cursor (Kiểu dữ liệu con trỏ)
 
Com201 slide 1
Com201   slide 1Com201   slide 1
Com201 slide 1
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theoBài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo
 
Sao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vnSao lưu & phục hồi database SQL Server | zBackup.vn
Sao lưu & phục hồi database SQL Server | zBackup.vn
 

Similar to 2 co ban ve sql

Cơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptxCơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
NguynNgcTn10
 
Chuong6_NgonnguSQL.pdf
Chuong6_NgonnguSQL.pdfChuong6_NgonnguSQL.pdf
Chuong6_NgonnguSQL.pdf
HanaYuki19
 
ORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptxORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptx
QuangTrnMinh18
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
kikihoho
 
Training sql1
Training sql1Training sql1
Training sql1
Đông Đô
 
Tip oracle
Tip oracleTip oracle
Tip oracle
Tích Nguyễn
 
Bài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL serverBài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL server
MasterCode.vn
 
Training sql4
Training sql4Training sql4
Training sql4
Đông Đô
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
khanhtoankmz
 
03-Indexes.pdf
03-Indexes.pdf03-Indexes.pdf
03-Indexes.pdf
DngKen1
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql. .
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
Liễu Hồng
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
Vu Phong
 
Giao trinh oracle_sql_plsql_co_ban
Giao trinh oracle_sql_plsql_co_banGiao trinh oracle_sql_plsql_co_ban
Giao trinh oracle_sql_plsql_co_ban
Tích Nguyễn
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
kikihoho
 

Similar to 2 co ban ve sql (17)

Cơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptxCơ sở dữ liệu SQL qua các vi du cu the.pptx
Cơ sở dữ liệu SQL qua các vi du cu the.pptx
 
Chuong6_NgonnguSQL.pdf
Chuong6_NgonnguSQL.pdfChuong6_NgonnguSQL.pdf
Chuong6_NgonnguSQL.pdf
 
ORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptxORACLE_ch2_SQL.pptx
ORACLE_ch2_SQL.pptx
 
Sql understanding
Sql understandingSql understanding
Sql understanding
 
csdl - buoi7-8-9
csdl - buoi7-8-9csdl - buoi7-8-9
csdl - buoi7-8-9
 
Training sql1
Training sql1Training sql1
Training sql1
 
Tip oracle
Tip oracleTip oracle
Tip oracle
 
Bài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL serverBài 2 : Các đối tượng trong CSDL - SQL server
Bài 2 : Các đối tượng trong CSDL - SQL server
 
Training sql4
Training sql4Training sql4
Training sql4
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
 
03-Indexes.pdf
03-Indexes.pdf03-Indexes.pdf
03-Indexes.pdf
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
 
Phan3
Phan3Phan3
Phan3
 
Giao trinh oracle_sql_plsql_co_ban
Giao trinh oracle_sql_plsql_co_banGiao trinh oracle_sql_plsql_co_ban
Giao trinh oracle_sql_plsql_co_ban
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
 

More from hoangdinhhanh88

linux-lecture3.ppt
linux-lecture3.pptlinux-lecture3.ppt
linux-lecture3.ppt
hoangdinhhanh88
 
Chapter 9 TCP IP Reference Model.ppt
Chapter 9 TCP IP Reference Model.pptChapter 9 TCP IP Reference Model.ppt
Chapter 9 TCP IP Reference Model.ppt
hoangdinhhanh88
 
RemoteAdmin.pptx
RemoteAdmin.pptxRemoteAdmin.pptx
RemoteAdmin.pptx
hoangdinhhanh88
 
Disks.pptx
Disks.pptxDisks.pptx
Disks.pptx
hoangdinhhanh88
 
Backups.pptx
Backups.pptxBackups.pptx
Backups.pptx
hoangdinhhanh88
 
7_Chapter 7_Email.pptx
7_Chapter 7_Email.pptx7_Chapter 7_Email.pptx
7_Chapter 7_Email.pptx
hoangdinhhanh88
 
3_CHAP~2.PPT
3_CHAP~2.PPT3_CHAP~2.PPT
3_CHAP~2.PPT
hoangdinhhanh88
 
2_Chapter 2_DNS.pptx
2_Chapter 2_DNS.pptx2_Chapter 2_DNS.pptx
2_Chapter 2_DNS.pptx
hoangdinhhanh88
 
1.khai niem can ban
1.khai niem can ban1.khai niem can ban
1.khai niem can ban
hoangdinhhanh88
 

More from hoangdinhhanh88 (10)

linux-lecture3.ppt
linux-lecture3.pptlinux-lecture3.ppt
linux-lecture3.ppt
 
Chapter 9 TCP IP Reference Model.ppt
Chapter 9 TCP IP Reference Model.pptChapter 9 TCP IP Reference Model.ppt
Chapter 9 TCP IP Reference Model.ppt
 
RemoteAdmin.pptx
RemoteAdmin.pptxRemoteAdmin.pptx
RemoteAdmin.pptx
 
Disks.pptx
Disks.pptxDisks.pptx
Disks.pptx
 
Backups.pptx
Backups.pptxBackups.pptx
Backups.pptx
 
7_Chapter 7_Email.pptx
7_Chapter 7_Email.pptx7_Chapter 7_Email.pptx
7_Chapter 7_Email.pptx
 
3_CHAP~2.PPT
3_CHAP~2.PPT3_CHAP~2.PPT
3_CHAP~2.PPT
 
2_Chapter 2_DNS.pptx
2_Chapter 2_DNS.pptx2_Chapter 2_DNS.pptx
2_Chapter 2_DNS.pptx
 
1.khai niem can ban
1.khai niem can ban1.khai niem can ban
1.khai niem can ban
 
Dns
DnsDns
Dns
 

2 co ban ve sql

  • 2. Nội dung chính 1-2 • Giới thiệu về SQL • DML • DDL • Tối ưu hóa câu lệnh SQL
  • 3. SQL 1-3  SQL: Structured Query Language  Các loại: • DML (Data Manipulation Language) • DDL (Data Definition Language) • Transaction Control • Session Control • System Control
  • 4. (Data Manipulation Language) - !I' O R A C L E " 1-4
  • 5. Kiểu dữ liệu 1-5 Character Numeric Datetime LOB ROWID Binary CHAR (n) NUMBER(m,n) DATE CLOB ROWID RAW(size) NCHAR(n) FLOAT TIMESTAMP WITH TIMEZONE NCLOB UROWID LONG RAW VARCHAR2(n) BINARY_FLOAT TIMESTAMP WITH LOCAL TIMEZONE BLOB NVARCHAR2(n) BINARY_DOUBLE INTERVAL YEAR[(n)] TO MONTH BFILE INTERVAL DAY[(m)] TO SECOND[(n)]
  • 6. Truy vấn dữ liệu 1-6 SELECT [DISTINCT] danh_sách_cột FROM {table_name | view_name} [WHERE điều_kiện] [GROUP BY danh_sách_cột_1] [HAVING điều_kiện_lọc] [ORDER BY danh_sách_cột_2 [ASC | DESC]]
  • 8. Phép toán 1-8 Loại phép toán Phép toán T oán học +, -, *, / So sánh =, {!=, <>, ^=}, <, >, <=, >=  SOME/ANY , ALL Logic NOT , AND, OR Các phép toán chuỗi ||, LIKE, NOT LIKE Các phép toán khác IN, NOT IN, BETWEEN, EXISTS, IS NULL, IS NOT NULL
  • 9. Một hàm phục vụ cho truy vấn 1-9 Chuỗi Số Thời gian Chuyển đổi Rẽ nhánh Gộp LENGTH FLOOR, CEIL, ROUND ADD_MONTHS CAST CASE MIN, MAX LOWER, UPPER MOD SYSDATE TO_CHAR DECODE COUNT LPAD, RPAD SQRT EXTRACT TO_DATE AVG LTRIM, RTRIM, TRIM MONTHS_BETWEEN TO_NUMBER SUM SUBSTR
  • 10. Lấy dữ liệu từ nhiều bảng 1-10  Sử dụng phép nối • INNER JOIN • NATURAL JOIN • OUTER JOIN – LEFT OUTER JOIN – RIGHT OUTER JOIN – FULL OUTER JOIN
  • 11. TRUY VẤN LỒNG (SUBQUERY) 1-11  Subquery có thể đặt ở: • SELECT • FROM • WHERE • ….
  • 12. Tối ưu hóa truy vấn 1-12 • Chỉ SELECT những cột và những bảng ghi cần thiết • Sử dụng JOIN thay vì subquery • Tránh truy vấn trên view • Gọi tên cột tường mình • Dùng CASE thay vì sử dụng nhiều truy vấn • Dùng INDEX • Dùng WHERE tốt hơn HAVING • Dùng EXISTS/NOT EXISTS tốt hơn IN/NOT IN • Hạn chế sử dụng các phép tính toán trong mệnh đề WHERE
  • 13. Sửa dữ liệu UPDATE Tên_bảng SET cột1 = giá_trị1, …, cộtn [WHERE điều_kiện]; 1-13 = giá_trị_n
  • 14. Xóa dữ liệu  Xóa từng bản ghi  Xóa toàn bộ dữ liệu DELETE Tên_bảng WHERE [điều_kiện]; TRUNCATE TABLE 1-14 Tên_bảng;
  • 15. Thêm mới dữ liệu  Nhập giá trị cho mọi cột trong bảng  Nhập giá trị cho một số cột trong bảng  Lấy giá trị từ bảng khác INSERT INTO Tên_bảng VALUES(gt1, gt2, …) INSERT INTO Tên_bảng (cột1, cột2, …) VALUES (gt1, gt2, …) INSERT INTO SELECT cotx, FROM…WHERE… 1-15 Tên_bảng (cột1, cột2, …) coty, …
  • 16. (Data Definition Language) O R A C L E " 1-16
  • 17. Bảng 1-17  Tên bảng & tên cột tuân theo quy tắc: • 1-30 kí tự • Bắt đầu bằng chữ cái • Bao gồm chữ cái, số, _, #, $ (hạn chế dùng #, $) • Không dùng những từ có sẵn trong Oracle (NUMBER, INDEX…) • Tên cột phải duy nhất trong bảng • Tên bảng phải duy nhất trong namespace
  • 18. Tạo bảng  Ví dụ: 1-18
  • 19. Constraint  Đảm bảo tính toàn vẹn của dữ liệu  Có thể tạo constraint lúc tạo bảng hoặc sau khi tạo bảng 1-19
  • 20. Các loại constraint 1-20  NOT NULL  UNIQUE • Không cho phép nhập giá trị giống nhau • Oracle tự động tạo unique index cho cột có ràng buộc UNIQUE  PRIMARY KEY • Có thể tạo khóa chính cho 1 hoặc nhiều cột • Oracle tự động tạo unique index cho cột làm khóa chính  FOREIGN KEY • Thiết lập mối quan hệ của 1 bảng với bảng khác  CHECK • Kiểm tra giá trị của một cột thỏa mãn điều kiện cho trước
  • 21. Khai báo constraint - 1  NOT NULL contraint  UNIQUE contraint 1-21
  • 22. Khai báo constraint - 2  PRIMARY KEY constraint 1-22
  • 23. Khai báo constraint - 3  FOREIGN KEY constraint • Chú ý: Không được phép tạo khóa ngoại cho những cột có kiểu dữ liệu: CLOB, NCLOB, BLOB, LONG, LONG RAW, TIMESTAMP WITH TIMEZONE  Ví dụ: 1-23
  • 24. Khai báo constraint - 4  CHECK constraint • Kiểm tra giá trị của một cột có thỏa mãn điều kiện cho trước hay không  Ví dụ: 1-24
  • 25.  Sửa giá trị mặc định của cột  Đổi tên bảng  Xóa cột Các thao tác liên quan tới bảng 1-25
  • 26.  Sửa cột  Thêm cột Các thao tác liên quan tới bảng 1-26
  • 27.  Khi xóa bảng, Oracle tiến hành: • Xóa dữ liệu • Xóa cấu trúc dữ liệu lưu trữ bảng • Xóa các trigger liên quan tới bảng • Xóa các quyền liên quan tới bảng DROP TABLE hr.employees PURGE;  Một số tùy chọn cho câu lệnh xóa bảng • PURGE: không cho phép flashback • CASCADE CONSTRAINTS: xóa mọi ràng buộc dữ liệu có liên quan 1-27 Các thao tác liên quan tới bảng
  • 28. Các thao tác liên quan tới bảng  Thêm constraints • Ví dụ 1-28
  • 29. Các thao tác liên quan tới bảng  Sửa constraints • Xóa • Đổi tên • Vô hiệu hóa (disable) 1-29
  • 30. Sequence 1-30 Là một đối tượng trong schema dùng để tự động sinh ra các số nguyên theo thứ tự nào đó(thường dùng cho khóa chính)  Đặc điểm • Mỗi sequence có 1 tên xác định • Không gắn với 1 cột hay 1 bảng nào • Có thể tạo ra số nguyên theo thứ tự tăng hoặc giảm dần đều • Khoảng cách giữa 2 số nguyên do người dùng tùy đặt • Có thể quay vòng nếu giá trị sinh ra đã đạt ngưỡng
  • 31. Sequence …  Các thuộc tính: • START WITH • INCREMENT BY • MAXVALUE • MINVALUE • CACHE 1 3 5 7 9 11 13 15 … 1-31
  • 32. Quản lý sequence  Sửa sequence • Có thể sửa các thuộc tính: INCREMENT BY, MAXVALUE, MINVALUE, CYCLE, CACHE • Không thể sửa: START WITH • Ví dụ:  Xóa sequence  Sử dụng sequence 1-32
  • 33. O R A C L E " 1-33