0) Mục tiêu
- Hiểu ở mức nguyên lí: tạo lập CSDL/bảng, thêm–xoá–sửa dữ liệu, truy vấn và cấp/thu hồi quyền bằng SQL (tr.69).
- Nhận biết 3 nhóm lệnh: DDL (định nghĩa), DML (thao tác dữ liệu), DCL (quyền truy cập).
- Nhìn ra ưu thế truy vấn khai báo và tính chuẩn chung của SQL trên các hệ QTCSDL.
SQL
DDL
DML
DCL
GRANT/REVOKE
1) Lợi ích của ngôn ngữ truy vấn (SQL) (tr.69)
- Truy vấn khai báo: nêu muốn gì thay vì lập trình thủ tục chỉ định làm thế nào.
- Hệ QTCSDL tự tối ưu truy vấn, giảm công sức và sai sót so với đọc file/duyệt bản ghi bằng ngôn ngữ lập trình.
- SQL là chuẩn chung chạy trên hầu hết hệ QTCSDL (Oracle, SQL Server, MySQL, PostgreSQL,…).
Lưu ý: Khi thay đổi hệ QTCSDL, cú pháp lõi SQL vẫn tương tự nên dễ di chuyển.
2) Khởi tạo CSDL – DDL (Data Definition Language) (tr.70)
- Lệnh chính:
CREATE DATABASE,CREATE TABLE,ALTER TABLE,PRIMARY KEY,FOREIGN KEY ... REFERENCES .... - Kiểu dữ liệu thường gặp:
CHAR(n),VARCHAR(n),BOOLEAN,INT/INTEGER,REAL,DATE 'YYYY-MM-DD',TIME 'HH:MM:SS'.
Ví dụ:
- Tạo CSDL
music; tạo bảngbannhac(Mid CHAR(4) PRIMARY KEY, Aid INT, TenBN VARCHAR(128)). - Tạo bảng
nhacsi(Aid INT, TenNS VARCHAR(64)); ràng buộcFOREIGN KEY (Aid) REFERENCES nhacsi(Aid)nếu cần liên kết.
3) Cập nhật & Truy xuất dữ liệu – DML (Data Manipulation Language) (tr.71)
- Truy xuất:
SELECT ... FROM ... WHERE ... ORDER BY ...; dùngINNER JOINđể kết bảng theo khoá. - Ví dụ truy vấn:
- Lấy
Mid,TenBNtừbannhaccóAid = 1, sắp xếpTenBN. JOINbannhacvớinhacsitheoAidđể lấyTenBN,TenNS.
- Lấy
- Cập nhật:
INSERT INTO ... VALUES ...;DELETE FROM ... WHERE ...;UPDATE ... SET ... WHERE .... - Ví dụ cập nhật: thêm 2 nhạc sĩ; xoá
Mid='0005'khỏibannhac; đổiTenNSkhiAid = 6. - Hàm tổng hợp: ví dụ
SELECT AVG(tb) FROM diemtoan_11A;.
Thao tác mẫu:
SELECT Mid, TenBN FROM bannhac WHERE Aid = 1 ORDER BY TenBN;SELECT TenBN, TenNS FROM bannhac INNER JOIN nhacsi USING (Aid);
4) Kiểm soát quyền truy cập – DCL (Data Control Language) (tr.72)
- Cấp quyền:
GRANTcho phép đọc/ghi/thay đổi cấu trúc. - Thu hồi:
REVOKEgỡ quyền đã cấp.
Ví dụ:
GRANT SELECT ON music.* TO guest;(cấp quyền đọc tất cả bảng trongmusic).REVOKE CREATE, ALTER ON music.bannhac FROM mod;(thu hồi quyền tạo/sửa cấu trúc bảng).