TRANG CHỦ

Bài 14: SQL - NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (Tin Học 11)

SQL cho phép mô tả muốn dữ liệu gì thay vì chỉ định từng bước xử lí. Bài học tóm tắt lợi ích, nhóm lệnh DDL/DML/DCL và ví dụ GRANT/REVOKE theo SGK.

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ảng bannhac(Mid CHAR(4) PRIMARY KEY, Aid INT, TenBN VARCHAR(128)).
  • Tạo bảng nhacsi(Aid INT, TenNS VARCHAR(64)); ràng buộc FOREIGN 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ùng INNER JOIN để kết bảng theo khoá.
  • Ví dụ truy vấn:
    • Lấy Mid, TenBN từ bannhacAid = 1, sắp xếp TenBN.
    • JOIN bannhac với nhacsi theo Aid để lấy TenBN, TenNS.
  • 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ỏi bannhac; đổi TenNS khi Aid = 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: GRANT cho phép đọc/ghi/thay đổi cấu trúc.
  • Thu hồi: REVOKE gỡ quyền đã cấp.
Ví dụ:
  • GRANT SELECT ON music.* TO guest; (cấp quyền đọc tất cả bảng trong music).
  • REVOKE CREATE, ALTER ON music.bannhac FROM mod; (thu hồi quyền tạo/sửa cấu trúc bảng).