25 Bài giảng csdl 60Ví dụ:
KQ(TENPHG, MAPHG, TRPHG, NGAY_NHANCHUC, DIADIEM)
Cho biết MANV và TENNV làm việc ở phòng „Nghien cuu‟
R1 NHANVIEN PHG=MAPHG PHONGBAN
30 Bài giảng csdl 60
Phép kết ngoài
Để giữ lại tất cả các bộ trong một quan hệ bất chấp chúng có đƣợc liên kết với các bộ trong quan hệ cịn lại hay khơng nhằm tránh mất thơng tin hoặc tạo các báo cáo.
Có 3 dạng
• Mở rộng trái (Left Outer Join) - R <ĐK> S. • Mở rộng phải (Right Outer Join)
- R <ĐK> S.
• Mở rộng hai phía (Full Outer Join) - R <ĐK> S.
Cho biết họ tên nhân viên và tên phòng ban mà họ phụ trách nếu có Quan hệ: NHANVIEN, PHONGBAN
Thuộc tinh: TENNV, TENPH
NHANVIEN(HONV, TENNV, MANV, …, PHG)
PHONGBAN(TENPHG, MAPHG, TRPHG, NG_NHANCHUC)
R1 NHANVIEN MANV=TRPHG PHONGBAN
KQ HONV,TENNV, TENPHG (R1)
Với mỗi nhân viên cho biết họ, tên và tên phịng nếu họ là trƣởng phịng. • Q1 NHANVIEN MaNV = TrPhong PHONGBAN
Q Ho, Ten, TenPB(Q1)
ví dụ 2:
SQL Các phép
SELECT MANV, HONV, TENLOT, TENNV FROM NHANVIEN WHERE PHG=5 AND PHAI=„Nam‟ MANV,HONV,TENLOT,TENNV(PHG=5 PHAI=„Nam‟ (NHANVIEN)) SELECT * FROM NHANVIEN WHERE PHG=5 PHG=5 (NHANVIEN)
SELECT MANV, LUONG*1.1 AS „LUONG10%‟
FROM NHANVIEN WHERE PHG=5 AND PHAI=„Nam‟
31 Bài giảng csdl 60
1.2.4 Phép chia
Đƣợc dùng để lấy ra một số bộ trong quan hệ R sao cho thỏa với tất cả các bộ trong quan hệ S
Ký hiệu R S - R(Z) và S(X)
Z là tập thuộc tính của R, X là tập thuộc tính của S X Z
Kết quả của phép chia là một quan hệ T(Y) - Với Y=Z-X
- Có t là một bộ của T nếu với mọi bộ tSS, tồn tại bộ tRR thỏa 2 điều kiện tR(Y) = t
tR(X) = tS(X)
Ví dụ:
Ví du:
Cho biết tên, địa chỉ của các nhân viên của phòng Nghiên cứu.
Q1 TenPB = „Nghien cuu‟(PHONGBAN) Q2 Q1 * NHANVIEN
Q Ho, Ten, DChi(Q2)
Cho biết tên các nhân viên tham gia tất cả các dự án do phòng số 5 điều phối.
Q1 MaDA(PhongQL = 5(DUAN)) Q2 MaNV, MaDA(THAMGIA) Q3 Q2 Q1
Q Ho, Ten(Q3 * NHANVIEN)