<< Chapter < Page | Chapter >> Page > |
SELECT Branch_name, avg_balance
FROM ( SELECT Branch_name, AVG(Balance)
FROM Account
GROUP BY Branch_name)
AS result (Branch_name, Avg_balace)
WHERE avg_balance>1200
Trong SQL, để định nghĩa view ta sử dụng lệnh CREATE VIEW. Một view phải có một tên.
CREATE VIEW<tên view>AS<Biểu thức vấn tin>
"Tạo một view gồm các tên chi nhánh, tên của các khách hàng có hoặc một tài khoản hoặc vay ở chi nhánh này"
Giả sử ta muốn đặt tên cho view này là All_customer.
CREATE VIEW All_customerAS
(SELECT Branch_name, Customer_name
FROM Depositor, Account
WHERE Depositor.Account_number = Account.Account_number )
UNION
( SELECT Branch_name, Customer_name
FROM Borrower, Loan
WHERE Borrower.Loan_number = Loan.Loan_number)
Tên thuộc tính của một view có thể xác định một cách tường minh như sau:
CREATE VIEW Branch_total_loan (Branch_name, Total_loan) AS
( SELECT Branch_name, sum(Amount)
FROM Loan
GROUP BY Branch_name)
Một view là một quan hệ, nó có thể tham gia vào các câu vấn tin với vai trò của một quan hệ.
SELECT Customer_name
FROM All_customer
WHERE Branch_name = 'Perryridge'
Một câu vấn tin phức tạp sẽ dễ hiểu hơn, dễ viết hơn nếu ta cấu trúc nó bằng cách phân tích nó thành các view nhỏ hơn và sau đó tổ hợp lại.
Định nghĩa view được giữ trong CSDL đến tận khi một lệnh DROP VIEW<tên view>được gọi. Trong chuẩn SQL 3 hiện đang được phát triển bao hàm một đề nghị hỗ trợ những view tạm không được lưu trong CSDL.
DELETE
INSERT
UPDATE
Ta chỉ có thể xoá nguyên vẹn một bộ trong một quan hệ, không thể xoá các giá trị của các thuộc tính. Biểu thức xoá trong SQL là:
DELETE FROM r
[WHERE P]
Trong đó p là một vị từ và r là một quan hệ.
Lệnh DELETE duyệt qua tất cả các bộ t trong quan hệ r, nếu P(t) là true, DELETE xoá t khỏi r. Nếu không có mệnh đề WHERE, tất cả các bộ trong r bị xoá.
Lệnh DELETE chỉ hoạt động trên một quan hệ.
WHERE Amount BETWEEN 1300 AND 1500
WHERE Branch_name IN (SELECT Branch_name
FROM Branch
WHERE Branch_city = 'Brooklyn')
WHERE Balance<(SELECT AVG(Balance)
FROM Account)
Để xen dữ liệu vào một quan hệ, ta xác định một bộ cần xen hoặc viết một câu vấn tin kết quả của nó là một tập các bộ cần xen. Các giá trị thuộc tính của bộ cần xen phải thuộc vào miền giá trị của thuộc tính và số thành phần của bộ phải bằng với ngôi của quan hệ.
“Xen vào quan hệ Account một bộ có số tài khoản là A-9732, số cân đối là 1200$ và tài khoản này được mở ở chi nhánh Perryridge”
INSERT INTO Account
VALUES (‘Perryridge’, ‘A-9732’, 1200);
Trong ví dụ này thự tự các giá trị thuộc tính cần xen trùng khớp với thứ tự các thuộc tính trong sơ đồ quan hệ. SQL cho phép chỉ rõ các thuộc tính và các giá trị tương ứng cần xen:
INSERT INTO Account (Branch_name, Account_number, Balance)
VALUES (‘Perryridge’, ‘A-9732’, 1200);
INSERT INTO Account (Account_number, Balance, Branch_name)
Notification Switch
Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?