Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu - Pdf 12

HCSDL
1
NN
NN
CHƯƠNG
CHƯƠNG
2
2
SQL
(Structured Query Language)
HCSDL 2
NN
NN
Gi
Gi


i thi
i thi


u chung
u chung
 Là ngôn ngữ chuẩn cho các CSDL quan hệ
 Chuẩn ANSI SQL được công bố vào năm 1989,
1992 và 1999
 Đặc điểm của SQL:
 Ngôn ngữ tựa tiếng Anh
 Ngôn ngữ phi thủ tục
 Gồm 3 nhóm lệnh:
 DDL (Data Definition Language)

DML
DML
(
(
D
D
ata
ata
M
M
anipulation
anipulation
L
L
anguage)
anguage)
 DML là ngôn ngữ thao tác dữ liệu
 Gồm các lệnh:
 SELECT
 INSERT, UPDATE, DELETE, TRUNCATE
4
HCSDL 5
NN
NN
DCL
DCL
(
(
D
D

u (Data query)
u (Data query)
 Cú pháp chung của lệnh SELECT
SELECT
select_list
[ INTO
new_table
]
FROM
table_source
[WHERE
search_condition
]
[GROUP BY
group_by_expression
[ HAVING
search_condition
]]
[ORDER BY
order_expression
[ ASC | DESC ]]
6
HCSDL 7
NN
NN
Câu l
Câu l


nh truy v

Chi
ế
ế
n lư
n lư


c chung
c chung
để
để

đ
đ
á
á
nh gi
nh gi
á
á
câu truy
câu truy
v
v


n đơn gi
n đơn gi



SELECT [ ALL | DISTINCT ][ TOP
n
[ PERCENT ]
[ WITH TIES ] ] < select_list >
<select_list > ::=
{*
|{
table_name
|
view_name
|
table_alias
}.*
| {
column_name
|
expression
}
[[ AS ]
column_alias
]
|
column_alias
=
expression
} [ ,
n
]
9
HCSDL 10



SELECT
SELECT
 TOP
n
[PERCENT]: chỉ có n hàng đầu tiên hay
n% của các hàng của bảng kết quả được xuất .
 WITH TIES: cho phép 1 số hàng được thêm vào
bảng kết quả gốc nếu các hàng này có cùng giá
trị trong cột ORDER BY với hàng cuối cùng của n
hàng đầu tiên được xác định.
 Ví dụ: liệt kê 3 hoá đơn có cước phí cao nhất
SELECT top 3 with ties OrderID, Freight
FROM Orders
Order by Freight DESC
Nếu hàng thứ tư có cùng cước phí (freight) với
hàng thứ ba trong bảng kết quả thì sao???
11
HCSDL 12
NN
NN
M
M


nh đ
nh đ



à
à
m
m
Ý ngh
Ý ngh
ĩ
ĩ
a
a
SUM
SUM
T
T
í
í
nh t
nh t


ng c
ng c
á
á
c s
c s


MIN
MIN



v
v


gi
gi
á
á
tr
tr


l
l


n nh
n nh


t
t
AVG
AVG
T
T
í
í



(not null)
(not null)
13
Được dùng để tổng kết các giá trị của 1 cột hay 1
nhóm cột bên trong 1 bảng và cho kết quả là 1 giá trị
đơn
HCSDL 14
NN
NN
V
V
í
í
d
d


c
c
á
á
c h
c h
à
à
m g
m g


 Cú pháp: WHERE <search_condition>
 Ví dụ:
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = 'WA'
 Dùng like , is null, is not null, between and ,
!=, >, <….
15
HCSDL 16
NN
NN
M
M


nh đ
nh đ


ORDER BY
ORDER BY
 Xác định thứ tự của bộ kết quả
 Cú pháp
[ ORDER BY {
order_by_expression
[ ASC |
DESC ] } [ ,
n
] ]
ASC (ascending) : xếp theo thứ tự tăng

bảng kết quả:
 GROUP BY: tổng hợp bảng kết quả theo
nhóm bằng cách dùng các hàm gộp
 COMPUTE và COMPUTE BY: mệnh đề
COMPUTE trong lệnh SELECT được dùng để
phát ra các hàng tổng hợp bằng cách dùng
hàm gộp. Mệnh đề COMPUTE BY được dùng
để tổng hợp thêm các hàng kết quả theo cột
17
HCSDL 18
NN
NN
M
M


nh đ
nh đ


GROUP BY
GROUP BY
 Cú pháp:
[ GROUP BY [ ALL ]
group_by_expression
[
,
n
]
 ALL: bảng kết quả sẽ chứa tất cả các nhóm kể cả

19
HCSDL 20
NN
NN
V
V
í
í
d
d


2
2
 SELECT Type, Advance = SUM (Advance)
FROM Titles
WHERE Type IN ('business', 'mod_cook', 'trad_cook')
GROUP BY ALL Type
Type Advance

business 25125.0000
mod_cook 15000.0000
popular_comp NULL
psychology NULL
trad_cook 19000.0000
UNDECIDED NULL
(6 row(s) affected)
20
HCSDL 21
NN

ng WHERE v
ng WHERE v
à
à
HAVING
HAVING
 Mệnh đề HAVING giống như mệnh đề WHERE
nhưng chỉ áp dụng cho cả nhóm trong khi mệnh
đề WHERE áp dụng cho từng hàng.
 Một truy vấn có thể chứa cả mệnh đề WHERE và
mệnh đề HAVING.
 Mệnh đề WHERE được áp dụng trước cho các
hàng trong bảng được truy vấn. Chỉ những hàng
nào thoả mãn điều kiện của mệnh đề WHERE mới
được nhóm dữ liệu.
 Sau đómệnh đề HAVING sẽ được áp dụng cho các
nhóm. Chỉ những nhóm thỏa mãn điều kiện
HAVING mới được xuất ra bảng kết quả.
22
HCSDL 23
NN
NN
V
V
í
í
d
d



M


nh đ
nh đ


JOIN (k
JOIN (k
ế
ế
t n
t n


i c
i c
á
á
c b
c b


ng)
ng)
 Mệnh đề join dùng để khôi phục dữ liệu từ nhiều
hơn 1 bảng
 Cú pháp
SELECT column_name [,n ]
FROM table_name table_alias


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status