Slide truy vấn nâng cao
Trang 1Chương 5
Truy vấn nâng cao
Trang 2 Gán và huỷ bỏ các quyền hạn
Trang 3Database Design and Implementation with SQL Server 2000 / Session 5 / 3 of 33
Trang 4Khởi tạo
Đưa ra một câu hỏi cần quan tâm
Trả lời câu hỏi –
Xử lý bởi
Trang 5Database 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
Trang 6Truy vấn trên nhiều bảng
Trang 7Database Design and Implementation with SQL Server 2000 / Session 5 / 7 of 33
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
Trang 8Sử dụng EXISTS và NOT
EXISTS
Trang 9Database Design and Implementation with SQL Server 2000 / Session 5 / 9 of 33
Trang 10Sự 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ụ
Trang 11Database 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
Trang 12Cá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ụ:
Trang 13Database 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ụ
Trang 14Dùng lệnh Select lựa chọn
các cột
Ví dụ
Trang 15Database Design and Implementation with SQL Server 2000 / Session 5 / 15 of 33
Sử dụng mệnh đề WHERE
với lệnh Select
Ví dụ
Mệnh đề WHERE trong truy vấn dùng để lọc bớt số lượng
hàng hiển thị trong truy vấn dựa trên điều kiện đã chỉ ra.
C ú pháp : SELECT <Column Name> FROM <table
Name> WHERE <Condition>
Trang 16C ác toán tử quan hệ và
mệnh đề WHERE
Chúng ta có thể sử dụng các loại điều kiện tìm kiếm khác nhau và các toán tử so sánh trong mệnh đề WHERE
Bảng dưới đây liệt kê danh sách các toán tử so sánh
Trang 17Database Design and Implementation with SQL Server 2000 / Session 5 / 17 of 33
Các ký tự đại diện
K ý tự đại
‘_’ Một ký tự đơn Select Branch_Code From Branch
Where Branch_Code Like ‘L ’
% Một chuỗi có độ dài bất kỳ Select Route_Code From
FlightSchedule Where Route_Code Like ‘AMS-%’
[] Một ký tự đơn thuộc khoảng nằm
trong ngoặc
Select Airbusno From FlightSchedule Where Airbusno Like ‘AB0[1-5]’
[^] Bất kỳ một ký tự nào không thuộc
trong khoảng nằm trong ngoặc
Select Airbusno From FlightSchedule Where Airbusno Like ‘AB0[^1-5]’
Trang 18Sử dụng các ký tự đại diện
với toán tử LIKE
Ví dụ
Trang 19Database Design and Implementation with SQL Server 2000 / Session 5 / 19 of 33
Sử dụng toán tử logic phủ định (Not)
Ví dụ
Trang 20Sử dụng toán tử logic AND
Ví dụ
Trang 21Database Design and Implementation with SQL Server 2000 / Session 5 / 21 of 33
Sử dụng toán tử logic OR
Ví dụ
Trang 22Mệnh đề ORDER BY
Trang 23Database Design and Implementation with SQL Server 2000 / Session 5 / 23 of 33
Hiển thị dữ liệu được sắp xếp với lệnh SELECT và mệnh đề
ORDER BY
Ví dụ
Trang 24Mệnh đề DISTINCT
Trang 25Database Design and Implementation with SQL Server 2000 / Session 5 / 25 of 33
Sử dụng mệnh đề
DISTINCT
Mỗi kiểu (type)
được trả về là duy nhất
Mỗi kiểu (type)
được trả về là duy nhất
Ví dụ
Trang 26Mệnh đề COMPUTE
và xuất hiện trên các hàng thêm vào, là một tập hợp kết quả của các hàm tập hợp.
Giá trị tổng kết xuất hiện như là một hàng bổ sung Các hàng chi tiết và hàng tổng kết có thể nhìn thấy trong cùng một kết quả của câu truy vấn.
Cú pháp: COMPUTE <Expression1>, <Expression2>
Trang 27Database Design and Implementation with SQL Server 2000 / Session 5 / 27 of 33
Sử dụng COMPUTE
Ví dụ
Trang 29Database Design and Implementation with SQL Server 2000 / Session 5 / 29 of 33
Trang 30Sử dụng SELECT INTO
Bảng mới cũng có nội dung giống bảng publishers.
Trang 31Database Design and Implementation with SQL Server 2000 / Session 5 / 31 of 33
Tóm tắt
Một truy vấn là một câu hỏi được viết bằng ngôn ngữ SQL
để lấy dữ liệu từ một bảng.
Câu lệnh SELECT được sử dụng để viết truy vấn
Có ba cách để kết nối dữ liệu từ nhiều bảng:
C ác phép kết hợp ( Unions) - K ết nối các hàng từ nhiều bảng
Trang 32Tóm tắt (tiếp theo)…
chúng ta có thể dùng để kiểm tra các hàng trong truy vấn con
vấn tương quan
truy vấn con gọi các truy vấn con khác Các truy vấn này gọi
là các truy vấn tổ hợp
vấn cha, nó được gọi là truy vấn tương quan.
nhiều bảng dữ liệu sử dụng toán tử UNION của SQL
Trang 33Database Design and Implementation with SQL Server 2000 / Session 5 / 33 of 33
Tóm tắt (tiếp theo)…
Mệnh đề COMPUTE sinh ra các giá trị tổng kết và xuất
hiện như các bản ghi bổ sung trong tập hợp kết quả
của các hàm tập họp.
COMPUTE đưa ra tập hợp kết quả của các hàm tập
họp trong khi COMPUTE BY đưa ra dữ liệu và tổng
theo nhóm COMPUTE BY phải bao gồm mệnh đề
must ORDER BY
Cấu trúc SELECT INTO giúp chúng ta tạo lập một
bảng mới với dữ liệu của một bảng đã có Nó thực
hiện truy vấn dựa trên điều kiện và tạo một bảng mới
với kết quả của truy vấn đó.