Các phép toán trong Ngôn ngữ thao tác dữ liệu: Phép kết nối ngoài, phép tính biến bộ

MỤC LỤC

Các phép toán đặc biệt trên quan hệ

Phép kết nối ngoài trái (left outer join) kết nối ngoài phải (right outer join).

Dùng các biểu thức đại số quan hệ biểu diễn câu hỏi

Với mỗi dự án thực hiện ở “TT khí thượng thủy văn HN” hãy cho biết mã số dự án, đồng thời cho biết họ tên, ngày sinh của trưởng phòng quản lý dự án này. Tìm tên những nhân viên làm việc cho tất cả các dự án do phòng có mã số P4 quản lý. Tìm mã số những dự án có sự tham gia của một người là lãnh đạo phòng trực tiếp quản lý dự án này.

Biểu thức của phép tính biến bộ

Công thức của phép tính biến bộ được tạo nên từ các công thức nguyên tố. Mỗi công thức nguyên tố sẽ nhận một trong hai giá trị TRUE và FALSE đối với một tổ hợp các bộ (giá trị chân lý). Cho biết họ tên và lương của những nhân viên thuộc phòng “Nghiên cứu và phát triển”.

Với mỗi dự án thực hiện ở “TT khí thượng thủy văn HN” hãy cho biết mã số dự án, đồng thời cho biết họ tên trưởng phòng quản lý dự án này. Tìm mã số của những dự án có sự tham gia của một người là lãnh đạo của phòng trực tiếp quản lý dự án này.

Ngôn ngữ tân từ biến miền

„ Khả năng biểu thị câu hỏi của đại số quan hệ và ngôn ngữ tân từ là tương đương nhau về mặt này. „ Một ngôn ngữ hỏi L (của mô hình quan hệ) được gọi là đầy đủ nếu với L, chúng ta có thể biểu diễn được bất cứ một câu.

NGÔN NGỮ SQL

Phần thao tác dữ liệu sẽ có đông đảo người dùng hơn, do chúng ta xem xét phần này trước phần định nghĩa dữ liệu.

WHERE

Cho biết họ tên của mỗi nhân viên và lương mới của mỗi người nếu lương họ được tăng 10%. Trong bảng kết quả, nếu muốn có thể đặt tên cho cột thứ ba, chẳng hạn cột thứ ba được đặt tên là luong_moi, với câu lệnh sau. Có thể tìm biết tên và mã các dự án mà địa điểm có chứa từ.

SELECT *

Để đưa ra lương cao nhất và tổng lương của những đơn vị có tổng lương trên 4 triệu, câu truy vấn là. Xét câu hỏi: ‘Tìm tên của những nhân viên có lương đạt trên mức lương trung bình của tất cả các nhân viên, đồng thời cho biết luôn mức chênh lệch này’. Câu ORDER BY không được sử dụng trong một câu truy vấn con mặc dù nó có thể được dùng trong câu truy vấn ngoài.

Danh sách các mục được liệt kê bởi câu truy vấn con SELECT phải chứa tên của một cột hoặc một biểu thức trừ phi câu truy vấn con này dùng từ khóa EXISTS. Theo ngầm định, các tên cột trong câu truy vấn con tham chiếu đến tên bảng trong câu FROM của truy vấn con này, hoặc có thể tham chiếu đến bảng trong câu FROM của truy vấn ngoài bằng việc xác định tên cột đó. Muốn biết thông tin về những nhân viên làm việc cho đơn vị có địa điểm là ’23 Lý Thường Kiệt’, có thể dùng truy vấn như sau SELECT *.

Điều kiện chọn (lọc) trong câu HAVING luôn chứa ít nhất một hàm gộp, nếu không thì điều kiện này có thể chuyển vào câu WHERE. Trường hợp câu truy vấn có cả câu WHERE và câu HAVING (dĩ nhiên có cả câu GROUP BY), thì trước tiên điều kiện chọn ở câu WHERE được áp. Các nhóm còn lại được câu SELECT sử dụng để tạo ra các bộ là kết quả của câu truy vấn.

Xét câu hỏi: ‘Tìm tên của những nhân viên có lương đạt trên mức lương trung bình của tất cả các nhân viên, đồng thời cho biết luôn mức chênh lệch này’. Câu ORDER BY không được sử dụng trong một câu truy vấn con mặc dù nó có thể được dùng trong câu truy vấn ngoài. SELECT phải chứa tên của một cột hoặc một biểu thức trừ phi câu truy vấn con này dùng từ khóa EXISTS.

Theo ngầm định, các tên cột trong câu truy vấn con tham chiếu đến tên bảng trong câu FROM của truy vấn con này, hoặc có thể tham chiếu đến bảng trong câu FROM của truy vấn ngoài bằng việc xác định tên cột đó. Muốn biết thông tin về những nhân viên làm việc cho đơn vị có địa điểm là ’23 Lý Thường Kiệt’, có thể dùng truy vấn như sau SELECT *. “ Tìm tên và lương của những người có lương cao hơn lương mọi nhân viên thuộc đơn vị mã P2 “.

Câu hỏi “ Cho biết thông tin về những nhân viên có lương cao hơn ít nhất một nhân viên làm ở phòng kỹ thuật”. “ Cho biết tên phòng có trung bình lương cao nhất” sẽ được viết là SELECT ten_phong.

NGÔN NGỮ SQL Dùng các biến bộ

Các quan hệ được dẫn xuất và khung nhìn SQL-92 cho phép dùng câu hỏi con trong câu FROM, trong đó bảng kết quả của câu hỏi con phải được đặt tên và các cột được phép đổi tên. Một kết quả như vậy được gọi là một quan hệ (bảng) được dẫn xuất.