Truy vấn lồng

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Nghề: Quản trị mạng máy tính - Cao đẳng) - Trường Cao đẳng Cộng đồng Đồng Tháp (Trang 42 - 44)

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

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Nghề: Quản trị mạng máy tính - Cao đẳng) - Trường Cao đẳng Cộng đồng Đồng Tháp (Trang 42 - 44)

Tải bản đầy đủ (PDF)

(57 trang)