Tải bản đầy đủ (.pdf) (33 trang)

bài giảng truy vấn cơ sở dữ liệu Session 05

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.68 MB, 33 trang )

Truy vấn nâng cao

Chương 5


Ôn tập
Ôn lại về kiểu người dùng và quản lý bảo mật:
n Quản lý đăng nhập
n Quản lý người dùng
n Các thủ tục hệ thống để đăng nhập và quản lý
người dùng
n Gán và huỷ bỏ các quyền hạn

Database Design and Implementation with SQL Server 2000 / Session 5 / 2 of 33


Mục tiêu
n
n
n
n

n
n

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 / 3 of 33


Truy vấn là gì?

Truy
vấn
Khởi tạo

Người sử
dụng

Đưa ra một câu
hỏi cần quan tâm

Dữ liệu trong
các bảng

Xử lý bởi

Trả lời câu hỏi –
Trả về tập hợp kết
quả

SQL
Server


Database Design and Implementation with SQL Server 2000 / Session 5 / 4 of 33


Câu lệnh SELECT trong
truy vấn
n

Truy vấn trên nhiều hàng và cột

n

Có thể truy vấn trên nhiều bảng hoặc

n

n

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 / 5 of 33


Truy vấn trên nhiều bảng

Database Design and Implementation with SQL Server 2000 / Session 5 / 6 of 33



Các truy vấn con
Truy vấn con : là một câu lệnh SELECT lồng
trong câu lệnh SELECT khác

Truy vấn cha

Select <Column Name> From Table
Toán tử
WHERE <Column Name> =

Truy vấn
con

Select <Column Name> From
<Table> WHERE <Column> =
<Criteria >
Database Design and Implementation with SQL Server 2000 / Session 5 / 7 of 33


Sử dụng EXISTS và NOT
EXISTS

Database Design and Implementation with SQL Server 2000 / Session 5 / 8 of 33


Các truy vấn lồng nhau
n

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 / 9 of 33


Sự liên quan giữa các truy
vấn con
w Truy vấn con liên quan đến truy vấn cha
w 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 / 10 of 33


Kết hợp
n

n

n

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 / 11 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
w 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
Ví dụ:
SELECT empno, ename, sal FROM emp
UNION
SELECT empno, ename, sal FROM ret_emp

Database Design and Implementation with SQL Server 2000 / Session 5 / 12 of 33


Truy vấn trên tất
cả các hàng
Ví dụ

Database Design and Implementation with SQL Server 2000 / Session 5 / 13 of 33


Dùng lệnh Select lựa chọn
các cột
Ví dụ


Database Design and Implementation with SQL Server 2000 / Session 5 / 14 of 33


Sử dụng mệnh đề WHERE
với lệnh Select
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 Name> WHERE <Condition>

Ví dụ

Database Design and Implementation with SQL Server 2000 / Session 5 / 15 of 33


Cá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
có thể sử dụng trong truy vấn.
Toán tử
=
>
<
>=
<=
<>

!

Ý nghĩa
Bằng
Lớn hơn
Nhỏ hơn
Lớn hơn hoặc bằng
Nhỏ hơn hoặc bằng
Không bằng
Phủ định
Database Design and Implementation with SQL Server 2000 / Session 5 / 16 of 33


Các ký tự đại diện
Diễn giải

Ví dụ

‘_’

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]’

Ký tự đại
diện

Database Design and Implementation with SQL Server 2000 / Session 5 / 17 of 33


Sử dụng các ký tự đại diện
với toán tử LIKE
Ví dụ


Database Design and Implementation with SQL Server 2000 / Session 5 / 18 of 33


Sử dụng toán tử
logic phủ định (Not)
Ví dụ

Database Design and Implementation with SQL Server 2000 / Session 5 / 19 of 33


Sử dụng toán tử logic AND
Ví dụ

Database Design and Implementation with SQL Server 2000 / Session 5 / 20 of 33


Sử dụng toán tử logic OR
Ví dụ

Database Design and Implementation with SQL Server 2000 / Session 5 / 21 of 33


Mệnh đề ORDER BY

Database Design and Implementation with SQL Server 2000 / Session 5 / 22 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ụ

Database Design and Implementation with SQL Server 2000 / Session 5 / 23 of 33


Mệnh đề DISTINCT

Database Design and Implementation with SQL Server 2000 / Session 5 / 24 of 33


Sử dụng mệnh đề
DISTINCT
Ví dụ

Mỗi kiểu (type)
được trả về là duy
nhất

Database Design and Implementation with SQL Server 2000 / Session 5 / 25 of 33


×