<< Chapter < Page | Chapter >> Page > |
EXCEPT ALL
(SELECT Customer_name
FROM Borrower);
SQL có các hàm tính gộp (aggregate functions):
Đối số của các hàm AVG và SUM phải là kiểu dữ liệu số
"Tìm số cân đối tài khoản trung bình tại chi nhánh Perryridge”
SELECT AGV(balace)
FROM Account
WHERE Branch_name = ‘Perryridge’;
SQL sử dụng mệnh để GROUP BY vào mục đích nhóm các bộ có cùng giá trị trên các thuộc tính nào đó
"Tìm số cân đối tài khoản trung bình tại mỗi chi nhánh ngân hàng”
SELECT Branch_name, AVG(balance)
FROM Account
GROUP BY Branch_name;
“Tìm số các người gửi tiền đối với mỗi chi nhánh ngân hàng”
SELECT Branch_name, COUNT(DISTINCT Customer_name)
FROM Depositor, Account
WHERE Depositor.Account_number = Account.Acount_number
GROUP BY Branch_name
Giả sử ta muốn liệt kê các chi nhánh ngân hàng có số cân đối trung bình lớn hơn 1200$. Điều kiện này không áp dụng trên từng bộ, nó áp dụng trên từng nhóm. Để thực hiện được điều này ta sử dụng mệnh đề HAVING của SQL
SELECT Branch_name, AVG(balance)
FROM Account
GROUP BY Branch_name
HAVING AGV(Balance)>1200$;
Vị từ trong mệnh đề HAVING được áp dụng sau khi tạo nhóm, như vậy hàm AVG có thể được sử dụng
“Tìm số cân đối đối với tất cả các tài khoản”
SELECT AVG(Balance) FROM Account;
“Đếm số bộ trong quan hệ Customer”
SELECT Count(*)FROM Customer;
SQL không cho phép sử dụng DISTINCT với COUNT(*), nhưng cho phép sử dụng DISTINCT với MIN và MAX.
Nếu WHERE và HAVING có trong cùng một câu vấn tin, vị từ sau WHERE được áp dụng trước. Các bộ thoả mãn vị từ WHERE được xếp vào trong nhóm bởi GROUP BY, mệnh đề HAVING (nếu có) khi đó được áp dụng trên mỗi nhóm. Các nhóm không thoả mãn mệnh đề HAVING sẽ bị xoá bỏ.
“Tìm số cân đối trung bình đối với mỗi khách hàng sống ở Harrison và có ít nhất ba tài khoản”
SELECT Depositor.Customer_name, AVG(Balance)
FROM Depositor, Account, Customer
WHERE Depositor.Account_number = Account.Account_number AND
Depositor.Customer_name = Customer.Customer_name AND
Customer.city =’Harrison’
GROUP BY Depositor.Customer_name
HAVING COUNT(DISTINT Depositor.Account_number)>= 3;
SQL cho phép sử dụng các giá trị null để chỉ sự vắng mặt thông tin tạm thời về giá trị của một thuộc tính. Ta có thể sử dụng từ khoá đặc biệt null trong vị từ để thử một giá trị null.
"Tìm tìm tất cả các số vay trong quan hệ Loan với giá trị Amount là null"
SELECT Loan_number
FROM Loan
WHERE Amount is null
Vị từ not null thử các giá trị không rỗng
Sử dụng giá trị null trong các biểu thức số học và các biểu thức so sánh gây ra một số phiền phức. Kết quả của một biểu thức số học là null nếu một giá trị input bất kỳ là null. Kết quả của một biểu thức so sánh chứa một giá trị null có thể được xem là false. SQL92 xử lý kết quả của một phép so sánh như vậy như là một giá trị unknown, là một giá trị không là true mà cũng không là false. SQL92 cũng cho phép thử kết quả của một phép so sánh là unknown hay không. Tuy nhiên, trong hầu khắp các trường hợp, unknown được xử lý hoàn toàn giống như false.
Notification Switch
Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?