KHOA CÔNG NGH  THÔNG TIN

ươ ươCh Ch Ữ Ệ Ữ Ệ

Ữ Ữ

ng 3 ng 3 NGÔN NG  THAO TÁC D  LI U NGÔN NG  THAO TÁC D  LI U

LOGO

I. CÂU L NH

SELECT

ấ ữ ệ ừ ộ ể ề ụ : 1.  ng d ng ệ Câu l nh Select dùng đ  truy xu t d  li u t m t hay nhi u

ả b ng.

ệ ộ ề ệ

ộ ế 2. Cú pháp: SELECT [ALL | DISTINCT][TOP n] ộ ả [INTO tên_b ng_m i] FROM  ả ề [WHERE   đi u_ki n] [GROUP BY  ds c t phân nhóm] [HAVING đi u_ki n nhóm] ắ [ORDER BY  c t_s p_x p][DESC | ASC]

ộ ừ ể ữ ệ ồ ả Hi n th  danh sách c t t các b ng d  li u g m các dong tin

ỏ ệ ị ề th a mãn đi u ki n.

2. Danh sách c t trong câu l nh SELECT

ở ấ ứ ể ộ ộ ộ Danh sách c t: là dãy các c t/ bi u th c c t cách nhau b i d u

ph y.ẩ

Ví d :ụ

ế ế ộ Tham chi u đ n c t  ủ ả KHÓA c a b ng  DMLOP

ể ị ộ ố ộ m tộ  b ngả

ộ t c  các c t trong m tộ  b ngả

ị ộ ố ộ ể ệ ả nhi uề  b ng quan h

1. Hi n th  m t s  c t trong  SELECT MaLop,TenLop,NamNhapHoc,Khoahoc FROM DMLOP ị ấ ả ể 2. Hi n th  t SELECT * FROM DMLOP 3. Hi n th  m t s  c t trong  SELECT MaLop, TenLop, DMLOP.MaKhoa,TenKhoa FROM DMLOP, DMKHOA WHERE DMLOP.MaKhoa = DMKHOA.MaKhoa

ệ ừ ế ỏ ề Khi th c hi n l nh s  ki m tra đi u ki n t ng dòng, n u th a mãn

ể ệ ệ ự ả ị ế thì hi n th  k t qu . ẽ ể

ớ ớ ọ

ề ộ 4. Thay đ i tiêu đ  c t SELECT MaLop AS 'Mã l p', TenLop AS 'Tên l p’, Khoahoc AS 'Khóa h c’. FROM DMLOP Ho cặ ớ ớ SELECT 'Mã l p'= MaLop, 'Tên l p‘=TenLop,'Khóa h c‘=Khoahoc FROM DMLOP ứ ộ ể  5. H ng và Bi u th c c t SELECT TenMonhoc, Sodvht*15 AS ‘S  tiêt’ FROM DMMOHOC

ọ ị ớ ữ ể Ví d : Hi n th  Mã sinh viên, H , Tên, Gi i tính 0: N ; 1: Nam; Null

ụ không có.

ế ế

ả ả

