CHỌN CÁC DÒNG TRONG BẢNG

Một phần của tài liệu Giáo trình cơ sở dữ liệu máy tính (Trang 32 - 35)

Trong phần trước, chúng ta đã thử dùng lệnh SELECT để tham khảo tất cả hay một số các cột trong bảng. Trong phần này, chúng ta tiếp tục xét xem có thể tham khảo một số dòng nào đó hay không với lệnh SELECT.

Để thực hiện việc này, chúng ta cần sử dụng thành phần WHERE trong lệnh SELECT, thành phần này báo cho CSDL biết cách tìm kiếm thông tin trong bảng và chỉ hiển thị các dòng thỏa điều kiện chọn lựa.

Ví dụ:

Hiển thị các nhân viên đang làm việc trong phòng 40 SELECT * ;

FROM NHAN_VIEN ; WHERE MA_PHONG=40

Khi chúng ta sử dụng thành phần WHERE, kết quả có thể không có, có một hay nhiều dòng. Điều kiện trong thành phần WHERE được so sánh với nội dung một số cột trong bảng. Chỉ có những dòng thoả tiêu chuẩn được chọn lựa hiển thị.

Vi dụ:

Hiện tất cả thông tin về nhân viên Lê Quỳnh Như SELECT * ;

FROM NHAN_VIEN ;

WHERE TEN_NV = “Lê Quỳnh Như”

III.4.1. Điều kiện kết hợp

Trong một số trường hợp, chúng ta cần xác định nhiều tiêu chuẩn chọn lựa trong thành phần WHERE. Điều này có thể thực hiện dễ dàng bằng cách dùng từ khóa AND để kết hợp các tiêu chuẩn.

Ví dụ:

Hiển thị các trưởng phòng có mức lương lớn hơn 4000 SELECT * ;

FROM NHAN_VIEN ;

WHERE CONG_VIEC = “TPG” AND LUONG>4000 III.4.2. Điều kiện loại trừ

Trong ví dụ trước, chúng ta đã dùng điều kiện AND để chọn lọc kết quả chỉ hiển thị các dòng thỏa các tiêu chuẩn chọn lựa. Chúng ta cũng có thể chọn lọc thông tin thỏa một trong các tiêu chuẩn chọn lựa bằng cách dùng từ khoá OR

Ví dụ:

Chọn hiển thị các nhân viên làm việc trong phòng 40 hoặc nhân viên có mức lương lớn hơn 4000

SELECT * ;

FROM NHAN_VIEN ;

WHERE MA_PHONG=40 OR LUONG > 4000 III.4.3. Điều kiện phủ định

Chúng ta cũng có thể lựa chọn các dòng không thỏa một tiêu chuẩn chọn lựa nào đó bằng cách dùng toán tử phủ định NOT

Ví dụ:

Hiển thị tất cả các cán bộ trưởng phòng không làm việc trong phòng 30. Nội dung hiển thị bao gồm các cột tên, công việc và phòng.

SELECT TEN_NV, CONG_VIEC, MA_PHONG ; FROM NHAN_VIEN ;

WHERE CONG_VIEC= ”TPG” AND MA_PHONG!=30

Chúng ta có thể dùng AND, OR và NOT kết hợp trong cùng một lệnh truy vấn để diễn tả tiêu chuẩn chọn lựa.Ví dụ trên có thể viết lại dùng từ khoá NOT như sau:

SELECT TEN_NV, CONG_VIEC, MA_PHONG ; FROM NHAN_VIEN ;

WHERE CONG_VIEC=”TPG” AND NOT MA_PHONG=30 III.4.4. So sánh với một tập dữ liệu

SQL cho phép chúng ta so sánh giá trị cột với một tập các giá trị của một tập dữ liệu (nghĩa là hệ quản trị CSDL sẽ chọn hiển thị các dòng có chứa giá trị nằm trong tập giá trị cho trước). SQL cho phép dùng toán tử IN (NOT IN) để tìm kiếm giá trị trong một tâp hợp các giá trị.

Ví dụ:

Hiển thị tất cả thông tin về nhân viên đang làm việc trong các phòng 10, 30 và 50.

SELECT * ;

FROM NHAN_VIEN ;

WHERE MA_PHONG IN (10, 30, 50) Ví dụ:

Hiển thị tất cả thông tin về nhân viên không làm việc trong các phòng 10, 30 và 50.

SELECT * ;

FROM NHAN_VIEN ;

WHERE MA_PHONG NOT IN (10, 30, 50) III.4.5. Tìm kiếm theo phạm vi

SQL cho phép người sử dụng tìm kiếm dễ dàng một giá trị có thuộc trong một vùng xác định nào đó hay không. Toán tử BETWEENcho phép chúng ta chọn lựa hiển thị các dòng có chứa giá trị trong vùng xác định đó.

Cú pháp toán tử BETWEEN là:

SELECT <danh sách tên cột>

FROM <tên bảng>

WHERE <tên cột>

[NOT] BETWEEN<giá trị 1>AND<giá trị 2>

Ví dụ:

Hiển thị các nhân viên có mức lương nằm trong khoảng từ 3500 đến 4500 SELECT * ;

FROM NHAN_VIEN ;

WHERE LUONG BETWEEN 3500 AND 4500 III.4.6. Thỏa mẫu dạng chuỗi

Một trong các hình thức so sánh khác là khả năng so sánh giá trị cột với một số phần của một hằng chuỗi. Hàm LIKE của SQL cho phép chúng ta thực hiện điều này.

Cú pháp như sau:

SELECT <danh sách tên cột>

FROM <tên bảng>

WHERE <tên cột>

[NOT] LIKE<’chuỗi ký tự’>;

Chú ý:

• <Chuỗi ký tự> có thể chứa một vài phần của chuỗi ký tự

• Các ký tự đại diện bao gồm ký tự gạch dưới (_) và phần trăm (%). Ký tự _ thay thế một ký tự riêng rẽ. Ký tự % thay thế một chuỗi ký tự bao gồm không có, một hay nhiều ký tự. Hai ký tự đại diện này có thể dùng kết hợp với nhau.

Ví dụ:

- Hiển thị tất cả các nhân viên có tên bắt đầu chữ T SELECT * ;

FROM NHAN_VIEN;

WHERE TEN_NV LIKE ‘T%’

- Hiển thị tất cả các nhân viên có công việc bắt đầu bằng 2 ký tự QL, theo sau là một ký tự bất kỳ

SELECT * ;

FROM NHAN_VIEN ;

WHERE CONG_VIEC LIKE ‘QL_’

Một phần của tài liệu Giáo trình cơ sở dữ liệu máy tính (Trang 32 - 35)

Tải bản đầy đủ (PDF)

(76 trang)