Truy tìm dữ liệu trong 1CSDL
Data retrieval
Mục tiêu
2
!"
#$%&'
()*+
,-"$./01
02&'
(34
5!"'
Truy vấn là gì? - Query
3
#"67%68"9":;(
<
#"6 /01!"2&
*&##.
=!"*&$>$.
?$!"*&$.
@A$#"67<
,"#66B#<C#D1
#1#E#<711F"GA
HF9IJ$1K,"#6+L
3#MN1O6D#"67
Query Analyzer
4
Enterprise Manager queries
5
Cửa số xây dựng truy vấn Query Builder
6
Lệnh SELECT
7
N11PHF
SELECT results
FROM table_or_view
[WHERE search_conditions]
Q:#
G9
RSTEQ"U!"9I5
HIVI6:;(
WXSQ"/J!"9
Lệnh SELECT
8
N11"<
SELECT [ALL|DISTINCT] select_list
[ TOP n [ PERCENT ] [ WITH TIES ] ]
[INTO[[database.]owner.]table_name]
FROM[[[database.]owner.]table_name|
view_name|UDF]
[WHERE search_conditions]
[GROUP BY aggregate_free_expression]
[HAVING search_conditions]
[ORDER BY table_or_view_and_column]
[COMPUTE row_aggregate(column_name)]
[BY column_name]]
Mệnh đề select_list
9
YZL<<[
\]]]]^
_\table_name_view_name_
table_alias `'^
_\column_name_expression`
aabccolumn_aliasc
]]_column_alias [expression
]`]]]]aI'''n c
columnZalias: là tên gọi khác thay thế
cho tên cột trong bảng kết quả'
select_list
10
d%<ef$#V
SELECT * FROM customers
dg<
T##h&Ii#$"h&I
ei#I,"6Ij$$j[
ei#^,"6^*%+&$".
FROM [Order Details]
dk<
SELECT LastName + ' '+ FirstName as
'Customer Name' FROM Employees
Từ khoá [ALL|DISTINCT]
11
b*&Rbe.<l7FHF
/F#("'
&hhf<=l"6
7/0#("#$HF/
m"F'
dn</87F1)
;/)
&hhf6IS$RSTE
"$#
FROM aliases
12
6$8HF6
8V#1FC"
#9o
dn<
'T##h&I'T##&I
H'$16f
RSTET##I"$#H
WXS'"$#h&[H'"$#h&
TOP n [PERCENT] [WITH TIES]
13
Tin aiSfc<=59"8
6pHF/m"F
:M"7#$'
WhXh<$1q1%):M8
$HF/m"F)"65
(#l#$GTS&Srs
")(9"8:M
l'
dn</8k$P5:s1n$
7
$1kVT##h&IR#-#$
T##$##H6R#&
f"4:5(:s1n*-#.s
4H#$HF/m"F $ttt
Các toán tử (T-SQL operators)
14
$)J*b#$1#$#.
u+v^p
4D:"8^IvIpIuI+
$"wx*$$1#$#.
bf&TSfT
4D:"8<fTIbf&ITS
$)J5G:"8$
P$"wx
$:MH$#$y1$y
Pz5G:"8$P7F
$/
dn<ku%{v|u}pk^%~+%{vg ttt
Một số ví dụ
15
dn%
Ii#I61
RSTE
WXS61[j$Z$$/jTS61[
jH"jbf&i#L•%{
dng
Ii#I61
RSTE
WXS*61[j$Z$$/jTS
61[jH"j.bf&i#L•%{
Các toán tử so sánh (Comparison
operators)
Operator Description
= Equal to
<> Not equal to
!= Not equal to
> Greater than
!> Not greater than
< Less than
!< Not less than
>= Greater than or equal to
<= Less than or equal to
16
Toán tử miền - Range
Operators
17
"Wf"%bf&"g
$Wf''bf&:M(
"5€#$
#l2"%"g6/0t
dn%<
-#$
WXS1#Wfg{{{bf&|{{{
dng<
-#$
WXS*1#L[g{{{.bf&*1#Y[|{{{.
Toán tử liệt kê - List
Operators
18
d"hf*"%I"gI"kI•.
$hf(l"
51F%#$#l€#$
#l"%I"gI
"kI•6/0t
dn<
i"HZfI6
RSTEi"H#
WXShf*jEbjIj&j.
Ký hiệu đại diện -
Wildcards
Wildcard Mô tả
%
1 chuỗi với số ký tự tuỳ ý
_
1 ký tự đơn
[]
1 ký tự được xác định nằm
trong []
[^]
Bất kỳ ký tự nào ngoại trừ
các ký tự nằm trong [^]
19
Ký hiệu đại diện - Wildcards
Wildcard Mô tả
Phone link
‘212%’
Tất cả số phone có mã vùng
là 212
Name like
‘_an’
Tên có 3 ký tự với tận cùng
là an như Jan, Nan, hay Tan
Name like
‘[BC]one’
Tên chỉ có thể là Bone hay
Cone
Phone like
‘[^2]12%’
Tất cả các số phone với mã
vùng có 3 chữ số, chữ số
đầu tiên khác 2, 2 chữ số
còn lại phải là 12
20
Mệnh đề ORDER BY
21
?14DHF/m"F
N11<
[ORDER BY [table.|view.]column |
select_list_no | expression [ASC|DESC]]
dn<
SELECT customername, city, region
from customers
where country = 'USA'
order by city, region
Hàm tập hợp - Aggregate functions
22
Đượ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.
23
Hàm tập hợp - Aggregate functions
Hàm tập hợp - Aggregate functions
24
dn%<
jb#i#j[
bd‚*i#.RSTE
dng<
jf$'T-fV11#j[Tef
*fV11#$.RSTEfV11#
Chuyển đổi kiểu dữ liệu
Data type conversions
25
d3/"!"9/<
9"6!"2P6P/
"Un/0(/""'
$!"/$A"
/""63<
%'"639l*h1$#$.
g'"63:;*1
$#$.
k'7"63*f$$#$.