Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

◼ S(S#, SName, City, Status) select * | [Distinct] DS_chiếu

◼ P(P#, PName, Color, Weight, Price) from tên_các_bảng | tên_các_view Áp dụng


◼ SP(S#, P#, SDate, QTY) where biểu_thức_điều_kiện

❖Cho quan hệ S,P,SP (như trên)


▪ 3. Tìm mã số những nhà cung cấp đã cung cấp ít nhất 1trong
các mặt hàng P1, P2, P3

[NOT] <biểu_thức> <phép so sánh><biểu thức>


[NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
◼ S(S#, SName, City, Status) select * | [Distinct] DS_chiếu
◼ P(P#, PName, Color, Weight, Price) from tên_các_bảng | tên_các_view Áp dụng
◼ SP(S#, P#, SDate, QTY) where biểu_thức_điều_kiện

❖Cho quan hệ S,P,SP (như trên)


▪ 3. Tìm mã số những nhà cung cấp đã cung cấp ít nhất 1trong
các mặt hàng P1, P2, P3

[NOT] <biểu_thức> <phép so sánh><biểu thức>


[NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
◼ S(S#, SName, City, Status) select * | [Distinct] DS_chiếu
◼ P(P#, PName, Color, Weight, Price) from tên_các_bảng | tên_các_view Áp dụng
◼ SP(S#, P#, SDate, QTY) where biểu_thức_điều_kiện

❖Cho quan hệ S,P,SP (như trên)


▪ 4.Tìm Tên hãng đã cung ứng hàng hóa?

[NOT] <biểu_thức> <phép so sánh><biểu thức>


[NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
◼ S(S#, SName, City, Status) select * | [Distinct] DS_chiếu
◼ P(P#, PName, Color, Weight, Price) from tên_các_bảng | tên_các_view Áp dụng
◼ SP(S#, P#, SDate, QTY) where biểu_thức_điều_kiện

❖Cho quan hệ S,P,SP (như trên)


▪ 4.Tìm Tên hãng đã cung ứng hàng hóa?
• Tìm những mã hãng đã từng cung ứng hàng?
Select S# from SP
• Tìm tên hãng → tìm trong bảng S (bao gồm hãng đã cung ứng
và chưa cung ứng)=> xuất hiện đồng thời trong S và SP
Select Sname from S
Where S# In (Select S# from SP)

[NOT] <biểu_thức> <phép so sánh><biểu thức>


[NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
◼ S(S#, SName, City, Status) select * | [Distinct] DS_chiếu
◼ P(P#, PName, Color, Weight, Price) from tên_các_bảng | tên_các_view Áp dụng
◼ SP(S#, P#, SDate, QTY) where biểu_thức_điều_kiện

❖Cho quan hệ S,P,SP (như trên)


▪ 5. Tìm Tên hãng chưa từng cung ứng hàng?
Select Sname from S
Where S# Not In (Select S# from SP)

[NOT] <biểu_thức> <phép so sánh><biểu thức>


[NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
◼ S(S#, SName, City, Status) select * | [Distinct] DS_chiếu
◼ P(P#, PName, Color, Weight, Price) from tên_các_bảng | tên_các_view Áp dụng
◼ SP(S#, P#, SDate, QTY) where biểu_thức_điều_kiện

❖Cho quan hệ S,P,SP (như trên)


▪ 4.Tìm Tên hãng đã cung ứng hàng hóa?
• Tìm những mã hãng đã từng cung ứng hàng?
Select S# from SP
• Tìm tên hãng → tìm trong bảng S (bao gồm hãng đã cung ứng
và chưa cung ứng)=> xuất hiện đồng thời trong S và SP
Select Sname from S
Where exists (Select S# from SP where S.S#= SP.S#)

[NOT] <biểu_thức> <phép so sánh><biểu thức>


[NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
Lệnh Select với điều kiện đơn giản

%: thay thế cho 1 xâu ký tự


_ : thay thế cho 1 ký tự
6.Tìm tên những nhà cung cấp bắt đầu bằng chữ H
Select SName
From S
Where SName like ‘H%’
7.Tìm tên các mặt hàng có giá từ 5-10 nghìn
Select PName From P
Where Price Between 5000 and 10000
◼ S(S#, SName, City, Status) [NOT] <biểu_thức> <phép so sánh><biểu thức>
◼ P(P#, PName, Color, Weight, Price) [NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
◼ SP(S#, P#, SDate, QTY)
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
Lệnh Select với điều kiện đơn giản

%: thay thế cho 1 xâu ký tự


_ : thay thế cho 1 ký tự
6)a.Tìm tên những nhà cung cấp bắt đầu bằng chữ H
Select SName
From S
Where SName like ‘H%’
b.SV(MaSV, TenSV, NS, QQ, ĐC). Tìm những sinh viên
có tên là ‘Lê Thị Hà’
SELECT * FROM SV WHERE TenSV LIKE ‘Lê Thị Hà_’
◼ S(S#, SName, City, Status) [NOT] <biểu_thức> <phép so sánh><biểu thức>
◼ P(P#, PName, Color, Weight, Price) [NOT]<tên cột> [NOT] LIKE <xâu kí tự>
[NOT] <biểu thức> [NOT] IN ({ds giá trị| câu truy vấn})
◼ SP(S#, P#, SDate, QTY)
[NOT] <biểu thức> BETWEEN gt_đầu AND gt_cuối
[NOT] EXISTS (<câu truy vấn>)
❖ Lệnh hiển thị dữ liệu

❖ Lệnh Select với các hàm thống kê


◼ DS chiếu có thể sử dụng biểu thức hoặc các hàm
thống kê
- COUNT(*): đếm số bản ghi thỏa yêu cầu tìm kiếm (không
quan tâm đến các cột của bảng)
- COUNT(biểu_thức|tên_cột): đếm số bản ghi có giá trị trên
biểu thức hoặc trên cột thỏa điều kiện tìm kiếm
- MAX(biểu_thức_số): hiển thị giá trị lớn nhất
- MIN (biểu_thức_số): hiển thị giá trị nhỏ nhất
- AVG(biểu_thức_số): hiển thị giá trị trung bình của btsố
- SUM(bt_số): hiển thị tổng của biểu thức số
◼ S(S#, SName, City, Status)


P(P#, PName, Color, Weight, Price)
SP(S#, P#, SDate, QTY)
Áp dụng

❖Tìm trọng lượng trung bình của các mặt hàng màu
đỏ?
▪ SELECT AVG(Weight) AS TLTB
FROM P
WHERE Color = ‘Red’
❖Đếm số lần cung ứng có số lượng cung ứng
[100,200]
▪ SELECT COUNT(*)
FROM SP
WHERE (QTY BETWEEN 100 AND 200)
◼ S(S#, SName, City, Status)


P(P#, PName, Color, Weight, Price)
SP(S#, P#, SDate, QTY)
Áp dụng

❖Tìm trọng lượng trung bình của các mặt hàng màu
đỏ?
▪ SELECT AVG(Weight) AS TLTB
FROM P
WHERE Color = ‘Red’
❖Đếm số lần cung ứng có trọng lượng >100 và <200
▪ SELECT COUNT(*)
FROM SP
WHERE (QTY BETWEEN 100 AND 200)
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm với mệnh đề group by

select * | [Distinct] DS_chiếu


from tên_các_bảng | tên_các_view
[where biểu_thức_điều_kiện]
group by DS_cột [Having ĐK_nhóm]

- Mệnh đề Group by DS_cột tạo ra các nhóm có cùng giá trị


trên DS_cột.
❖ Lệnh hiển thị dữ liệu

❖ Ví dụ tạo nhóm
Bảng SP
Select *
From SP
Group by S#
❖ Lệnh hiển thị dữ liệu

❖ Ví dụ tạo nhóm
Bảng SP
Select *
From SP
Group by P#
❖ Lệnh hiển thị dữ liệu

❖ Ví dụ tạo nhóm
Bảng SP

group by

SDATE
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm với mệnh đề group by


- VD: Tìm số lượng cung ứng lớn nhất trong tất cả các lần
cung ứng của các hãng
Bảng SP
Câu lệnh

select max (QTY)


from SP

Kết quả: 10
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm với mệnh đề group by


- VD: Tìm số lượng cung cấp lớn nhất của từng mặt hàng
Bảng SP Câu lệnh
select max (QTY)
from SP group by P#

Kết quả:
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm với mệnh đề group by


- VD: Tìm số lượng cung cấp lớn nhất của từng mặt hàng
Bảng SP Câu lệnh
select P#, max (QTY)
from SP group by P#

Kết quả:
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm với mệnh đề group by

select * | [Distinct] DS_chiếu


from tên_các_bảng | tên_các_view
[where biểu_thức_điều_kiện]
group by DS_cột [Having ĐK_nhóm]

- Điều kiện trong mệnh đề Where tác động trên toàn bộ các
bản ghi của bảng
- Điều kiện trong mệnh đề Having tác động trên các bản ghi
của một nhóm
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm với mệnh đề group by


- VD: Tìm mã các đại lý cung cấp ít nhất 2 mặt hàng khác nhau:
select S#
from SP
group by S#
having count(Distinct P#)>=2
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm với mệnh đề group by


- VD: Tìm mã các đại lý cung cấp ít nhất 2 mặt hàng khác
nhau:

select S# from SP
group by S#
having count(Distinct P#)>=2
❖ Lệnh hiển thị dữ liệu

❖ Tìm kiếm có sắp xếp

select * | [Distinct] DS_chiếu


from tên_các_bảng | tên_các_view
[where biểu_thức_điều_kiện]
[group by DS_cột [Having ĐK_nhóm]]
order by tên_cột | biểu_thức [ASC | DESC]

- ASC: Tăng dần


- DESC: giảm dần
Áp dụng

❖Hiển thị các lần cung ứng hàng, sắp xếp theo thứ tự
giảm dần của số lượng cung ứng
▪ SELECT *
FROM SP
ORDER BY QTY DESC
❖ Lệnh hiển thị dữ liệu

❖ Kết nối các bảng

select * | [Distinct] DS_chiếu


from tên_các_bảng | tên_các_view
where ĐK_kết_nối [AND biểu_thức_điều_kiện]
[group by DS_cột [Having ĐK_nhóm]]
[order by tên_cột | biểu_thức [ASC | DESC]]
- Điều kiện kết nối theo qui tắc:
Tên_bảng1. Tên_cột_chung=Tên_bảng2.Tên_cột_chung
-Trong các phép tìm kiếm có từ 2 bảng trở lên, nếu tên
các cột (thuộc tính) là không duy nhất thì phải viết dưới
dạng Tên_bảng. Tên_cột
◼ S(S#, SName, City, Status)
◼ P(P#, PName, Color, Weight, Price) ❖ Lệnh hiển thị dữ liệu
◼ SP(S#, P#, SDate, QTY)

❖ Kết nối các bảng


- VD: Tìm tên các đại lý đã cung cấp ít nhất một mặt hàng
select S.SName
from S, SP
where S.S# = SP.S#
- VD: Tìm tên các đại lý đã cung cấp ít nhất một mặt hàng
VỚI SỐ LƯỢNG LỚN HƠN 200
select S.SName
from S, SP
where S.S# = SP.S# AND QTY >200

You might also like