1. Trang chủ
  2. » Công Nghệ Thông Tin

Cơ sở dữ liệu 1_Chương 6: Ngôn ngữ truy vấn có cấu trúc (SQL) docx

44 980 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 578,5 KB

Nội dung

Đặt bí danh alias Bí danh cho cột hoặc biểu thức trong mệnh đề SELECT chỉ có ý nghĩa trả về kết quả, không có ý nghĩa thay thế cột hoặc biểu thức đó  Bí danh cho bảng có ý nghĩa thay

Trang 3

Ngôn ngữ truy vấn có cấu trúc

 Structured Query Language (SQL)

 Tên ban đầu là SEQUEL (Structured English QUEry Language)

 Các thành phần:

 DDL: Create, Drop, Alter …

 DML: Select, Insert, Delete, Update …

 DCL: Grant, Revoke, …

 Được sử dụng trong các DBMS thông dụng

 Mỗi DBMS có thể có một số khác biệt

Trang 4

Lược đồ CSDL

Trang 6

 VD: Truy vấn ngày sinh và địa chỉ của những người

có tên ‘Nguyen Bao Hung’:

SELECT NgSinh, DChi FROM NHANVIEN

Trang 7

LIKE và NOT LIKE

Trang 8

BETWEEN và NOT BETWEEN

 Cấu trúc:

[NOT] BETWEEN min_value AND max_value

 Ví dụ: Tìm MaNV, TenNV của những nhân viên

Trang 11

Hàm gộp (Aggregate function)

 Ghi chú: hàm COUNT(*) trả về số dòng kết quả

Trang 15

Một số ràng buộc đối với mệnh

đề GROUP BY và HAVING

 Thuộc tính xuất hiện trong mệnh đề SELECT:

 Phải được tính hàm gộp, hoặc

 Phải có trong mệnh đề GROUP BY

 Thuộc tính có trong mệnh đề GROUP BY

không bắt buộc có trong mệnh đề SELECT

 Phải có mệnh đề GROUP BY mới được có

mệnh đề HAVING

 Phải có ít nhất một hàm gộp trong mệnh đề

SELECT hoặc mệnh đề HAVING

Trang 18

Thứ tự thực thi câu truy vấn

Trang 19

Truy vấn nhiều bảng

 Kết theta

 Kết tự nhiên (kết nội)

 Kết ngoại

 Truy vấn lồng nhau (truy vấn con)

 Truy vấn con có tương quan

Trang 21

Kết theta (2)

 Ví dụ: Tìm MaNV, Họ tên và tên phòng ban của tất cả nhân viên

SELECT MaNV, HoNV, Tenlot, TenNV, TenPB

FROM NHANVIEN, PHONGBAN

WHERE NHANVIEN.Phong=PHONGBAN.MaPB;

 Ví dụ: Tìm MaNV, Họ tên và tên phòng ban của những nhân viên làm việc cho phòng “Nghiên cuu”

SELECT MaNV, HoNV, Tenlot, TenNV, TenPB

FROM NHANVIEN, PHONGBAN

WHERE TenPB = ‘Nghien cuu’

AND NHANVIEN.Phong=PHONGBAN.MaPB;

Trang 23

Kết nội (2)

 Ví dụ: Tìm MaNV, Họ tên và tên phòng ban của tất cả nhân viên

SELECT MaNV, HoNV, Tenlot, TenNV, TenPB

FROM NHANVIEN INNER JOIN PHONGBAN

ON NHANVIEN.Phong=PHONGBAN.MaPB;

 Ví dụ: Tìm MaNV, Họ tên và tên phòng ban của những nhân viên làm việc cho phòng “Nghiên cuu”

SELECT MaNV, HoNV, Tenlot, TenNV, TenPB

FROM NHANVIEN INNER JOIN PHONGBAN

ON NHANVIEN.Phong=PHONGBAN.MaPB

WHERE TenPB=‘Nghien cuu’;

Trang 25

Kết ngoại (2)

 Ví dụ:

SELECT MaNV, HoNV, Tenlot, TenNV, TenPB

FROM NHANVIEN LEFT OUTER JOIN PHONGBAN

ON NHANVIEN.MaNV=PHONGBAN.TrPhong;

Trang 26

Đặt bí danh (alias)

 Bí danh cho cột (hoặc biểu thức) trong mệnh

đề SELECT chỉ có ý nghĩa trả về kết quả,

