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*”; . * 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 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