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

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
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

Structured Query Language (SQL)


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
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
BETWEEN và NOT BETWEEN


FROM NHANVIEN;
10
Hàm gộp (Aggregate function)

Ghi chú: hàm COUNT(*) trả về số dòng kết quả
11
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
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
Mệnh đề HAVING (2)

Ví dụ: Tìm Phòng có số lượng nhân viên
nhiều hơn 2:

[HAVING aggregate_conditions]]
[ORDER BY list_of_columns [ASC/DESC]];
16
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
Thứ tự thực thi câu truy vấn
18
Truy vấn nhiều bảng

Kết theta

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
Kết theta

Cấu trúc:
SELECT list_of_expressions
FROM table_names

[ORDER BY list_of_columns];
22
Kết nội (2)

Ví dụ: Tìm MaNV, Họ tên và tên phòng ban của tất cả
nhân viên
SELECT MaNV, HoNV, Tenlot, TenNV, TenPB
FROM NHANVIEN INNER JOIN PHONGBAN
ON NHANVIEN.Phong=PHONGBAN.MaPB;

Ví dụ: Tìm MaNV, Họ tên và tên phòng ban của những
nhân viên làm việc cho phòng “Nghiên cuu”
SELECT MaNV, HoNV, Tenlot, TenNV, TenPB
FROM NHANVIEN INNER JOIN PHONGBAN
ON NHANVIEN.Phong=PHONGBAN.MaPB
WHERE TenPB=‘Nghien cuu’;
23
Kết ngoại

Cấu trúc:
SELECT list_of_expressions
FROM R LEFT/RIGHT/FULL OUTER JOIN S
ON R.A = S.B
[WHERE row_conditions]
[GROUP BY list_of_columns
[HAVING aggregate_conditions]];
[ORDER BY list_of_columns];
24
Kết ngoại (2)


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status