không có ý nghĩa thay thế cột hoặc biểu thức đó

 Bí danh cho bảng có ý nghĩa thay thế trong câu truy vấn đó (và trong các câu truy vấn

con)

Trang 27

Bí danh (2)

họ tên của người quản lý:

SELECT CapDuoi.MaNV AS MaNVCapDuoi,

CapDuoi.TenNV AS TenCapDuoi, NQL.MaNV AS MaNQL, NQL.TenNV AS TenNQL FROM NHANVIEN AS CapDuoi

INNER JOIN NHANVIEN AS NQL

ON CapDuoi.MaNQL = NQL.MaNV;

Trang 28

Câu truy vấn con

 Câu truy vấn con là lệnh SELECT xuất hiện trong một câu SELECT khác

 Câu truy vấn con có thể xuất hiện trong mệnh

đề FROM (đóng vai trò của 1 bảng), WHERE hoặc HAVING

 Truy vấn con đơn hàng: Kết quả trả về là một

hàng (hay một giá trị)

 Truy vấn con đa hàng: Kết quả trả về là một bảng

Trang 29

Truy vấn con trong mệnh đề

Trang 30

Truy vấn con trong mệnh đề

WHERE (Phong, Luong) IN

(SELECT Phong, MAX(Luong)

FROM NHANVIEN

Trang 31

Thứ tự thực hiện truy vấn

lồng nhau

một tập giá trị)

của truy vấn con

bắt đầu từ truy vấn con trong cùng đến truy vấn chính

Trang 32

Câu truy vấn con tương quan

bên trong với thuộc tính của quan hệ bên ngoài

cao nhất của mỗi phòng:

SELECT MaNV, HoNV, Tenlot, TenNV FROM NHANVIEN AS NV1

WHERE Luong = (SELECT MAX(Luong)

FROM NHANVIEN AS NV2

Trang 33

Thứ tự thực hiện truy vấn con

tương quan

 Lấy hàng được xét (từ truy vấn ngoài cùng)

 Thực hiện truy vấn con bằng cách sử dụng giá trị của hàng được chọn

 Sử dụng giá trị được trả về từ truy vấn con

để xét điều kiện có thỏa mãn hay không

 Lặp lại cho đến khi nào không còn dòng nào của truy vấn ngoài cùng

Trang 34

ANY / ALL

tính trong truy vấn ngoài với một tập giá trị

được trả về bởi câu truy vấn con

tất cả giá trị được trả về bởi câu truy vấn con

ít nhất một giá trị trong tập giá trị được trả về bởi câu truy vấn con

Trang 35

ANY/ALL (2)

lương của tất cả nhân viên phòng số 5

SELECT MaNV, HoNV, Tenlot, TenNV

FROM NHANVIEN

WHERE Luong > ALL (SELECT Luong

FROM NHANVIENWHERE Phong =5);

Trang 36

ANY/ALL (3)

lương của một trong số nhân viên phòng số 5

SELECT MaNV, HoNV, Tenlot, TenNV

FROM NHANVIEN

WHERE Luong > ANY (SELECT Luong

FROM NHANVIENWHERE Phong =5);

Trang 38

EXISTS và NOT EXISTS

 Dùng để kiểm tra kết quả của câu truy vấn

con tương quan là rỗng hay không rỗng

 Các cột trong mệnh đề SELECT của câu truy vấn con không quan trọng (có thể dùng *)

Trang 39

EXISTS và NOT EXISTS (2)

Trang 40

EXISTS và NOT EXISTS (3)

Trang 41

Câu truy vấn con trong mệnh

đề HAVING

 Tương tự như câu truy vấn con trong mệnh

đề WHERE

Trang 42

Truy vấn con trong mệnh đề

FROM

 Câu truy vấn con trả về một bảng có thể

đóng vai trò như một bảng trong mệnh đề

FROM của câu truy vấn ngoài (cần kết hợp với đặt lại bí danh cho bảng)

 Cấu trúc

FROM (subquery) AS tablename

Trang 43

Truy vấn con trong mệnh đề

FROM

cao nhất của mỗi phòng:

SELECT MaNV, HoNV, Tenlot, TenNV

Trang 44

Truy vấn con trong mệnh đề

FROM

 Câu truy vấn con trong mệnh đề FROM chỉ được thực thi một lần, kết quả trả về là một bảng tạm dùng để thực thi câu truy vấn ngoài

Ngày đăng: 02/07/2014, 01:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w