630 likes | 808 Views
NGOÂN NGÖÕ SQL. 1. Ngoân ngöõ moâ taû döõ lieäu 2. Ngoân ngöõ thao taùc döõ lieäu 3. Ngoân ngöõ truy vaán döõ lieäu. CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ. Cho CSDL goàm caùc Baûng sau: SINHVIEN ( MSSV , HOLOT, TEN, PHAI, NGAYSINH, QUEQUAN, DIACHI, MALOP) DSLOP ( MALOP , TENLOP, SISO, MAKHOA)
E N D
NGOÂN NGÖÕ SQL 1. Ngoân ngöõ moâ taû döõ lieäu 2. Ngoân ngöõ thao taùc döõ lieäu 3. Ngoân ngöõ truy vaán döõ lieäu
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ Cho CSDL goàm caùc Baûng sau: SINHVIEN (MSSV, HOLOT, TEN, PHAI, NGAYSINH, QUEQUAN, DIACHI, MALOP) DSLOP (MALOP, TENLOP, SISO, MAKHOA) DSKHOA (MAKHOA, TENKHOA) MONHOC (MAMH, TENMH, SOTC) KETQUA (MSSV, MAMH, DIEM)
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ SINHVIEN
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ DSLOP DSKHOA
CÔ SÔÛ DÖÕ LIEÄU VÍ DUÏ MONHOC KETQUA
1. Ngoân ngöõ moâ taû döõ lieäu • Leänh Taïo Baûng • Leänh Xoùa Baûng • Leänh Theâm Coät • Leänh Xoùa Coät • Leänh Söûa Coät • Leänh Taïo Khoùa chính • Leänh Taïo Khoùa ngoaïi • Leänh Taïo raøng buoäc veà mieàn giaù trò • Leänh Taïo raøng buoäc duy nhaát • Leänh Taïo chæ muïc • Leänh Xoùa chæ muïc
1. Ngoân ngöõ moâ taû döõ lieäu 1.Leänh Taïo Baûng CREATE TABLE <teân baûng> ( <teân coät 1> <kieåu döõ lieäu 1> [NOT NULL], <teân coät 2> <kieåu döõ lieäu 2> [NOT NULL], … <teân coät n> <kieåu döõ lieäu n> [NOT NULL]); NOT NULL : Coät khoâng ñöôïc pheùp roãng
1. Ngoân ngöõ moâ taû döõ lieäu 1.Leänh Taïo Baûng – Ví duï CREATE TABLE SINHVIEN ( MSSV char(4) not null, HOLOT varchar(20) not null, TEN varchar(7) not null, PHAI bit, NGAYSINH datetime, QUEQUAN varchar(20), DIACHI varchar(50), MALOP char(3) not null);
1. Ngoân ngöõ moâ taû döõ lieäu 2.Leänh Xoùa Baûng DROP TABLE <teân baûng>; Ví duï: DROP TABLE SINHVIEN;
1. Ngoân ngöõ moâ taû döõ lieäu 3.Leänh Theâm Coät ALTER TABLE <teân baûng> ADD <teân coät> <kieåu döõ lieäu> [NOT NULL]; Ví duï: ALTER TABLE SINHVIEN ADD DOANVIEN bit;
1. Ngoân ngöõ moâ taû döõ lieäu 4.Leänh Xoùa Coät ALTER TABLE <teân baûng> DROP COLUMN <teân coät>; Ví duï: ALTER TABLE SINHVIEN DROP COLUMN DOANVIEN;
1. Ngoân ngöõ moâ taû döõ lieäu 5.Leänh Söûa Coät ALTER TABLE <teân baûng> ALTER COLUMN <teân coät> <kieåu döõ lieäu>; Ví duï: ALTER TABLE SINHVIEN ALTER COLUMN Ngaysinh SmallDatetime;
1. Ngoân ngöõ moâ taû döõ lieäu 6.Leänh Taïo Khoùa chính ALTER TABLE <teân baûng> ADD CONSTRAINT <teân raøng buoäc> PRIMARY KEY (DS teân coät); Löu yù: -Teân raøng buoäc laø duy nhaát -Caùc coät trong DS teân coät phaûi coù thuoäc tính NOT NULL
1. Ngoân ngöõ moâ taû döõ lieäu 6.Leänh Taïo Khoùa chính - Ví duï: ALTER TABLE SINHVIEN ADD CONSTRAINT Kc_Sv PRIMARY KEY (mssv); ALTER TABLE KETQUA ADD CONSTRAINT Kc_Kq PRIMARY KEY (mssv,mamh);
1. Ngoân ngöõ moâ taû döõ lieäu 7.Leänh Taïo Khoùa ngoaïi ALTER TABLE <teân baûng> ADD CONSTRAINT <teân raøng buoäc> FOREIGN KEY (DS teân coät) REFERENCES <teân baûng> (DS teân coät); Löu yù: -Teân raøng buoäc laø duy nhaát
1. Ngoân ngöõ moâ taû döõ lieäu 7.Leänh Taïo Khoùa ngoaïi - Ví duï: ALTER TABLE SINHVIEN ADD CONSTRAINT Kn_Sv FOREIGN KEY(malop) REFERENCES DSLOP (malop); ALTER TABLE KETQUA ADD CONSTRAINT Kn_Kq1 FOREIGN KEY (mssv) REFERENCES SINHVIEN (mssv);
1. Ngoân ngöõ moâ taû döõ lieäu 8.Leänh Taïo raøng buoäc veà mieàn giaù trò ALTER TABLE <teân baûng> ADD CONSTRAINT <teân raøng buoäc> CHECK (Ñieàu kieän); Löu yù: -Teân raøng buoäc laø duy nhaát
1. Ngoân ngöõ moâ taû döõ lieäu 8.Leänh Taïo raøng buoäc mieàn giaù trò - Ví duï: ALTER TABLE KETQUA ADD CONSTRAINT Kt_Kq CHECK (Diem between 0 AND 10); ALTER TABLE DSLOP ADD CONSTRAINT Kt_Dslop CHECK (Siso >= 50);
1. Ngoân ngöõ moâ taû döõ lieäu 9.Leänh Taïo raøng buoäc duy nhaát ALTER TABLE <teân baûng> ADD CONSTRAINT <teân raøng buoäc> UNIQUE (DS Teân coät); Löu yù: -Teân raøng buoäc laø duy nhaát
1. Ngoân ngöõ moâ taû döõ lieäu 9.Leänh Taïo raøng buoäc duy nhaát – Ví duï Teân moân hoïc khoâng ñöôïc truøng nhau: ALTER TABLE MONHOC ADD CONSTRAINT Dn_Mh UNIQUE (TenMH);
1. Ngoân ngöõ moâ taû döõ lieäu 10.Leänh Taïo chæ muïc CREATE INDEX <teân Index> ON <teân baûng> (<coät 1>, <coät 2>, ...) ; Ngöõ nghóa: Taïo chæ muïc ñeå löu thöù töï saép xeáp caùc baûn ghi theo giaù trò taêng daàn cuûa caùc coät ñöôïc cho trong danh saùch. Ghi chuù: Chæ neân taïo chæ muïc cho caùc baûng coù nhieàu baûn ghi vaø ít ñöôïc caäp nhaät, vaø chæ neân taïo treân caùc coät maø thoâng tin cuûa noù thöôøng xuyeân ñöôïc tham khaûo tôùi.
1. Ngoân ngöõ moâ taû döõ lieäu 10.Leänh Taïo chæ muïc – Ví duï: CREATE INDEX Cm_sv1 ON SINHVIEN (Ten); CREATE INDEX Cm_mh1 ON MONHOC (TenMH);
1. Ngoân ngöõ moâ taû döõ lieäu 11.Leänh Xoùa chæ muïc DROP INDEX <teân Index> ; Ví duï: DROP INDEX Cm_sv1 DROP INDEX Cm_mh1
2. Ngoân ngöõ thao taùc döõ lieäu • Leänh Theâm maãu tin • Leänh Xoùa maãu tin • Leänh caäp nhaät maãu tin
2. Ngoân ngöõ thao taùc döõ lieäu 1.Leänh theâm maãu tin (1) INSERT INTO <teân baûng> (<teân coät 1>, ...) VALUES (<bieåu thöùc 1>, <bieåu thöùc 2>, ...); Löu yù: -Kieåu döõ lieäu -Chieàu daøi -Caùc raøng buoäc toaøn veïn: khoùa chính, khoùa ngoaïi, kieåm tra, duy nhaát
2. Ngoân ngöõ thao taùc döõ lieäu 1.Leänh theâm maãu tin (1) – Ví duï Theâm 1 Sinh vieân môùi: INSERT INTO SINHVIEN (MSSV, HOLOT, TEN, PHAI, NGAYSINH, QUEQUAN, DIACHI, MALOP) VALUES (‘T005’,’LE TIEN’,’DUNG’,1,’3/18/84’, ’DONGNAI’,’77/8 LE LOI – Q1’,’T2N’); Theâm 1 Moân hoïc môùi: INSERT INTO MONHOC (MAMH, TENMH, SOTC) VALUES (‘CSDL’,’CO SO DU LIEU’,4);
2. Ngoân ngöõ thao taùc döõ lieäu 1.Leänh theâm maãu tin (2) Neáu caùc bieåu thöùc sau töø khoaù VALUES hoaøn toaøn phuø hôïp veà thöù töï vôùi caùc coät trong baûng danh saùch caùc coät sau töø khoùa INTO coù theå ñöôïc boû qua INSERT INTO <teân baûng> VALUES (<bieåu thöùc 1>, <bieåu thöùc 2>, ...);
2. Ngoân ngöõ thao taùc döõ lieäu 1.Leänh theâm maãu tin (2) – Ví duï Theâm 1 Sinh vieân môùi: INSERT INTO SINHVIEN VALUES (‘T005’,’LE TIEN’,’DUNG’,1,’3/18/84’, ’DONGNAI’,’77/8 LE LOI – Q1’,’T2N’); Theâm 1 Moân hoïc môùi: INSERT INTO MONHOC VALUES (‘CSDL’,’CO SO DU LIEU’,4);
2. Ngoân ngöõ thao taùc döõ lieäu 1.Leänh theâm maãu tin (3) Ngoaøi ra ta coù theå theâm (caùc) maãu tin vaøo baûng töø caâu leänh truy vaán (Select) INSERT INTO <teân baûng> (<teân coät 1>, ...) <Caâu leänh Select> hoaëc INSERT INTO <teân baûng> <Caâu leänh Select>
2. Ngoân ngöõ thao taùc döõ lieäu 1.Leänh theâm maãu tin (3) – Ví duï Theâm Sinh vieân môùi töø 1 danh saùch: INSERT INTO SINHVIEN SELECT * FROM DSSV_NEW ; Löu yù: -DSSV_New coù cuøng caáu truùc vôùi SINHVIEN
2. Ngoân ngöõ thao taùc döõ lieäu 2.Leänh Xoùa maãu tin • Vieäc loaïi boû maãu tin khoûi 1 baûng trong CSDL laø 1 trong nhöõng thao taùc caäp nhaät döõ lieäu ñöôïc tieán haønh moät caùch thöôøng xuyeân • Cuù phaùp: DELETE FROM <teân baûng> [WHERE <ñieàu kieän>]; • Ngöõ nghóa: Caùc maãu tin thoaû maõn ñieàu kieän sau WHERE seõ bò xoaù khoûi baûng. Neáu khoâng coù meänh ñeà WHERE thì taát caû caùc maãu tin cuûa baûng seõ bò xoùa khoûi baûng.
2. Ngoân ngöõ thao taùc döõ lieäu 2.Leänh Xoùa maãu tin – Ví duï: Xoùa Sinh vieân coù Maõ soá laø T005 DELETE FROM SINHVIEN WHERE MSSV=‘T005’; Xoùa taát caû caùc moân hoïc coù 5 tín chæ DELETE FROM MONHOC WHERE SOTC = 5;
2. Ngoân ngöõ thao taùc döõ lieäu 3.Leänh caäp nhaät maãu tin Cuù phaùp UPDATE <teân baûng> SET <teân coät 1> = <bieåu thöùc 1>, <teân coät 2> = <bieåu thöùc 2>, ... <teân coät n> = <bieåu thöùc n> [WHERE <ñieàu kieän>];
2. Ngoân ngöõ thao taùc döõ lieäu 3.Leänh caäp nhaät maãu tin Ngöõ nghóa: Giaù trò cuûa caùc field coù teân trong danh saùch <teân coät 1>, <teân coät 2> ... cuûa nhöõng maãu tin thoaû maõn ñieàu kieän sau WHERE seõ ñöôïc söûa ñoåi thaønh giaù trò cuûa caùc <bieåu thöùc 1>, <bieåu thöùc 2> ... töông öùng. Neáu khoâng coù meänh ñeà WHERE thì taát caû caùc maãu tin cuûa baûng seõ ñöôïc söûa ñoåi.
2. Ngoân ngöõ thao taùc döõ lieäu 3.Leänh caäp nhaät maãu tin Ví duï: Taêng cho taát caû sinh vieân 1 ñieåm moân THCB UPDATE KETQUA SET DIEM = DIEM +1 WHERE MAMH = ‘THCB’; Caäp nhaät só soá lôùp T2N thaønh 90 UPDATE DSLOP SET SISO = 90 WHERE MALOP = ‘T2N’;
3. Ngoân ngöõ truy vaán döõ lieäu • Cuù phaùp toång quaùt • Daïng ñôn giaûn • Daáu * • Meänh ñeà WHERE • Meänh ñeà ORDER BY • Meänh ñeà GROUP BY • Meänh ñeà HAVING • Phaùt bieåu Select vôùi AS • Phaùt bieåu Select vôùi TOP N • Phaùt bieåu Select vôùi DISTINCT • Truy vaán töø nhieàu Baûng • Truy vaán con
3. Ngoân ngöõ truy vaán döõ lieäu 1.Cuù phaùp toång quaùt SELECT <Danh saùch caùc coät> FROM <Danh saùch Baûng> WHERE <Caùc ñieàu kieän> GROUP BY <Teân coät> HAVING <Ñieàu kieän döïa treân GROUP BY> ORDER BY <Danh saùch coät>
3. Ngoân ngöõ truy vaán döõ lieäu 2.Daïng ñôn giaûn SELECT <Danh saùch caùc coät> FROM <Teân Baûng> Trích ra moät soá coät trong 1 Baûng naøo ñoù Ví duï: Laáy ra MAMH, TENMH töø baûng MONHOC SELECT MAMH, TENMH FROM MONHOC;
3. Ngoân ngöõ truy vaán döõ lieäu 3.Daáu * Daáu * ñaïi dieän cho taát caû caùc coät SELECT * FROM <Teân Baûng> Ví duï: Laáy ra danh saùch caùc moân hoïc SELECT * FROM MONHOC;
3. Ngoân ngöõ truy vaán döõ lieäu 4.Meänh ñeà WHERE Duøng ñeå ñaët ñieàu kieän trích döõ lieäu SELECT <Danh saùch caùc coät> FROM <Teân Baûng> WHERE <Danh saùch ñieàu kieän> Ví duï: Laáy ra MSSV, HOTEN cuûa Sinh vieân queâ quaùn ‘HA NOI’ SELECT MSSV, HOLOT, TEN FROM SINHVIEN WHERE QUEQUAN = ‘HA NOI’;
3. Ngoân ngöõ truy vaán döõ lieäu 4.Meänh ñeà WHERE Caùc pheùp toaùn trong meänh ñeà WHERE -So saùnh: >, <. >=, <=, =, <> -Logic: And, Or, Not Ví duï: Laáy ra MSSV, HOTEN cuûa Sinh vieân lôùp T2N queâ quaùn ‘HA NOI’ SELECT MSSV, HOLOT, TEN FROM SINHVIEN WHERE QUEQUAN = ‘HA NOI’ AND MALOP= ‘T2N’;
3. Ngoân ngöõ truy vaán döõ lieäu 4.Meänh ñeà WHERE Toaùn töû Between: naèm trong 1 mieàn Ví duï: Trích ra danh saùch Sinh vieân sinh naêm 1982 SELECT * FROM SINHVIEN WHERE NGAYSINH Between ‘1/1/1982’ And ’12/31/1982’;
3. Ngoân ngöõ truy vaán döõ lieäu 4.Meänh ñeà WHERE Toaùn töû LIKE: pheùp toaùn so saùnh gaàn gioáng, söû duïng daáu caùc kyù töï ñaïi dieän nhö _ (1 kyù töï), % (1 chuoãi baát kyø) Ví duï: Trích ra danh saùch Sinh vieân Hoï ‘Phan’ SELECT * FROM SINHVIEN WHERE HOLOT LIKE ‘Phan%’;
3. Ngoân ngöõ truy vaán döõ lieäu 4.Meänh ñeà WHERE Toaùn töû IN: pheùp toaùn so saùnh trong 1 taäp hôïp, 1 danh saùch Ví duï: Trích ra danh saùch Sinh vieân queâ quaùn ôû caùc tænh ‘Caàn Thô’, ‘An Giang’, ‘Kieân Giang’ SELECT * FROM SINHVIEN WHERE QUEQUAN IN (‘Caàn Thô’, ‘An Giang’, ‘Kieân Giang’);
3. Ngoân ngöõ truy vaán döõ lieäu 4.Meänh ñeà WHERE IS NULL ( IS NOT NULL ): kieåm tra 1 giaù trò coù roãng hay khoâng (keát quaû: TRUE – FALSE) Ví duï: Trích ra danh saùch Sinh vieân chöa coù ñòa chæ SELECT * FROM SINHVIEN WHERE DIACHI IS NULL;
3. Ngoân ngöõ truy vaán döõ lieäu 4.Meänh ñeà WHERE Toaùn töû Exists: traû veà TRUE neáu coù ít nhaát 1 maãu tin toàn taïi Ví duï: Cho bieát coù sinh vieân naøo Queâ quaùn ‘Nha Trang’ khoâng? If Exists (SELECT * FROM SINHVIEN WHERE QUEQUAN = ‘Nha Trang’) Print ‘Co sinh vien’;
3. Ngoân ngöõ truy vaán döõ lieäu 5.Meänh ñeà ORDER BY Saép xeáp keát quaû theo thöù töï mong muoán ORDER BY <DS Teân coät> [ASC | DESC] Ví duï: Trích ra danh saùch sinh vieân nöõ, saép theo teân taêng daàn? SELECT MSSV, HOLOT, TEN, MALOP FROM SINHVIEN WHERE PHAI= 0 ORDER BY TEN ASC
3. Ngoân ngöõ truy vaán döõ lieäu 6.Meänh ñeà GROUP BY Nhoùm döõ lieäu laïi theo töøng nhoùm ñeå thöïc hieän caùc pheùp toaùn thoáng keâ GROUP BY <DS Teân coät> Ví duï: Cho bieát soá löôïng sinh vieân töøng lôùp SELECT MALOP, COUNT(*) AS SOSV FROM SINHVIEN GROUP BY MALOP
3. Ngoân ngöõ truy vaán döõ lieäu 6.Meänh ñeà GROUP BY Moät soá Haøm thoâng duïng: -AVG: giaù trò trung bình -MIN: giaù trò nhoû nhaát -MAX: giaù trò lôùn nhaát -COUNT: ñeám soá phaàn töû -SUM : Toång caùc phaàn töû
3. Ngoân ngöõ truy vaán döõ lieäu 7.Meänh ñeà HAVING Ñaët ñieàu kieän choïn sau khi ñaõ nhoùm döõ lieäu baèng meänh ñeà GROUP BY Ví duï: Trích ra Danh saùch caùc lôùp coù treân 20 sinh vieân SELECT MALOP, COUNT(*) AS SOSV FROM SINHVIEN GROUP BY MALOP HAVING COUNT(*) > 20 ;