Truy vấn là gì?Truy vấn Dữ liệu trong các bả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 – Xử lý bởi... Câu lệnh SELECT trong truy vấn Truy v ấn trên nhiều hàng và cộ
Trang 1Chương 5
Truy vấn nâng cao
Trang 2 Gán và huỷ bỏ các quyền hạn
Trang 4Truy vấn là gì?
Truy
vấn
Dữ liệu trong các bả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 –
Xử lý bởi
Trang 5Câ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.
Trang 6Truy vấn trên nhiều bảng
Trang 7Select <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 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 11Kết hợp
câu lệnh SELECT vào một tập hợp kết quả
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 13Truy 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 15Sử 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à
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 17Cá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 19Sử dụng toán tử logic phủ định (Not)
Ví dụ
Trang 20Sử dụng toán tử logic AND
Ví dụ
Trang 21Sử dụng toán tử logic OR
Ví dụ
Trang 22Mệnh đề ORDER BY
Trang 23Hiể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 25Sử 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
M ệnh đề COMPUTE sinh ra những giá trị tổng kết
rị 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.
<Expression2>
Trang 27Sử dụng COMPUTE
Ví dụ
Trang 30Sử dụng SELECT INTO
Ví dụ dưới đây tạo lập một bảng mới gọi là publishers2
dựa trên bảng đã có publishers
Bảng mới cũng có nội dung giống bảng publishers.
Trang 31Tó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 dữ liệu
C ác truy vấn con – Truy v ấn con là truy v ấn nằm trong truy vấn khác.
C ác phép kết nối ( Joins) – C ác phép kết nối kết hợp các cột
từ nhiều bảng
Đặc điểm của truy vấn con cho phép chúng ta sử dụng kết quả của một truy vấn như là một phần của truy vấn khác.
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
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.
bảng dữ liệu sử dụng toán tử UNION của SQL
kết quả của câu lệnh SELECT Nếu từ khoá DISTINCT không
Trang 33Tó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 đó.