ị ị

 C u trúc r  nhánh CASE ẽ ể CASE  WHEN  THEN  [WHEN  THEN  … ELSE  END

ớ i tính’

SELECT Masv, Ho+Ten, CASE Gioitinh WHEN 1 THEN 'Nam’ WHEN  0 THEN  N'N 'ữ ELSE N‘Không có’ END  AS ‘Gi FROM SINHVIEN

ụ ể ạ ồ ị ọ Ví d : Hi n th  danh sách g m H  Tên, Ngày sinh d ng ‘dd/mm/yyyy’

ử ụ

S  d ng hàm Convert ể ể ể

ể CONVERT(ki u_d _li u, bi u_th c [,ki u_chuy n_đ i]) ị ủ ữ ệ ổ ổ ữ ệ ứ ể ứ ể ể ượ Hàm có ch c năng chuy n đ i giá tr  c a bi u th c sang ki u d  li u đ c

ỉ ứ ị ch  đ nh.

ạ ị ị ể ữ ổ  là m t ộ giá tr  sị ố nh m qui đ nh đ nh d ng d   ằ

ể ể ượ ư ệ li u hi n th  và đ

ể ị

ị ặ Tham s  <ố ki u_chuy n_đ i> ị ị c qui đ nh nh  sau: ạ ữ ệ Đ nh d ng d  li u hi n th ị M c đ nh

 Ki u ngày ể 0     (100) 101  (1) mm/dd/yyyy (mm/dd/yy) 102  (2) yyyy­mm­dd (yy­mm­dd) 103  (3) dd/mm/yyyy (dd/mm/yy)

SELECT HoTen,CONVERT(char(10),NgaySinh,101) AS 'Ngày Sinh'

FROM SINHVIEN

ụ ế ổ ệ ả ố Ví d : Cho bi t t ng s  sinh viên hi n có  trong b ng SINHVIEN

ử ụ  S  d ng Hàm Sum, Count, AVG

Select Count(MaSV) From SINHVIEN

ấ ả ế ng dòng trong k t qu  truy v n ớ ạ ố ượ i h n s  l

ầ ẫ ấ

ẫ ấ

6. Gi     TOP n: truy v n n m u tin đ u tiên ầ     TOP N%: Truy v n n% m u tin đ u tiên. ạ ỏ ữ ị DISTINT: Lo i b  nh ng giá tr  trùng nhau trong danh sách.

Ví d :ụ SELECT TOP 5 Ho,Ten,Ngaysinh FROM SINHVIEN

ể ớ ị

ọ Ví du: Hi n th  các Khoa có l p h c SELECT DISTINCT MaKhoa FROM DMLOP

2. Đi u ki n trong câu l nh SELECT

ộ ằ ệ ệ ừ khóa WHERE, là m t WHERE <Đi u ki n>: Đi u ki n n m sau t

ề ứ

ề ệ

ộ ậ ử

ề ồ ể bi u th c Logic g m các phép toán sau: ử ế ợ 1. Các toán t  k t h p đi u ki n:AND, OR ử  so sánh: >,<,>=,<=,<>,!<,!>, = 2. Các toán t ữ ệ ớ ạ ể ủ i h n c a d  li u: BETWEEN/NOT BETWEEN 3. Ki m tra gi ợ ợ ộ ậ Toán t  thu c t p h p, không thu c t p h p:  4. ấ IN (dãy giá tr  | truy v n Select|…), NOT IN ()

ạ ể

ự ạ ệ đ i di n>

ạ ạ ự

ự ự ư ỉ ị ị ữ ệ 1. Ki m tra khuôn d ng d  li u:  LIKE /NOT LIKE 

[dãy ký t [ABC]

ự ự ơ ự ỉ ị [^dãy ký t ]: ký t ằ  đ n KHÔNG n m trong dãy ký t ch  đ nh

ủ ể ụ  Ví d : Hi n th  danh sách g m MaSV, HoTen, Malop, c a  ồ

ớ ữ

ị nh ng sinh viên l p ‘CT11’ SELECT  MaSV, Ho, Ten, MaLop  FROM DMLOP WHERE MaLop=‘CT11’

ủ ụ ể ị  Ví d : Hi n th  danh sách g m MaSV, HoTen, Malop c a  ồ

ữ ớ nh ng sinh viên l p ‘CT11’, CT12’

SELECT  MaSV, Ho, Ten, MaLop  FROM DMLOP WHERE MaLop IN (‘CT11’, ‘CT12’ )

SELECT  MaSV, Ho, Ten, MaLop  FROM DMLOP WHERE  MaLop=‘CT11’ OR MaLop=‘CT12’

SELECT Ho,Ten FROM SINHVIEN WHERE Ho LIKE 'Lê%‘

ụ ọ ể ị Ví d : Hi n th  danh sách sinh viên có h  là Lê

ư ể ẫ ộ ỏ ị V n câu h i đó nh ng hi n th  thêm c t TenLop

Bài t pậ :

ữ ồ Danh sách sinh viên g m: MaSV, Ho, Ten, GioiTinh (Nam,N ),

Ngày sinh (dd/mm/yyyy)

ằ ế ữ ọ ắ ầ t nh ng sinh viên có h  b t đ u b ng N,L,T

ị ể ữ ớ

ị ể ở ớ

ổ ấ ị

ị ố ượ ọ ớ

ướ ữ ị c năm 1995

ể ị

ộ ỏ ể ẫ ị  Cho bi  Hi n th  danh sách sinh viên n  l p CT11 và CT12.  Hi n th  danh sách sinh viên không   l p CT11.  Hi n th  danh sách 5 sinh viên có tu i cao nh t. ể  Hi n th  s  l ể ng sinh viên h c l p CT11.  Hi n th  danh sách sinh viên n  có sinh tr ể  Hi n th  danh sách sinh viên có DiemMH <5  V n câu h i trên nh ng hi n th  thêm c t Khoahoc ư

ữ ệ

3. Th ng kê d  li u v i GROUP BY

ộ ổ ể ư ế ố m t nhóm nh : đ m s  sinh viên m i ỗ l pớ ,

ủ ỗ sinh viên, …

ộ ố ộ

ủ ị

ứ ế ố ị  Dùng đ  tính t ng theo  Tính ĐTB c a m i   M t s  hàm g p ứ ị ể 1. SUM([ALL | DISTINCT] bi u_th c): Tính t ng các giá tr . ứ ể 2. AVG([ALL | DISTINCT] bi u_th c):  Tính trung bình c a các giá tr ể 3. COUNT([ALL | DISTINCT] bi u_th c): Đ m s  các giá tr  trong

ứ ể bi u th c.

ượ ố ọ

ể ể ỏ ế 4. COUNT(*):  Đ m s  các dòng đ c ch n. ị ớ ứ ấ 5. MAX(bi u_th c): Tính giá tr  l n nh t ấ ị ứ 6. MIN(bi u_th c):  Tính giá tr  nh  nh t

ố ượ ỗ ớ ng ủ sinh viên c a m i l p

ử ụ  Ví d : Đ m s  l ụ ế ộ ả    S  d ng m t b ng SINHVIEN

ổ Vùng phân nhóm là Malop, Vùng tính t ng là MASV

Select MaLop, Count(MaSV) AS Siso From SINHVIEN Group by MaLop

ể ị ở ả Hi n th  thêm vùng TenLop b ng DMLOP.

SELECT DMLOP.MaLop,TenLop,COUNT(MaSV) AS Siso FROM DMLOP, SINHVIEN WHERE DMLOP.MaLop=SINHVIEN.MaLop GROUP BY DMLOP.MaLop,TenLop

ừ ề ệ

khóa HAVING <Đi u ki n nhóm> ữ ổ ố ớ  Thêm t ư ụ Ví d : Đ a ra danh sách nh ng l p có t ng s  sinh viên >10

SELECT DMLOP.MaLop,TenLop,COUNT(MaSV) AS Siso FROM DMLOP, SINHVIEN WHERE DMLOP.MaLop=SINHVIEN.MaLop GROUP BY DMLOP.MaLop,TenLop  HAVING COUNT(Masv)>10

ừ ụ ọ ỳ  Ví d : Tính Đi m Trung bình chung h c k  theo t ng sinh viên. Xu t d   ấ ữ

ệ ả ể ớ li u ra b ng m i có tên DIEMTBC

ử ụ

ứ ể ả S  d ng b ng DIEMTHI Vùng phân nhóm là: MaSV,Hocky  ổ Bi u th c tính t ng là

(cid:0) (DiemMH*Sodvht)/(cid:0) (Sodvht)

SELECT  MaSV, Hocky,Sum(DiemMH*Sodvht)/Sum(Sodvht) AS DTBC INTO DIEMTBC FROM DIEMTHI,DMMON WHERE DMMON.MaMon=DIEMTHI.MaMonhoc GROUP BY Masv,H ckyọ

ấ t nh ng sinh viên có ít nh t 2 môn h c có DiemMH <5

ế

c h t: L c ra nh ng sinh viên có DiemMH các môn <5

 Ví d : Cho bi ế ụ  Tr ọ ướ ế

ọ ủ ừ

Đ m s  môn h c c a t ng sinh viên v i đi u ki n s  môn h c >=2

ử ụ ử ự ử ụ

 S  d ng B ng DIEMTHI ả  S  d ng T  khóa WHERE  ừ  S  d ng GROUP BY có HAVING

Select MaSV, Count(MaMonhoc) AS Soluong From DIEMTHI Where DTB<5 Group By MaSV Having Count(MaMonhoc) >=2

Thêm vùng: Ho, Ten, Lop.

ừ Tính Đi m trung bình chung c a các h c k  cho t ng sinh viên.

ữ ỳ ị ọ ủ  Bài t pậ 1. 2. Cho bi

ế thi u đi m trên 25 (sinh viên i l p)

ở ạ ớ ữ ọ i l p).

ữ ủ ớ ữ ủ ừ ế ế

ể ọ ủ ố ơ ế ổ t nh ng sinh viên có t ng s  đ n v  h c trình c a các môn  ở ạ ớ ể  l ế ể t nh ng sinh viên có Đi m TK các môn h c <3 (  l ố ố ế ớ ọ ạ ấ ả ổ 3. Cho bi 4. Đ m s  sinh viên Nam, N  c a l p CT11 5. Đ m s  sinh viên Nam, N  c a t ng l p. 6. Cho bi t giáo viên d y ít nh t 2 môn h c. B  sung thêm b ng

GIAOVIEN(MaGV, HoTen, Dienthoai, MonGDay)

ế ạ ấ ọ 7. Cho bi

ữ ế ấ ạ

ủ ừ ổ ố ọ t giáo viên d y ít nh t 2 môn h c ‘001’ và ‘002’. (L c ra  ố ố ộ nh ng giáo viên d y ít nh t m t môn ‘001 và ‘002’, Đ m s  s   ớ môn d y c a t ng giáo viên v i đk t ng s  môn  d y =2)

ọ ạ ố t MaSV h c t

ọ ấ ả ổ ố ượ ố ượ ổ ọ t c  các môn h c. (Đ m s  môn h c  ằ ng ế ng b ng t ng s  l

c a t ng sinh viên, có t ng s  l ọ c a các môn h c)

ế ọ ấ ạ ế 8. Cho bi ủ ừ ủ 9. Cho bi t Tên sinh viên có ít nh t 2 môn h c có DiemMH <5

Ứ Ạ

Ấ 4. CÁC C U TRÚC PH C T P  ề ệ (G m nhi u l nh Select)

ồ 4.1 S  d ng c u trúc l ng nhau: (truy v n con) ộ

ử ụ ầ

ấ ị ủ

ự ộ

ư

Khi c n th c hi n phép ki m tra giá tr  c a m t bi u th c có thu c hay  ể ị ủ không thu c trong t p h p các giá tr  c a truy v n con hay không, ta có th   ử ụ s  d ng toán t

IN (NOT IN) nh  sau:

SELECT … WHERE  [NOT] IN (Câu l nh Select_con)

ế ớ t Tên l p có sinh viên tên Hoa Ví d :ụ Cho bi

Select TenLop From DMLOP Where MaLop IN (

Select Malop From SINHVIEN Where Ten=N’Hoa’)

ụ ế ế ể ọ Ví d  2: Cho bi t Tên Môn h c không có sinh viên thi u đi m MH

Select TenMonhoc  From DMMONHOC Where MaMonhoc NOT IN

( Select Mamonhoc

From DIEMTHI  Where DiemMH<5)

ề ơ ị ượ 4.2 L Trong tr

ộ ng t ườ ả ợ ừ ướ  tr ng t

ấ ng h p t p h p các giá tr  trong truy v n con nhi u h n  ấ c (Truy v n con đó)  ố ơ ọ ớ

m t thì ta ph i thêm l Ví d : Cho bi ế ụ ố ơ ằ ị ọ ủ ặ ơ

Exists, All, Any ợ ậ ượ t danh sách các môn h c có s  đ n v  h c trình l n  ọ Đ a l c t p h p

ị ọ h n ho c b ng s  đ n v  h c trình c a môn h c có mã là 001 ợ ừ ướ ậ ư ượ ng t  tr ị Ộ ơ ề có nhi u h n M T giá tr

SELECT *   FROM DMMONHOC WHERE SoDvht>=

(SELECT SoDvht   FROM DMMONHOC   WHERE MaMonhoc='001')

ượ ng t ể ừ  ALL ứ ộ L   ệ All (Câu l nh Select)

ụ ớ

ớ ằ ặ ủ ậ t c  các giá tr  đi m c a t p

ấ ế t Mã sinh viên có DiemMH l n nh t Ví d : Cho bi ị ể ấ ả ơ Nghĩa là l n h n ho c b ng t DiemMH

Select MaSV From DIEMTHI Where DiemMH >=ALL

(Select DiemMH    From DIEMTHI)

ụ ớ ấ t Tên sinh viên có DiemMH l n nh t

ế Ví d : Cho bi Select Ho, Ten From DIEMTHI,SINHVIEN Where (DiemMH >=ALL(Select DiemMH from DIEMTHI) AND SINHVIEN.MaSV=DIEMTHI.Masv

ng t Any

ừ ứ ộ ệ

ấ ỳ ể ớ ơ ế L ượ ể   Any (Câu l nh Select) Ví d :ụ Cho bi t MaSV, Mamon có DiemMH l n h n b t k  Đi m môn

ọ ủ h c c a sinh viên có Mã là ‘001’

Select MaSV, Mamonhoc

From DIEMTHI

ANY (Select  DiemMonhoc Where DiemMH >=

From DIEMTHI

Where MaSV=‘001’)

ượ ừ EXISTS L ng T

ấ ế ừ EXISTS tr  v  giá tr  True n u k t qu  c a truy v n con có ít

[NOT] EXISTS (truy_v n_con) ả ủ ị ị ế ượ ạ ở ề i tr  v  giá tr  False c l

ự ượ ấ ươ ả ề ỗ  NOT EXISTS

ọ ọ t thông tin môn h c có sinh viên h c

ng t  L ộ nh t m t dòng (khác r ng), ng ng t T ế ụ Ví d : Cho bi Select * From DMMONHOC Where Exists (Select * From DIEMTHI

Where DMONHOC.MaMon=DIEMTHI.MaMon)

ể ư ệ t h  tên c a nh ng sinh viên hi n ch a có đi m

ủ ủ ọ ?

Ví dụ: Cho bi ữ ế ọ ấ ỳ ộ thi c a b t k  m t môn h c nào SELECT Ho, Ten FROM SINHVIEN WHERE NOT EXISTS(SELECT Masv FROM DIEMTHI WHERE DIEMTHI.Masv=SINHVIEN.Masv)

Ậ Ợ

5. PHÉP TOÁN T P H P

ả ẽ ị ạ ỏ ậ ố

ậ ả ả Union (h p)ợ Except (Hi u)ệ Intersect (Giao) ể : Đ c đi m ế Các dòng gi ng nhau trong t p k t qu  s  b  lo i b ả ợ Các t p h p tham gia trong phép toán ph i kh  h p nghĩa là ph i

ợ ộ ữ ừ ậ cùng t p các c t. ữ ạ  l ố i nh ng dòng gi ng nhau thêm t khóa ALL

Gi Union All, Except All, Intersect All Cú pháp

]

ệ Câu_l nh_1 {UNION | EXCEPT | INTERSET} [ALL]   ệ Câu_l nh_2 [{UNION | EXCEPT | INTERSET} [ALL] ệ Câu_l nh_3 ... [{UNION | EXCEPT | INTERSET} [ALL]   ệ Câu l nh_n]

ợ 5.1. Phép h p (Union)

ộ ậ ấ ả ị ủ ề ấ ợ H p c a 2 hay nhi u truy v n Select là m t t p t ộ t c  các b  giá tr  c a

ủ ấ các truy v n đó.

ế ọ ộ Vidu: Cho bi ấ t mã sinh viên đã h c ít nh t m t môn có mã là “001”,

“002”

Select Masv From DIEMTHI  Where Mamon=‘001’ Union (Select Masv From DIEMTHI  Where Mamon=‘002’)

ệ 5.2 Phép hi u (Except)

ủ ộ ộ ị t c  các b  giá tr  thu c

ộ ậ ấ ả ấ ệ ấ ư ộ ấ Hi u c a 2 truy v n A và B là m t t p t truy v n A nh ng không thu c truy v n B.

ụ ọ ế

ư t Mã sinh viên ch a h c môn nào ả ở ả Ví d : Cho bi ữ Là nh ng sinh viên có trong b ng SINHVIEN mà không b ng

DIEMTHI

Select MaSV from SINHVIEN Except (select MaSV from DIEMTHI)

5.3 Phép giao (Intersect)

ộ ậ ấ ồ ộ ị Giao c a 2 hay nhi u truy v n Select là m t t p g m các b  giá tr

ủ ộ ề ấ thu c các truy v n đó.

ụ ế ả ọ Ví d : Cho bi t Mã sinh viên h c c  hai môn có mã ‘001’ và ‘002’

Select Masv from DIEMTHI Where MAMONHOC='001' Intersect (Select Masv from DIEMTHI where MAMONHOC='002')

Bài t pậ

ư ư ượ ượ ọ c h c ọ c h c.

ả ả

ế ế ế ế ế ạ ạ ạ ố ơ ị ọ ọ t Mã môn h c mà ch a đ ọ t Tên môn h c mà ch a đ t Mã giáo viên d y c  hai môn có mã ‘001’ và ‘002’ t Tên giáo viên d y c  hai môn có mã ‘001’ và ‘002’. ọ t Mã giáo viên d y môn h c có s  đ n v  h c trình

ế ộ ọ ọ ấ 1. Cho bi 2. Cho bi 3. Cho bi 4. Cho bi 5. Cho bi >=5. 6. Cho bi t Masv h c ít nh t m t h c do giáo viên mã ‘001’.

Ữ Ệ

6. B  SUNG, C P NH T, XÓA D  LI U

ệ ệ ệ ệ  L nh INSERT  L nh UPDATE   L nh DELETE 6.1 L nh INSERT

ữ ệ ộ ả   Dùng đ  b  sung thêm các dòng d  li u vào m t b ng

ữ ệ ổ ể ổ ừ  B  sung t ng dòng d  li u

Cú pháp l nhệ INSERT  INTO tên_b ngả [(danh_sách_c tộ )] VALUES(danh_sách_trị)

ấ ữ ệ ừ ữ ệ ổ ằ  B  sung nhi u dòng d  li u b ng cách truy xu t d  li u t

ề ữ ệ

ệ ả các b ng d  li u khác. Cú pháp l nhệ INSERT  INTO tên_b ngả [(danh_sách_c tộ )] Câu l nh Select

ớ ộ ộ ả ị  Ví d : B  sung m t dòng vào b ng DMKHOA v i b  giá tr  sau

ụ ổ ế (‘KT’, ‘K  toán’)

ế ấ ả ộ ả t c  các c t trong b ng

INSERT INTO KHOA(Makhoa, TenKhoa)    WITH (‘KT’, ‘K  toán’)  B  sung t ổ     INSERT INTO KHOA

ế WITH (‘KT’, ‘K  toán’,NULL)

ệ  6.2 L nh UPDATE

ề ể ậ ậ ữ ệ ộ ả

Dùng đ  c p nh t d  li u cho nhi u c t trong b ng  Cú pháp UPDATE tên_b ngả SET Tên_c t 1 = bi u_th c 1, Tên_ c t 2 = bi u th c 2

ể ể ể ứ ứ ứ [, ..., Tên_c t_k = bi u_th c_k]

ề ệ ộ ộ ộ [FROM Danh dách b ng]ả [WHERE đi u_ki n]

ỉ ậ ỏ ề ệ Where: ch  c p nh t c t có dòng th a mãn đi u ki n

ữ ệ ớ ề ả ậ ộ ậ ậ From: D  li u c p nh t liên qua t i nhi u b ng.

ậ ữ ệ ộ ế ụ ậ ạ ả  Ví d : Thêm c t X p lo i trong b ng DIEMTBC, C p nh t d  li u

ầ ộ

ượ ạ i c l ượ ạ i c l

ế ế ế

ế cho c t đó theo yêu c u sau: ế ạ i, ng N u DiemTBC >=8 thì x p lo i Gi ạ ế N u DiemTBC >=7 thì x p lo i Khá, ng ạ ế N u DiemTBC >=5 thì x p lo i Trung bình Ng i là y u ượ ạ c l

Alter Table DIEMTBC ADD Xeploai nvarchar(10) NULL

Update DIEMTBC Set Xeploai = Case

i'ỏ When DTBC>=8 then N'Gi When DTBC>=7 then N'Khá' When DTBC>=5 then N'Trung bình' Else N'Y u'ế END

ộ ả ể

6.3 L nh DELETE ữ ệ Đ  xoá các dòng d  li u trong m t b ng  Cú pháp

ệ ề DELETE FROM tên_b ngả [FROM danh_sách_b ng]ả [WHERE đi u_ki n]

ế ấ ả N u không có Where thì xóa t t c  các dòng

ỏ ả ữ ơ ạ Ví d : Xoá kh i b ng SINHVIEN nh ng sinh viên có n i sinh t i

ụ Huế

DELETE FROM sinhvien WHERE noisinh LIKE ‘%Hu %’ế

ụ ỏ ả ữ ớ

Ví d : Xóa kh i b ng DMLOP nh ng l p không có sinh viên nào DELETE FROM DMLOP WHERE Malop NOT IN

(SELECT DISTINCT Malop     FROM sinhvien)

Ố Ạ 7. CÁC LO I PHÉP N I

ữ ị

ả ớ

ấ ả t c  các dòng  c a hai b ng.

ế ố ồ ủ ị

 INNER JOIN: Là phép k t n i g m nh ng dòng có giá tr  so  ế ố ồ ả kh p nhau trên c  hai b ng.  FULL JOIN: Phép k t n i g m t ả ế ố ồ  RIGHT JION: Phép k t n i g m các dòng có giá tr  so kh p  ớ Ả ủ ộ ả ả ả

nhau trên c  hai b ng và các dòng thu c b ng bên PH I c a  liên k tế

ớ ị  LEFT JION: Phép k t n i g m các dòng có giá tr  so kh p

ả ộ ủ ả ế ố ồ ả

nhau trên c  hai b ng và các dòng thu c b ng bên TRÁI c a  liên k t.ế Cú pháp l nh:ệ SELECT ộ FROM  {INNER| FULL| RIGHT| FULL} JOIN ề ế ố ả ả ệ  ON <Đi u ki n k t n i 1>

ử ổ ả (Tham kh o trên c a s  View)

ố ị Ví d :ụ ể 1.Hi n th  danh sách sinh viên g m: MaSV, Ho, Ten, Malop,

Tenlop, Gioitinh. (INNER JOIN)

ế ứ ư ị 2.Hi n th  MaLop, TenLop ch a có sinh viên nào (ch a giá tr

ị NULL) (LEFT/RIGHT JOIN)

ị ấ ả ể 3.Hi n th  t ả t c  các thông tin trên 2 b ng SINHVIEN và DMLOP.

II . KHUNG NHÌN (WIEW)

ộ ộ ả ư  M t khung nhìn (view) có th  đ

ơ ở ữ ệ ộ ị ả c xem nh  là m t b ng “ o”  ượ c đ nh nghĩa thông qua

ộ ệ ấ ể ượ trong c  s  d  li u có n i dung đ m t truy v n (câu l nh SELECT)

ằ ả ạ ố ượ i đ i t ng View

ẩ ả  Cách t o View  C1: Thao tác b ng chu t ộ (cid:0) Click ph i t (cid:0) Ch n New View ọ (cid:0) Đ y các b ng

ế Th  t ư

Ghi đi u ề ắ ế 1. Ch a các b ng liên k t ệ ọ ki n l c

ứ ự  sx  ả u tiên

ề ộ ọ ộ Tiêu đ  c t

Ch n c t

S p x p ị ứ ể Hi n th   ộ c t hay  không

2. Xây d ng các tham s  cho view

ươ

ệ 3. Câu l nh SQL t

ứ ng  ng

ả ế 4. K t qu

ồ ể Ví d :ụ 1. Hi n th  danh sách sinh viên g m MaSV, Ho,Ten, Ngaysinh,

ị Gioitinh TenLop.

ể ị Ví d : Hi n th  danh sách sinh viên g m MaSV, Ho,Ten, Ngaysinh,

ồ ữ ọ ớ ụ Gioitinh TenLop c a ủ sinh viên n  h c l p ‘CT11’,’CT12’

ố ượ ỗ ớ  Ví d : Đ m s  l ụ ế ng sinh viên m i l p

ữ ỗ ớ

ế

Ví du: Đ m s  sinh viên n  m i l p

ế ớ

Ví d : Cho bi ụ

ư t L p nào ch a có sinh viên

ỏ ể

ấ ồ ể ả ờ ạ i các d ng

Câu h i ki m tra 15 phút: Câu s  1ố : 1.Phép toán NOT IN () trong c u trúc l ng nhau đ  tr  l ỏ ụ

câu h i nào cho ví d ể ữ ọ ị

ớ 2.Hi n th  danh sách sinh viên g m Masv, H  Tên, gi ữ ớ ủ ữ ồ i tính (nam,n ),  Ngày sinh (dd/mm/yyyy), Malop c a nh ng sinh viên n  l p CT11 và CT12.

ẽ ả ờ ạ ỏ ụ i cho các d ng câu h i nào, cho ví d

ừ ể ị ớ ọ Câu s  2ố :  1.T  khóa Group by s  tr  l 2.Hi n th  danh sách sinh viên g m Masv, H  Tên, gi

ắ ầ ữ ủ ằ

ữ ữ ồ i tính (nam,n ),  Ngày sinh (dd/mm/yyyy), Malop c a nh ng sinh viên có tên b t đ u b ng  ch  L,N,H

ắ ươ t ch ng 3

ể ả ờ ấ ỏ ạ i các d ng câu h i

ế

ỏ ừ t

ả ờ 1.T  khóa Where  tr  l ữ ấ ỏ l y  d   2.Câu  h i

ệ ọ i câu h i có đi u ki n l c ệ li u  thì

ườ

ế

ế

ế

ẫ ng  d n  t

3.T  khóa Group  by  s  tr  l ỏ

ừ ề

ư ế

ạ ị

ề ố thêm  đi u  ki n  k t  n i    2  b ng  (SINHVIEN.Malop=DMLOP.Malop,  DIEMTHI.MaMH=DMMON.MaMH,  …)  khi  đó  đ  ể ả tham  chi u  đ n  c t  liên  k t  thì  ph i  thêm  đ i  b ng  c a  nó  (SINHVIEN.Malop, DIEMTHI.Malop) ẽ ả ờ ít nh tấ  2,3, … giá tr   hay t

ỏ ấ ả ể

ổ i cho  các d ng câu h i nh : tính t ng theo t ng  t c  (thi u đi m ít nh t 2 môn  t c  môn h c). Tuy nhiên ta có th  dùng phép toán t p h p

ệ nhóm, đi u ki n th a mãn  ọ ấ ả h c, 3 môn h c, …, t ứ ạ Intersect (ph c t p) ậ

ư

4.Phép toán t p h p Except tr  l

i nh ng d ng câu h i có t

“ch a ”  (Nh ng

ả ờ Ư ọ

l p ớ CH AƯ  có sv nào, sinh viên CH A h c môn nào)

ượ

ể ể

ế

Exists  đ   ki m  tra  k t  qu   truy  v n  có  giá  tr   tr   hay  không

ườ

ừ ng  t ậ

(th

ể ả ờ

5.Dùng  l ng dùng trong l p trình) 6.Phép toán NOT IN () trong c u trúc l ng nhau đ  tr  l

ủ i các d ng câu h i ph

đ nh (KHÔNG thi u môn h c nào, KHÔNG …)

ả ờ

ượ

ỏ ạ

ế  ALL th

ọ ng tr  l

7.L

ớ i cho các câu h i d ng l n NH T, nh  NH T. (>=

ườ ng t ặ ALL(…) ho c <=ALL(…)) ấ

ướ

Chú ý: trong các c u trúc ph c t p thông th

ườ ng ta ph i quy v  tìm Màtr ồ

ứ ạ ử ụ

ả ể

ắ ầ

ế

c  ấ (masv, malop, MaMH, …) sau đó s  d ng c u trúc l ng nhu đ  tìm các tông tin khác  (Tên sv thi u 2, Tên sv b t đ u b ng ‘N’, …)

: Tóm t Dùng câu trúc truy v n Select đ  tr  l sau:

ừ ượ ừ ử ụ t các t khóa, l ng t , phép toán s  d ng

ỏ ế Hãy cho bi trong các câu h i sau:

ữ ớ

ữ ớ

ố ố

ế ế

1. 2.

Đ m s  sinh viên n  l p CT11 Đ m s  sinh viên nam, n  l p CT11

ế

ắ ầ

3.

Cho bi

t nh ng sinh viên có h  không b t đ u b ng N,L,T

ở ớ

4.

Hi n th  danh sách sinh viên không

l p CT11.

5.

Hi n th  danh sách 5 sinh viên có tu i cao nh t.

ế ế

ữ ữ

6. 7.

Cho bi Cho bi

t nh ng l p có t ng s  sv >7 ấ t nh ng sinh viên có ít nh t 2 môn h c có DiemMH <5

ế

ị ọ

8.

i l p)

ở ạ ớ

i l p).

l

ọ Ấ ọ

ế ế ế ế ế ế

Cho bi ế thi u đi m trên 25 (sinh viên  9. Cho bi 10. Cho bi 11. Cho bi 12. Cho bi 13. Cho bi 14. Cho bi

ổ ố ơ t nh ng sinh viên có t ng s  đ n v  h c trình c a các môn  ở ạ ớ ể  l ọ ể t nh ng sinh viên có Đi m TK các môn h c <3 ( ế t tên sinh viên KHÔNG thi u môn h c nào Ả t tên sinh viên h c T T C  các môn h c t tên sinh viên h c ít nh t hai môn có mã ‘001’ và ‘002’ t tên sinh viên có đi m môn ‘001’ cao nh t. ọ ư t Tên môn h c mà ch a có sinh viên nào h c