Chương 3 : NGÔN NGỮ TRUY VẤN DỮ LIỆU
3. Chọn các dòng của bảng – Mệnh đề Where
Mục tiêu: Trình bày cú pháp, chức năng của mệnh đề Where trong câu lệnh truy
vấn Select.
Cú pháp:
SELECT [DISTINCT] <biểu thức 1> [AS <tên 1>] [,...] | * FROM <bảng >
Công dụng:
Trả về các bản ghi gồm các cột liệt kê sau SELECT hoặc tất cả các cột <*>
lấy từ <Bảng> gồm các bộ thoả mãn <điều kiện lọc>.
Ghi chú : Sau WHERE có thể dùng các mệnh đề :
- <biểu thức> BETWEEN <giá trị 1> AND <giá trị 2> : biểu diễn điều kiện <giá trị 1>≤ <biểu thức>≤ <giá trị 2>
- <biểu thức> NOT BETWEEN <giá trị 1> AND <giá trị 2> : biểu diễn điều kiện <biểu thức> < <giá trị 1> hoặc <biểu thức> > <giá trị 2>
- <biểu thức> IN (<giá trị 1>, <giá trị 2>, ...) : biểu diễn điều kiện <biểu thức> bằng một trong các giá trị <giá trị 1>, <giá trị 2>, ...
- <biểu thức> NOT IN (<giá trị 1>, <giá trị 2>, ...) : biểu diễn điều kiện <biểu thức> khác các giá trị <giá trị 1>, <giá trị 2>, ...
- <biểu thức ký tự> [NOT] LIKE <chuỗi ký tự> : biểu diễn điều kiện <biểu thức ký tự> [không] giống <chuỗi ký tự>
Trong <chuỗi ký tự> có thể dùng dấu % (dấu phần trăm) đại diện cho chuỗi
ký tự bất kỳ
- _ (dấu nối) đại diện cho một ký tự bất kỳ - <trường> IS [NOT] NULL: biểu diễn điều kiện. giá trị <trường> là [khác] NULL
Ví dụ
- Trả về các bản ghi gồm các cột Ten, DiaChi có giá trị duy nhất từ bảng CUNGUNG của các nhà cung ứng hoặc Đường hoặc Sữa.
SELECT DISTINCT Ten, DiaChi FROM CUNGUNG
WHERE (Hang = ‘Đường’) OR (Hang = ‘Sữa’) hoặc
SELECT DISTINCT Ten, DiaChi FROM CUNGUNG
- Trả về các bản ghi gồm các Ten, DiaChi của các khách hàng có SoDu khơng âm từ bảng KHACH
SELECT Ten, DiaChi FROM KHACH WHERE SoDu >= 0 - Trả về các bản ghi gồm các hợp đồng có SoLuong từ 100 đến 200 từ bảng HOPDONG SELECT * FROM HOPDONG
WHERE SoLuong BETWEEN 100 AND 200
- Trả về các bản ghi gồm các nhà cung ứng có tên bắt đầu bằng ‘Cty’ từ bảng CUNGUNG
SELECT *
FROM CUNGUNG
WHERE Ten LIKE ‘Cty %’
- Trả về các bản ghi gồm các nhà cung ứng có mặt hàng ‘Bia’ từ bảng CUNGUNG
SELECT *
FROM CUNGUNG
WHERE Hang LIKE ‘Bia %’
- Chọn những khách hàng chưa có địa chỉ SELECT *
FROM KHACH
WHERE DiaChi IS NULL
- Chọn những khách hàng có số dư xác định : SELECT *
FROM KHACH