- DOUBLE PRECISION FLOAT, FLOAT(p)
4. Ngôn ngữ truy vấn dữ liệu 1 Truy vấn đơn giản
4.6 Truy vấn lồng
Câu truy vấn cha (Outer query) SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <so sánh tập hợp> ( SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điều kiện>)
Câu truy vấn con (Subquery)
Các câu lệnh SELECT có thể lồng nhau ở nhiều mức
Các câu truy vấn con trong cùng một mệnh đề WHERE đƣợc kết hợp bằng phép nối logic : =; >; >=; <; <=;<>(không bằng)
Câu truy vấn con thƣờng trả về một tập các giá trị Mệnh đề WHERE của câu truy vấn cha
- <biểu thức> <so sánh tập hợp> <truy vấn con> - So sánh tập hợp thƣờng đi cùng với một số toán tử
IN, NOT IN : Bằng một trong các giá trị
ALL: Phải thỏa tất cả các giá trị trả về bởi truy vấn con
ANY hoặc SOME : Chỉ cần thỏa một trong các giá trị trả về bởi truy vấn
con
- Kiểm tra sự tồn tại
EXISTS
NOT EXISTS
Có 2 loại truy vấn lồng - Lồng phân cấp
Mệnh đề WHERE của truy vấn con khơng tham chiếu đến thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha
Khi thực hiện, câu truy vấn con sẽ đƣợc thực hiện trƣớc - Lồng tƣơng quan
Mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha
Khi thực hiện, câu truy vấn con sẽ đƣợc thực hiện nhiều lần, mỗi lần tƣơng ứng với một bộ của truy vấn cha
Ví dụ13:
So sánh lƣơng tồn nhân viên lớn hơn lƣơng của nhân viên tên HÂN không .
SELECT honv, tennv,luong FROM nhanvien
WHERE luong > (SELECT luong FROM nhanvien WHERE tennv = 'hân')
Liệt kê manv,tennv,luong nhỏ nhất trong ds nhân viên (xh có 1 dịng là đúng)
SELECT MANV, TENNV, LUONG FROM nhanvien
WHERE luong = (SELECT min(luong) FROM nhanvien )
Tìm những nhân viên khơng có trong phân cơng
43 Bài giảng csdl 60
SELECT *
FROM NHANVIEN
WHERE nhanvien.MANV NOT IN ( SELECT phancong.ma_nvien FROM phancong )
SELECT *
FROM NHANVIEN
WHERE nhanvien.MANV <> ALL ( SELECT
phancong.MA_NVIEN
FROM phancong)
Nhận xét IN và EXISTS
IN
- <tên cột> IN <câu truy vấn con>
- Thuộc tính ở mệnh đề SELECT của truy vấn con phải có cùng kiểu dữ liệu với thuộc tính ở mệnh đề WHERE của truy vấn cha
EXISTS
- Khơng cần có thuộc tính, hằng số hay biểu thức nào khác đứng trƣớc
- Khơng nhất thiết liệt kê tên thuộc tính ở mệnh đề SELECT của truy vấn con - Những câu truy vấn có = ANY hay IN đều có thể chuyển thành câu truy vấn có
44 Bài giảng csdl 60
CHƢƠNG 6: CHUẨN HÓA CSDL
Mã bài: MH10-01
Mục tiêu:
- Trình bày đƣợc định nghĩa chuẩn hóa - Thực hiện đƣợc các dạng chuẩn hoá
- Thực hiện các quan hệ chuẩn hố đảm bảo khơng làm mất thơng tin. - Rèn luyện tính chủ động, tích cực, tự giác, nghiêm túc trong học tập. Nội dung chính:
1.Định nghĩa chuẩn hóa
Chuẩn hố là quá trình tách bảng (phân rã) thành các bảng nhỏ hơn dựa vào các phụ thuộc hàm. Các dạng chuẩn là các chỉ dẫn để thiết kế các bảng trong CSDL. Mục đích của chuẩn hố là loại bỏ các dƣ thừa dữ liệu và các lỗi khi thao tác dƣ thừa và các lỗi khi thao tác dữ liệu (Insert, Delete, Update).
Các dạng chuẩn hoá (Normal Form)