intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Cơ sở dữ liệu 1_Chương 6: Ngôn ngữ truy vấn có cấu trúc (SQL)

Chia sẻ: Lê Minh Thông | Ngày: | Loại File: PPT | Số trang:44

296
lượt xem
114
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung: Truy vấn từ một bảng: Mệnh đề SELECT và FROM, Mệnh đề WHERE, Mệnh đề GROUP BY + HAVING, Thứ tự thực thi câu truy vấn. Truy vấn từ nhiều bảng: Kết theta, Kết nội, Kết ngoại, Truy vấn lồng nhau.

Chủ đề:
Lưu

Nội dung Text: Cơ sở dữ liệu 1_Chương 6: Ngôn ngữ truy vấn có cấu trúc (SQL)

  1. Cơ sở dữ liệu 1 Chương 6: Ngôn ngữ truy vấn có cấu trúc (SQL) Giảng viên: Nguyễn Công Thương
  2. Nội dung  Truy vấn từ một bảng  Mệnh đề SELECT và FROM  Mệnh đề WHERE  Mệnh đề GROUP BY + HAVING  Thứ tự thực thi câu truy vấn  Truy vấn từ nhiều bảng  Kết theta  Kết nội  Kết ngoại  Truy vấn lồng nhau 2
  3. Ngôn ngữ truy vấn có cấu trúc  StructuredQuery Language (SQL)  Tên ban đầu là SEQUEL (Structured English QUEry Language)  Các thành phần:  DDL: Create, Drop, Alter …  DML: Select, Insert, Delete, Update …  DCL: Grant, Revoke, …  Được sử dụng trong các DBMS thông dụng  Mỗi DBMS có thể có một số khác biệt 3
  4. Lược đồ CSDL 4
  5. Truy vấn từ một bảng  Cấu trúc: SELECT list_of_expressions FROM table_name;  VD: SELECT MaNV, TenNV, NgSinh FROM NHANVIEN; 5
  6. Mệnh đề WHERE  Cấu trúc: SELECT list_of_expressions FROM table_name [WHERE row_conditions];  VD: Truy vấn ngày sinh và địa chỉ của những người có tên ‘Nguyen Bao Hung’: SELECT NgSinh, DChi FROM NHANVIEN WHERE HoNV = ‘Nguyen’ AND Tenlot = ‘Bao’ AND TenNV = ‘Hung’; 6
  7. LIKE và NOT LIKE  Cấu trúc: [NOT] LIKE ‘string’  Ký tự đại diện  ‘_’: Một ký tự bất kỳ  ‘%’: Số lượng ký tự bất kỳ  [a-d]: một ký tự trong khoảng  Ví dụ: SELECT MaNV, TenNV FROM NHANVIEN WHERE TenNV LIKE ‘H%’; 7
  8. BETWEEN và NOT BETWEEN  Cấu trúc: [NOT] BETWEEN min_value AND max_value  Ví dụ: Tìm MaNV, TenNV của những nhân viên có lương từ 30000 đến 50000 SELECT MaNV, TenNV FROM NHANVIEN WHERE Luong BETWEEN 30000 AND 50000; 8
  9. ALL/DISTINCT SELECT [ALL/DISTINCT] list_of_expressions FROM table_name [WHERE row_conditions];  Ví dụ: SELECT DISTINCT Luong FROM NHANVIEN; 9
  10. Hàm gộp (Aggregate function) SELECT list_of_expressions FROM table_name [WHERE row_conditions]  Ví dụ: SELECT COUNT (MaNV), AVG (Luong) FROM NHANVIEN;  Ví dụ: SELECT COUNT (MaNV) AS SoLuongNV, AVG (Luong) AS LuongTB FROM NHANVIEN; 10
  11. Hàm gộp (Aggregate function)  Ghi chú: hàm COUNT(*) trả về số dòng kết quả 11
  12. Mệnh đề GROUP BY SELECT list_of_expressions FROM table_name [WHERE row_conditions] [GROUP BY list_of_columns];  Ví dụ: SELECT Phong, COUNT (MaNV), AVG (Luong) FROM NHANVIEN GROUP BY Phong; 12
  13. Mệnh đề HAVING  Điều kiện trên hàm gộp: SELECT list_of_expressions FROM table_name [WHERE row_conditions] [GROUP BY list_of_columns [HAVING aggregate_conditions]]; 13
  14. Mệnh đề HAVING (2)  Ví dụ: Tìm Phòng có số lượng nhân viên nhiều hơn 2: SELECT Phong, COUNT (MaNV) AS SLNV FROM NHANVIEN GROUP BY Phong HAVING COUNT(MaNV) > 2; 14
  15. Một số ràng buộc đối với mệnh đề GROUP BY và HAVING  Thuộc tính xuất hiện trong mệnh đề SELECT:  Phải được tính hàm gộp, hoặc  Phải có trong mệnh đề GROUP BY  Thuộc tính có trong mệnh đề GROUP BY không bắt buộc có trong mệnh đề SELECT  Phải có mệnh đề GROUP BY mới được có mệnh đề HAVING  Phải có ít nhất một hàm gộp trong mệnh đề SELECT hoặc mệnh đề HAVING 15
  16. Mệnh đề ORDER BY  Sắ p xếp kết quả theo một hoặc nhiều cột: SELECT list_of_expressions FROM table_name [WHERE row_conditions] [GROUP BY list_of_columns [HAVING aggregate_conditions]] [ORDER BY list_of_columns [ASC/DESC]]; 16
  17. Mệnh đề ORDER BY (2)  Ví dụ SELECT MaNV, HoNV, Tenlot, TenNV, NgSinh FROM NHANVIEN WHERE Phong = 5 ORDER BY TenNV, HoNV, NgSinh DESC; 17
  18. Thứ tự thực thi câu truy vấn 18
  19. Truy vấn nhiều bảng  Kế ttheta  Kết tự nhiên (kết nội)  Kết ngoại  Truy vấn lồng nhau (truy vấn con)  Truy vấn con có tương quan 19
  20. Kết theta  Cấu trúc: SELECT list_of_expressions FROM table_names [WHERE conditions] [GROUP BY list_of_columns [HAVING aggregate_conditions]] [ORDER BY list_of_columns];  Điều kiện kết đặt trong mệnh đề WHERE 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2