Chương 5
Truy vấn nâng cao
Database Design and Implementation with SQL Server 2000 / Session 5 / 2 of 33
Ôn tập
Ôn lại về kiểu người dùng và quản lý bảo mật:
Quản lý đăng nhập
Quản lý người dùng
Các thủ tục hệ thống để đăng nhập và quản lý
người dùng
Gán và huỷ bỏ các quyền hạn
Database Design and Implementation with SQL Server 2000 / Session 5 / 3 of 33
Mục tiêu
Tìm hiểu và thi hành các truy vấn con
Tìm hiểu cách sử dụng mệnh đề EXISTS
Tìm hiểu cách thi hành các truy vấn
Học cách sử dụng mệnh đề DISTINCT để truy
vấn
Tìm hiểu cách sử dụng COMPUTE BY
Truyền dữ liệu giữa các bảng bằng cách sử
dụng SELECT INTO
Database Design and Implementation with SQL Server 2000 / Session 5 / 4 of 33
Truy vấn là gì?
SQL
Server
Truy
vấn
Dữ liệu trong
các bảng
Người sử
dụng
Khởi tạo
Đưa ra một câu
hỏi cần quan tâm
Trả lời câu hỏi –
Trả về tập hợp kết
quả
Xử lý bởi
Database Design and Implementation with SQL Server 2000 / Session 5 / 5 of 33
Câu lệnh SELECT trong
truy vấn
Truy vấn trên nhiều hàng và cột
Có thể truy vấn trên nhiều bảng hoặc
nhiều CSDL.
Xác định các cột yêu cầu trong truy vấn
được chỉ ra.
Các cột kết quả có cùng thứ tự trong
truy vấn.
Database Design and Implementation with SQL Server 2000 / Session 5 / 6 of 33
Truy vấn trên nhiều bảng
Database Design and Implementation with SQL Server 2000 / Session 5 / 7 of 33
Các truy vấn con
Truy vấn cha
Truy vấn
con
Toán tử
Select <Column Name> From Table
WHERE <Column Name> =
Select <Column Name> From
<Table> WHERE <Column> =
<Criteria >
Truy vấn con : là một câu lệnh SELECT
lồng trong câu lệnh SELECT khác
Database Design and Implementation with SQL Server 2000 / Session 5 / 8 of 33
Sử dụng EXISTS và NOT
EXISTS
Database Design and Implementation with SQL Server 2000 / Session 5 / 9 of 33
Các truy vấn lồng nhau
Các truy vấn lồng nhau được truy vấn trong các truy vấn con
Ví dụ
Truy vấn
lồng 2 cấp
Database Design and Implementation with SQL Server 2000 / Session 5 / 10 of 33
Sự liên quan giữa các truy
vấn con
Truy vấn con liên quan đến truy vấn cha
Truy vấn con định lại giá trị cho mọi lần lặp
trong trong truy vấn cha.
Ví dụ
Database Design and Implementation with SQL Server 2000 / Session 5 / 11 of 33
Kết hợp
Toán tử kết hợp : Kết nối hai hoặc nhiều
câu lệnh SELECT vào
một tập hợp kết quả
Toán tử Union
SELECT statement
UNION [ALL]
SELECT statement
Mệnh đề ALL không loại bỏ được sự
trùng lặp dữ liệu
Database Design and Implementation with SQL Server 2000 / Session 5 / 12 of 33
Các phép kết hợp…
Mỗi lệnh select phải có cấu trúc giống nhau
Kiểu dữ liệu trong các cột phải
tương thích với nhau và có
cùng số lượng cột
SELECT empno, ename, sal FROM emp
UNION
SELECT empno, ename, sal FROM ret_emp
Ví dụ:
Database Design and Implementation with SQL Server 2000 / Session 5 / 13 of 33
Truy vấn trên tất
cả các hàng
Ví dụ