BÀI 14. SQL – NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC
1. LỢI ÍCH CỦA NGÔN NGỮ TRUY VẤN
- Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ tiêu chuẩn được sử dụng trên hầu hết các hệ quản trị cơ sở dữ liệu phổ biến hiện nay.
+ Ví dụ: Dù trường em dùng phần mềm SQL Server của Microsoft hay MySQL của Oracle để quản lí điểm, em đều có thể dùng chung một loại ngôn ngữ SQL để ra lệnh cho chúng.
- Việc truy xuất dữ liệu bằng ngôn ngữ lập trình truyền thống đòi hỏi người dùng phải tự viết từng bước thuật toán "theo thủ tục" rất mất công sức.
+ Ví dụ: Giống như việc em phải tự tay đi chợ, chọn mớ rau, mang về rửa rồi tự bật bếp nấu mới có được bát canh.
- Ngược lại, với SQL, người dùng chỉ cần viết ra yêu cầu "muốn làm gì", hệ thống sẽ tự động tìm cách để thực hiện yêu cầu đó.
+ Ví dụ: Giống như việc em vào nhà hàng, chỉ cần gọi món "Cho một bát canh", đầu bếp (hệ thống máy tính) sẽ tự làm và bưng ra cho em.
- SQL được chia thành 3 nhóm lệnh chính: Định nghĩa dữ liệu (DDL), Thao tác dữ liệu (DML) và Kiểm soát dữ liệu (DCL).
+ Ví dụ: Có thể hình dung DDL dùng để "xây nhà", DML dùng để "sắp xếp đồ đạc trong nhà", và DCL là "ông bảo vệ canh cửa".
2. KHỞI TẠO CSDL
- Nhóm lệnh DDL cung cấp các câu lệnh để tạo mới Cơ sở dữ liệu (CSDL), tạo bảng và thiết lập các loại khoá.
Ví dụ: Dùng lệnh CREATE DATABASE để tạo ra một không gian lưu trữ trống đặt tên là "Truong_Hoc".
- Trong đó, lệnh CREATE TABLE dùng để tạo bảng mới, và ALTER TABLE dùng để thay đổi cấu trúc của bảng đã có.
+ Ví dụ: Dùng lệnh CREATE TABLE để kẻ một khung danh sách trống cho lớp 11A1.
- Khi tạo bảng, mỗi cột phải được quy định chặt chẽ một "Kiểu dữ liệu" như INT (số nguyên), VARCHAR (xâu kí tự), DATE (ngày tháng).
+ Ví dụ: Cột "Ngày sinh" sẽ được cài đặt kiểu DATE để học sinh chỉ được nhập đúng định dạng ngày tháng, hệ thống sẽ báo lỗi nếu em gõ chữ cái vào đó.
3. CẬP NHẬT VÀ TRUY XUẤT DỮ LIỆU
- Nhóm lệnh DML chuyên dùng để cập nhật dữ liệu mới vào bảng hoặc trích xuất thông tin ra để xem.
+ Ví dụ: Cuối học kì, thầy cô dùng câu lệnh DML để máy tính tự động lọc ra danh sách các bạn đạt danh hiệu Học sinh Giỏi.
- Để lấy dữ liệu ra xem, ta dùng lệnh SELECT kết hợp với FROM (lấy từ bảng nào) và WHERE (với điều kiện gì).
+ Ví dụ: Lệnh "SELECT Ho_ten FROM Danh_sach WHERE Diem_Toan = 10" mang ý nghĩa: Lấy ra họ tên từ bảng danh sách của những bạn có điểm Toán là 10.
- Để thay đổi dữ liệu bên trong bảng, ta dùng các lệnh cập nhật: INSERT (thêm mới), DELETE (xoá bỏ) và UPDATE (chỉnh sửa).
+ Ví dụ: Khi một bạn học sinh mới chuyển đến lớp, thầy cô dùng lệnh INSERT để thêm tên bạn đó vào cuối danh sách. Khi nhập sai điểm, thầy cô dùng lệnh UPDATE để sửa lại điểm cho đúng.
4. KIỂM SOÁT QUYỀN TRUY CẬP
- Nhóm lệnh DCL cung cấp chức năng quản lí quyền hạn của người dùng, đảm bảo tính bảo mật cho toàn bộ hệ thống CSDL.
+ Ví dụ: Hệ thống nhà trường dùng DCL để thiết lập quyền truy cập khác nhau giữa tài khoản của Hiệu trưởng, Giáo viên và Học sinh.
- Lệnh GRANT dùng để cấp quyền cụ thể cho một người dùng nào đó.
+ Ví dụ: Nhà trường dùng lệnh GRANT để cấp quyền cho cô giáo chủ nhiệm được phép vào sửa kiểm diện của lớp mình.
- Lệnh REVOKE dùng để thu hồi lại những quyền đã được cấp trước đó.
+ Ví dụ: Khi một giáo viên chuyển công tác đi trường khác, quản trị viên dùng lệnh REVOKE để tước bỏ quyền xem và sửa điểm của tài khoản giáo viên đó, bảo vệ an toàn cho dữ liệu nhà trường.