Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chương I: Khái niệm cơ bản về các hệ cơ <strong>sở</strong> <strong>dữ</strong> <strong>liệu</strong><br />
FROM CUNG_CAP<br />
WHERE O# IN<br />
(SELECT O#<br />
FROM HOA_DON<br />
WHERE TEN_K =”Nga”)))<br />
Ví dụ Giả sử chắc chắn rằng “Hoa” chỉ có một đơn đặt hàng, khi đó có thể lấy được mã số<br />
đơn đặt hàng đó qua một câu vấn tin con và dùng nó để chọn tất cả các mặt hàng được đặt<br />
bởi “Hoa” từ quan hệ MH_SL. Trong trường hợp không biết chắc chắn “Hoa” đặt một đơn<br />
đặt hàng, mà có thể từ hai đơn đặt hàng trở lên thì câu vấn tin được trình bày dưới đây sẽ trả<br />
lời kết quả sai:<br />
In tên các mặt hàng mà “Hoa” đặt mua (trường hợp chỉ có một đơn đặt).<br />
SELECT TEN_K<br />
FROM MH_SL<br />
WHERE O# =<br />
(SELECT SHD#<br />
FROM HOA_DON<br />
WHERE TEN_K = “Hoa”);<br />
5.6.6 Các phép toán gộp nhóm<br />
SQL cung cấp năm phép toán gộp nhóm thướng dùng AVG, COUNT, SUM, MIN, MAX<br />
và các phép toán STDDEV và VARLANCE để tính độ lệch chuẩn và phương sai của một<br />
danh sách các số. Một câu lệnh SELECT – FROM –- WHERE có thể in ra kết quả khi áp<br />
dụng một hay nhiều các phép toán gộp cho các thuộc tính của một quan hệ bằng cách đặt<br />
quan hệ này trong mệnh đề FROM và trong mệnh đề SELECT AVG(A),<br />
COUNT(A),...trong đó A là một thuộc tính. Nếu trước các thuộc tính A có thêm từ khoá<br />
DISTINCT thì sự trùng lặp bị loại bỏ trước khi phép toán được thực hiện.<br />
Ví dụ<br />
a) In và tính số dư trung bình trong quan hệ CUSTOMERS..<br />
SELECT AVG (TAI_KHOAN)<br />
FROM KHACH_HANG.<br />
b) In và tính số nhà cung cấp<br />
SELECT COUNT(DISTINCT TEN_CC) #TEN<br />
FROM CUNG_CAP<br />
#TEN là tên cột mới khi in ra kết quả.<br />
c) Số các nhà cung cấp “rượu cuốc lủi”<br />
SELECT COUNT(DISTINCT TEN_CC) #TEN_CLUI<br />
FROM CUNG_CAP<br />
WHERE MAT_HANG =”Cuốc lủi”;<br />
118