Ban chỉ ĐẠo công nghệ thông tin của cơ quan đẢng giáo trình thiết kế, XÂy dựng và quản trị CƠ SỞ DỮ liệu hà NỘI, 2004



tải về 1.04 Mb.
trang22/29
Chuyển đổi dữ liệu07.07.2016
Kích1.04 Mb.
1   ...   18   19   20   21   22   23   24   25   ...   29

2.Các toán tử lôgic: AND, OR và NOT


SQL cho phép dùng các hạn chế lôgic trong các câu vấn tin của nó. Chẳng hạn, nếu bạn muốn nhận được một danh sách gồm các mục ứng với giá trị của V_CODE hoặc là 21344 hoặc 24288, bạn có thể dùng dãy lệnh sau đây:

SELECT *
FROM INVENTRY


WHERE V_CODE = 21344
OR V_CODE = 24288;

Lệnh này tạo ra sáu hàng phù hợp với các hạn chế lôgic:



P_CODE

P_DESCRIPT

STOCK_DATE

ON_HAND

MIN_QUANT

PRICE

V_CODE

13-Q2/P2
2QQ23DRT
54778-2T
89-WRE-Q
2232/QWE
2232/QTY

7.25in, power saw blade
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
B&D jigsaw, 12in, blade

08/12/91
07/02/91
12/03/90
08/11/91
11/26/90
11/26/90

32
188
43
11
6
8

15
75
20
5
3
3

14.99
5.87
4.99
256.99
99.87
109.92

21344
21344
21344
24288
24288
24288

AND lôgic có yêu cầu cú pháp SQL tương tự. Lệnh dưới đây tạo ra một danh sách tất cả các hàng thoả mãn đồng thời hai điều kiện PRICE nhỏ hơn 50.000USD và STOCK_DATE là ngày xuất hiện trước 15 tháng bảy năm 1991:

SELECT *
FROM INVENTRY


WHERE PRICE < 50
AND STOCK_DATE < ‘07/15/91’;

Lệnh này sẽ đưa ra kết quả dưới đây:



P_CODE

P_DESCRIPT

STOCK_DATE

ON_HAND

MIN_QUANT

PRICE

V_CODE

ZW-23116
2QQ23DRT
54778-2T
23114-AA

2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Sledge hammer, 12lb

06/25/91
07/02/91
12/03/90
02/15/91

237
188
43
8

100
75
20
5

8.45
5.87
4.99
14.40

21231
21344
21344
21231

Bạn có thể kết hợp OR và AND để đặt thêm các hạn chế cho kết quả đưa ra. Chẳng hạn, giả sử bạn muốn có một bảng với các điều kiện sau:

Giá trị STOCK_DATE trước ngày 15 tháng 7 năm 1991 và giá PRICE nhỏ hơn 50.000USD.

Hoặc V_CODE là 24288.

Danh sách yêu cầu có thể được tạo ra với dãy lệnh

SELECT *
FROM INVENTRY
WHERE (PRICE < 50 AND STOCK_DATE < ‘07/15/91’)
OR V_CODE = 24288;

Lưu ý việc dùng các dấu đóng mở ngoặc tròn để kết hợp các hạn chế lôgic. Nơi đặt cặp dấu ngoặc tròn phụ thuộc vào thứ tự ưu tiên bạn muốn các hạn chế được thực hiện. Các điều kiện được liệt kê trong cặp dấu ngoặc tròn thường được thực hiện trước. Bạn đã học về quy tắc ưu tiên này trong đại số sơ cấp và số học: 2 + (3  5) = 17 vì 3  5 = 15 và 2 + 15 = 17.

Việc dùng OR và AND lôgic có thể trở nên khá phức tạp khi nhiều hạn chế được đặt trong câu vấn tin. Trên thực tế, một lĩnh vực đặc biệt trong toán học là Đại số Bool đã đóng góp nhiều cho việc sử dụng các công cụ lôgic.

Câu vấn tin trên đây đưa ra kết quả dưới đây:



P_CODE

P_DESCRIPT

STOCK_DATE

ON_HAND

MIN_QUANT

PRICE

V_CODE

ZW-23116
2QQ23DRT
54778-2T
23114-AA
89-WRE-Q
2232/QWE
2232/QTY

2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Sledge hammer, 12lb
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
B&D jigsaw, 12in, blade

06/25/91
07/02/91
12/03/90
02/15/91
08/11/91
11/26/90
11/26/90

237
188
43
8
11
6
8

100
75
20
5
5
3
3

8.45
5.87
4.99
14.40
256.99
99.87
109.92

21231
21344
21344
21231
24288
24288
24288

Lưu ý rằng ba hàng với V_CODE là 24288 luôn có trong kết quả đưa ra ứng với giá trị bất kỳ của STOCK_DATE và PRICE trong hàng đó.

Nếu phiên bản SQL của bạn hỗ trợ toán tử lôgic NOT, bạn phải dùng cú pháp tương tự như OR hoặc AND. Chẳng hạn, nếu bạn muốn xem một danh sách tất cả các hàng tương ứng với mã nhà cung cấp không phải là 21344, dùng dãy lệnh

SELECT *
FROM INVENTRY
WHERE V_CODE NOT 21344;

NOT lôgic có thể kết hợp với AND và OR.


1   ...   18   19   20   21   22   23   24   25   ...   29


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2016
được sử dụng cho việc quản lý

    Quê hương