You are on page 1of 14

WELCOME MESSAGES

Insert your subtitle here


Chương 4: Ngôn ngữ truy vấn SQL

Phần 1- Truy vấn trên một quan hệ

page 2
Nội dung
1- Giới thiệu

2- Truy vấn trên một quan hệ


+ Phép chiếu
+ Phép chọn
+ Các toán tử so sánh sử dụng trong biểu thức điều kiện
3. Các hàm gộp và gom nhóm
4. Sử dụng mệnh đề Having
5. Sắp xếp kết quả truy vấn
6. Thứ tự các mệnh đề và thứ tự thực hiện các mệnh đề
trong câu truy vấn
page 3
1. Giới thiệu:
SQL (Structure Query Language) là ngôn ngữ truy vấn có cấu trúc.
SQL hỗ trợ việc tạo, xóa, lưu trữ và truy xuất dữ liệu trong CSDL quan hệ
SQL được Viện tiêu chuẩn quốc gia Hoa kỳ (American National Standards Institute -
ANSI) chuẩn hóa trở thành ngôn ngữ được sử dụng một cách phổ biến trong các hệ thống
CSDL quan hệ
SQL được sử dụng trong các hệ quản trị CSDL thông dụng: MS Access, MySQL, Oracle,
SQL Sever, Informix, …
Các ví dụ trong bài sử dụng SQL Server

page 4
2. Truy vấn trên một quan hệ:
Các truy vấn này input vào một quan hệ và cho ra kết quả là một
quan hệ khác.
Phép chiếu: Lấy các cột được chiếu và tất cả các dòng trong bảng
input. KQTHI
- Cú pháp: Select <tên cột 1>, <tên cột 2>, … MaSV MaMH Diem
From < tên quan hệ> 14110 M01 8
- Vd. Tìm những mã môn học có SV thi 14110 M02 7
14111 M01 8
Select MaMH 15111 M03 4
Select distinct MaMH
From KQTHI MaMH
From KQTHI MaMH 15112 M01 5
M01 M01
Kết quả M02 Kết quả
M02
M01 M03
M03
M01 page 5
2. Truy vấn trên một quan hệ (tt.):
Ở mệnh đề Select có thể có biểu thức số học tính toán trên các thuộc tính
Vd.
NV(maNV char(5), TenNV nvarchar(20), MaPB char(5), Luong real)
Lập danh sách thưởng cho tất cả NV 2 tháng lương

Select maNV, TenNV, luong * 2


From NV

Select maNV, TenNV, luong * 2 as


Tienthuong
From NV

page 6
2. Truy vấn trên một quan hệ (tt):
Phép chọn: Lấy các dòng trong quan hệ input thỏa điều kiện cho trước.
Select <tên cột 1>, <tên cột 1>, …
From < tên quan hệ>
Where <Biểu thức điều kiện>
- Vd. Tìm những SV thi môn học có mã ‘M01’ và đạt điểm trên 7
KQTHI.
MaSV MaMH Điem
Select *
14110 M01 8
From KQTHI
14110 M02 7
Where MaMH=‘M01’ and Diem >
14111 M01 8
7
15111 M03 4 MaSV MaMH Điem

15112 M01 5 14110 M01 8


14111 M01 8

page 7
2. Truy vấn trên một quan hệ (tt):

Các toán tử so sánh sử dụng trong biểu thức điều kiện:


LIKE và NOT LIKE: dùng trong so sánh chuỗi.
- Các ký tự đại diện: ‘%’ (đại diện một nhóm ký tự bất kỳ), ‘_’ (đại diện 1 ký tự
bất kỳ).
vd. NV(maNV char(5), Hoten nvarchar(20), MaPB char(5), Luong real)
Liệt kê các nhân viên họ Nguyễn

Select Hoten
From NV
Where Hoten like N‘Nguyễn%’

page 8
2. Truy vấn trên một quan hệ (tt):

Các toán tử so sánh sử dụng trong biểu thức điều kiện:


[NOT] BETWEEN min_value AND max_value.
vd. NV(maNV char(5), Hoten nvarchar(20), MaPB char(5), Luong real)
Tìm MaNV, Hoten những nhân viên có lương từ 30000 đến 50000

Select MaNV, Hoten


From NV
Where Luong between 30000 and 50000

page 9
3. Các hàm gộp và gom nhóm:
Hàm gộp nhận vào một tập các giá trị của 1 cột trong một quan hệ và cho kết quả là một giá trị.
Các hàm gộp: Min, Max, Sum, Avg, Count
Vd. NV(maNV char(5), Hoten nvarchar(20), MaPB char(5), Luong real)
1. Tìm lương lớn nhất, nhỏ nhất và lương trung bình của tất cả NV

SELECT max(luong) as Luongmax, min(luong) as Luongmin, avg(luong) as


LuongTB
FROM NV
2. Tìm lương lớn nhất, nhỏ nhất và lương trung bình của từng phòng
ban
SELECT MaPB, max(luong) as Luongmax, min(luong) as Luongmin,
avg(luong) as LuongTB
FROM NV
GROUP BY MaPB
page 10
4. Sử dụng mệnh đề Having:
Having <điều kiện liên quan tới hàm gộp>

Vd. NV(maNV char(5), Hoten nvarchar(20), MaPB char(5), Luong real)


Liệt kê MaPB và lương trung bình của các phòng ban có nhiều hơn 2
nhân viên
SELECT MaPB, avg(luong) as LuongTB
FROM NV
GROUP BY MaPB
HAVING count(maNV) > 2

page 11
5. Sắp xếp kết quả truy vấn: Sử dụng mệnh đề Order by
Order by <cột 1> [DESC], <cột 2> [DESC], …
Mặc định: ASC (sắp xếp tăng dần)

Vd. NV(maNV char(5), Hoten nvarchar(20), MaPB char(5), Luong real)


Liệt kê họ tên và ngày sinh của những nhân viên có lương từ 30000 đến
50000. Sắp họ tên theo thứ tự tăng dần, trùng họ tên thì sắp ngày sinh
theo thứ tự giảm dần.

Select Hoten as [Tên NV], Ngsinh as [Ngày sinh]


From NV
where luong between 30000 and 50000
Order by Hoten, Ngsinh Desc

page 12
6. Thứ tự các mệnh đề và thứ tự thực hiện các mệnh đề trong câu truy vấn:

Thứ tự các mệnh đề Thứ tự thực hiện các mệnh đề

FROM
SELECT

WHERE
FROM

GROUP BY
WHERE

GROUP BY HAVING

HAVING SELECT

ORDER BY ORDER BY

KẾT QUẢ TRUY VẤN


page 13
Hết phần 1 chương 4

Số 1, Võ Văn Ngân, Thủ Đức, TPHCM

sonnt@hcmute.edu.vn

+84918648899

You might also like