<< Chapter < Page Chapter >> Page >

"tìm số cân đối tài sản trung bình của các chi nhánh tại đó số cân đối tài khoản trung bình lớn hơn 1200$"

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

Views

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.

Sửa đổi cơ sở dữ liệu

DELETE

INSERT

UPDATE

Xóa (delete)

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ệ.

  • DELETE FROM Loan = Xoá tất cả các bộ của quan hệ Loan
  • DELETE FROM Depositor WHERE Customer_name = 'Smith'
  • DELETE FROM Loan

WHERE Amount BETWEEN 1300 AND 1500

  • DELETE FROM Account

WHERE Branch_name IN (SELECT Branch_name

FROM Branch

WHERE Branch_city = 'Brooklyn')

  • DELETE FROM Account

WHERE Balance<(SELECT AVG(Balance)

FROM Account)

Xen (insert)

Để 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)

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Hệ quản trị cơ sở dữ liệu. OpenStax CNX. Jul 31, 2009 Download for free at http://cnx.org/content/col10838/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?

Ask