42
VI. Cú pháp lnh SELECT ca SQL
a) Lnh SELECT là thành phn c bn ca ngôn ng
d liu SQL.
b) Lnh SELECTc dùng chn hoc truy xut các mu
tin (Records) hoc các vùng tin (Fields) t các Tables ca
CSDL.
c) Cú pháp tng quát ca câu lnh SQL:
SELECT <Danh sách các Fields>
FROM <Danh sách các Tables>
WHERE <Biu thc kt ni Tables>
<Biu thc iu kin lc>
[GROUP BY <Tiêu chun phân nhóm>]
[HAVING <Tiêu chun chn nhóm>]
[ORDER BY <Tiêu chun sp xp>]
43
V.1. SELECT
• Lit kê các Fields cn truy xut.
• Mun ly ht các Fields ca mt Table, ta dùng
du * . Thí d : Select * From
• Mun ly tun t tng Field thì các Fields phi
phân cách vi nhau bi du phy.
Thí d:
SELECT
TblDanh_sach_ban_doc.MaBD,
TblDanh_muc_thanh_phan.Tenthanhphan,
TblDanh_sach_ban_doc.TenBD,
FROM
44
VI.2. From
– Dùng khai báo hoc cung cp d liu ngun
(là các Tables) cho câu lnh truy vn.
– Cú pháp:
FROM <Tên Table [[As] <Tên thay th>]
– Có th dùng tên thay th hoc không (tên thay
thc dùng khi tên Table quá dài và phi s
dng nhiu Tables).
Thí d:
SELECT * From TblDanh_muc_sach As Sach;
hoc:
SELECT * From TblDanh_muc_sach;
45
Dùng theo cú pháp ca Access:
Select *
From BangA
Inner Join BangB
On BangA.Ma = BangB.Ma
Thí d:
SELECT TblDanh_muc_sach.Tensach,TblTac_gia.TenTG
FROM TblDanh_muc_sach INNER JOIN TblTac_gia
ON TblDanh_muc_sach.Matacgia = TblTac_gia.Matacgia;
46
Dùng bí danh thay th tên Table:
Select A.Manv, A.Holot+’ ‘+A.Ten As Hoten,
B.Lcb, B.Phucap
From TblHosonv As A Inner Join
TblHosoluong As B On A.Manv = B.Manv
Where A.MaBP =‘KTTV’;
47
VI.3. WHERE
• S dng kt ni các Tables (theo ngôn ng
SQL chun)
• S dng nh mt mnh lc (Filter) kt
xut nhng Records tho!u kin tìm kim
• D"ng tng quát:
WHERE <Join Condition>
<Filter Condition>
Thí d 1:
Select *
From TblTacgia
Where TblTacgia.Matp =‘TP01’;
48
SELECT TblTac_gia.TenTG,
TblDanh_muc_sach.Tensach
FROM TblTac_gia, TblDanh_muc_sach
WHERE TblTac_gia.Matacgia =
TblDanh_muc_sach.Matacgia And
TblTac_gia.MaTP ='TP11';
(SQL chun)
SELECT TblTac_gia.TenTG, TblDanh_muc_sach.Tensach
FROM TblTac_gia INNER JOIN TblDanh_muc_sach
ON TblTac_gia.Masach = TblDanh_muc_sach.Masach
WHERE tblTac_gia.MaTP = ‘TP11’;
(MS.Access)
49
VI.4. ORDER BY
Dùng sp xp các Records theo mt tr#t t xác $nh.
Giá tr$ mc nhiên là tr#t t%&'((t A Z , 0 9)
Thí d:
Lit kê danh sách nhân viên theo th t mã b phn
Select * From TblHosonhanvien Order By Mabp
Lit kê danh mc sách Tin hc theo th t ca tên các nhà xut bn
Select A.Masach, A.Tensach, B.TenNXB
From TblDanhmucsach As A Inner Join TblNhaxuatban As B
On A.Manxb = B.Manxb
Order By B.Tennxb;
50
VI.5. Group By và Having
Dùng nhóm các Records có cùng giá tr$ t"i mt Field nào
ó.
) lc các Records * c nhóm (Group), ta phi dùng
Having <Filter Condition>
Thí d: Lit kê tên các mt hàng mì gói ã xut bán
Select A.Mahang, B.Tenhang
From TblHoadon As A Inner Join TblHanghoa As B
On A.Mahang = B.Mahang
Group By A.Mahang
Having A.Mahang = “MIGOI*”;