Tiết 17 + 18
BÀI 14: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC
1. Lợi ích của ngôn ngữ truy vấn
- Cho phép truy cập dữ liệu trong các hệ thống quản lý cơ sở dữ liệu quan hệ.
- Có khả năng tương tác, tiện lợi, được tiêu chuẩn hóa, không đòi hỏi kỹ năng lập trình, truy vấn nhanh.
- SQL là ngôn ngữ truy vấn tiêu chuẩn mà hầu hết các hệ QTCSDL đều sử dụng. Gồm ba thành phần:
+ DDL (Data Definition Language): là ngôn ngữ định nghĩa dữ liệu, cung cấp các câu truy vấn khởi tạo CSDL, khởi tạo bảng, thiết lập các khóa.
+ DML (Data Manipulation Language): là ngôn ngữ thao tác dữ liệu, cung cấp các câu truy vấn cập nhật và truy xuất dữ liệu.
+ DCL (Data Control Language): là ngôn ngữ kiểm soát dữ liệu, cung cấp các câu truy vấn kiểm soát quyền người dùng đối với CSDL.
2. Khởi tạo CSDL (thành phần DDL)
a) Các kiểu dữ liệu
| Kiểu dữ liệu | Ý nghĩa |
|---|---|
| CHAR (n) hay CHARACTER (n) | Xâu ký tự có độ dài cố định n ký tự, nếu xâu có ít hơn n ký tự, các ký tự trống được thêm vào phía bên phải |
| VARCHAR (n) | Xâu ký tự có độ dài thay đổi, không vượt quá n ký tự |
| BOOLEAN | Kiểu lôgic có giá trị Đúng (1) hay Sai (0) |
| INT HAY INTEGER | Số nguyên |
| REAL | Số thực dấu phẩy động |
| DATE | Ngày tháng, dạng ‘YYYY-MM-DD’ |
| TIME | Thời gian, dạng ‘HH:MM:SS’ |
Ví dụ 1: Xác định kiểu dữ liệu của các trường trong bảng sau:
| STT | SBD | Họ và tên | Giới tính | Điểm |
|---|---|---|---|---|
| 1 | 11A01 | Nguyễn An | 0 | 9.2 |
| 2 | 11A02 | Trần Bê | 0 | 8.2 |
| 3 | 11A03 | Lê Thị Chăm | 1 | 8.7 |
| ... | ... | ... | ... | ... |
| Trường | Kiểu dữ liệu |
|---|---|
| STT | |
| SBD | |
| HoTen | |
| Diem |
b) Các câu truy vấn định nghĩa CSDL
| Câu truy vấn DDL | Ý nghĩa |
|---|---|
| CREATE DATABASE | Khởi tạo CSDL |
| CREATE TABLE | Khởi tạo bảng |
| ALTER TABLE | Thay đổi định nghĩa bảng |
| PRIMARY KEY | Khai báo khóa chính |
| FOREIGN KEY ... REFERENCES ... | Khai báo khóa ngoài |
Ví dụ 2: Hoàn thành các câu lệnh
| Nội dung | Câu lệnh |
|---|---|
| Khởi tạo CSDL âm nhạc (amnhac) | |
| Khởi tạo bảng bản nhạc (bannhac) | |
| Thêm khóa chính Mid cho bảng bannhac | |
| Tạo bảng ca sĩ (casi) | |
| Thêm khóa chính cho bảng casi |
3. Cập nhật và truy xuất dữ liệu (thành phần DML)
a) Truy xuất dữ liệu
| Câu truy xuất dữ liệu | Ý nghĩa |
|---|---|
| SELECT <Dữ liệu cần lấy> FROM <Tên bảng> |
<Dữ liệu cần lấy> có thể là danh sách các trường hay hàm nào đó với các biến là trường trong bảng |
| WHERE | Chỉ định chọn chỉ các dòng thỏa mãn điều kiện xác định |
| ORDER BY <Tên trường> | Sắp xếp các dòng kết quả theo thứ tự chỉ định. |
| INNER JOIN | Liên kết các bảng theo điều kiện |
Ví dụ 3: Hoàn thành các câu lệnh
| Nội dung | Câu lệnh |
|---|---|
| Chọn trong bảng bannhac các dòng có Aid = 1 rồi hiển thị giá trị ở hai cột Mid và TenBN | |
| Chọn tất cả các dòng trong bảng bannhac, liên kết với bảng nhacsi theo khóa Aid rồi hiển thị các giá trị ở các cột TenBN (bảng bannhac) và TenNS (bảng nhacsi) |
b) Truy vấn cập nhật dữ liệu
| INSERT INTO <Tên bảng> VALUES <Danh sách giá trị> |
Thêm dữ liệu vào bảng <Tên bảng> với giá trị lấy từ <Danh sách giá trị> |
| DELETE FROM <Tên bảng> WHERE <Điều kiện> |
Xóa các dòng trong bảng <Tên bảng> thỏa mãn <Điều kiện> |
| UPDATE <Tên bảng> SET <Tên trường> = <Giá trị> |
Cập nhật <Giá trị> cho trường có tên là <Tên trường> trong bảng <Tên bảng> |
Ví dụ 4: Hoàn thành các câu lệnh
| Nội dung | Câu lệnh |
|---|---|
| Thêm vào bảng nhacsi hai dòng mới | |
| Xóa dòng có Mid = ‘0005’ trong bảng bannhac | |
| Thay đổi giá trị cột TenNS thành ‘Hoàng Hiệp’ ở dòng có cột Aid = 6 trong bảng nhacsi. | |
| Viết câu truy vấn lấy tất cả các dòng của bảng nhacsi. | |
| Viết câu truy vấn thêm các dòng cho bảng casi với các giá trị là: (‘QD’, 'Quý Dương'), ('YM', 'Y Moan'). |
4. Kiểm soát quyền truy cập
| Câu truy vấn | Ý nghĩa |
|---|---|
| GRANT | Cấp quyền cho người dùng |
| REVOKE | Thu hồi quyền đối với người dùng |
Ví dụ 5: Hoàn thành các câu lệnh
| Nội dung | Câu lệnh |
|---|---|
| Cấp quyền cho người dùng truy vấn Select đối với tất cả bảng trong CSDL music cho người dùng guest. |
