├── Data by generating scripts ├── QuanLyBanHang.xls └── QuanLyGiaoVu.xls ├── README.md ├── Tuan 01 ├── 18520339_Buoi1.sql └── [2016]TH_CSDL_Tuan01.pdf ├── Tuan 02 ├── 18520339_Buoi2.sql └── [2016]TH_CSDL_Tuan02.pdf ├── Tuan 03 ├── 18520339_Buoi3.sql └── [2016]TH_CSDL_Tuan03.pdf ├── Tuan 04 ├── 18520339_Buoi4.sql └── [2016]TH_CSDL_Tuan04.pdf ├── Tuan 05 ├── 18520339_Buoi5.sql └── [2016]TH_CSDL_Tuan05.pdf └── baitap_CSDL_khoa_HTTT_new.pdf /Data by generating scripts/QuanLyBanHang.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/Data by generating scripts/QuanLyBanHang.xls -------------------------------------------------------------------------------- /Data by generating scripts/QuanLyGiaoVu.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/Data by generating scripts/QuanLyGiaoVu.xls -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Thực hành Cơ sở dữ liệu UIT 2 | -------------------------------------------------------------------------------- /Tuan 01/18520339_Buoi1.sql: -------------------------------------------------------------------------------- 1 | ------------------------------ QUANLYBANHANG ------------------------------------------ 2 | /* 3 | DROP TABLE KHACHHANG 4 | DROP TABLE NHANVIEN 5 | DROP TABLE SANPHAM 6 | DROP TABLE HOADON 7 | DROP TABLE CTHD 8 | 9 | DELETE FROM KHACHHANG 10 | DELETE FROM NHANVIEN 11 | DELETE FROM SANPHAM 12 | DELETE FROM HOADON 13 | DELETE FROM CTHD 14 | 15 | SELECT * FROM KHACHHANG 16 | SELECT * FROM NHANVIEN 17 | SELECT * FROM SANPHAM 18 | SELECT * FROM HOADON 19 | SELECT * FROM CTHD 20 | */ 21 | GO 22 | 23 | -- I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language): 24 | -- 1. Tạo các quan hệ và khai báo các khóa chính, khóa ngoại của quan hệ. 25 | USE master 26 | IF EXISTS (SELECT * FROM SYS.DATABASES WHERE NAME = 'QUANLYBANHANG') 27 | BEGIN 28 | ALTER DATABASE QUANLYBANHANG SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 29 | DROP DATABASE QUANLYBANHANG; 30 | END 31 | GO 32 | 33 | CREATE DATABASE QUANLYBANHANG 34 | GO 35 | 36 | USE QUANLYBANHANG 37 | GO 38 | 39 | -------------------------------- KHACHHANG -------------------------------------------- 40 | CREATE TABLE KHACHHANG 41 | ( 42 | MAKH CHAR(4) PRIMARY KEY, 43 | HOTEN VARCHAR(40) NOT NULL, 44 | DCHI VARCHAR(50) NOT NULL, 45 | SODT VARCHAR(20) NOT NULL, 46 | NGSINH SMALLDATETIME, 47 | NGDK SMALLDATETIME, 48 | DOANHSO MONEY NOT NULL 49 | ) 50 | GO 51 | 52 | --------------------------------- NHANVIEN -------------------------------------------- 53 | CREATE TABLE NHANVIEN 54 | ( 55 | MANV CHAR(4) PRIMARY KEY, 56 | HOTEN VARCHAR(40) NOT NULL, 57 | SODT VARCHAR(20) NOT NULL, 58 | NGVL SMALLDATETIME 59 | ) 60 | GO 61 | 62 | --------------------------------- SANPHAM --------------------------------------------- 63 | CREATE TABLE SANPHAM 64 | ( 65 | MASP CHAR(4) PRIMARY KEY, 66 | TENSP VARCHAR(40) NOT NULL, 67 | DVT VARCHAR(20), 68 | NUOCSX VARCHAR(40), 69 | GIA MONEY NOT NULL 70 | ) 71 | GO 72 | 73 | ---------------------------------- HOADON --------------------------------------------- 74 | CREATE TABLE HOADON 75 | ( 76 | SOHD INT PRIMARY KEY, 77 | NGHD SMALLDATETIME, 78 | MAKH CHAR(4) FOREIGN KEY REFERENCES KHACHHANG(MAKH), 79 | MANV CHAR(4) FOREIGN KEY REFERENCES NHANVIEN(MANV), 80 | TRIGIA MONEY 81 | ) 82 | GO 83 | 84 | ----------------------------------- CTHD ---------------------------------------------- 85 | CREATE TABLE CTHD 86 | ( 87 | SOHD INT FOREIGN KEY REFERENCES HOADON(SOHD), 88 | MASP CHAR(4) FOREIGN KEY REFERENCES SANPHAM(MASP), 89 | SL INT, 90 | PRIMARY KEY (SOHD, MASP) 91 | ) 92 | GO 93 | 94 | -- 2. Thêm vào thuộc tính GHICHU có kiểu dữ liệu varchar(20) cho quan hệ SANPHAM. 95 | ALTER TABLE SANPHAM ADD GHICHU VARCHAR(20) 96 | GO 97 | 98 | -- 3. Thêm vào thuộc tính LOAIKH có kiểu dữ liệu là tinyint cho quan hệ KHACHHANG. 99 | ALTER TABLE KHACHHANG ADD LOAIKH TINYINT 100 | GO 101 | 102 | -- 4. Sửa kiểu dữ liệu của thuộc tính GHICHU trong quan hệ SANPHAM thành varchar(100). 103 | ALTER TABLE SANPHAM ALTER COLUMN GHICHU VARCHAR(100) 104 | GO 105 | 106 | -- 5. Xóa thuộc tính GHICHU trong quan hệ SANPHAM. 107 | ALTER TABLE SANPHAM DROP COLUMN GHICHU 108 | GO 109 | 110 | -- 6. Làm thế nào để thuộc tính LOAIKH trong quan hệ KHACHHANG có thể lưu các giá trị là: “Vang lai”, “Thuong xuyen”, “Vip”, … 111 | ALTER TABLE KHACHHANG ALTER COLUMN LOAIKH VARCHAR(20) 112 | GO 113 | 114 | -- 7. Đơn vị tính của sản phẩm chỉ có thể là (“cay”,”hop”,”cai”,”quyen”,”chuc”) 115 | ALTER TABLE SANPHAM ADD CONSTRAINT CK_DVT CHECK(DVT in ('cay', 'hop', 'cai', 'quyen', 'chuc')) 116 | GO 117 | 118 | -- 8. Giá bán của sản phẩm từ 500 đồng trở lên. 119 | ALTER TABLE SANPHAM ADD CONSTRAINT CK_GIA CHECK(GIA >= 500) 120 | GO 121 | 122 | -- 9. Mỗi lần mua hàng, khách hàng phải mua ít nhất 1 sản phẩm. 123 | ALTER TABLE CTHD ADD CONSTRAINT CK_SL CHECK(SL >= 1) 124 | GO 125 | 126 | -- 10. Ngày khách hàng đăng ký là khách hàng thành viên phải lớn hơn ngày sinh của người đó. 127 | ALTER TABLE KHACHHANG ADD CONSTRAINT CK_NGDK CHECK(NGDK > NGSINH) 128 | GO 129 | 130 | 131 | -------------------------------- QUANLYHOCVU ------------------------------------------ 132 | /* 133 | DROP TABLE KHOA 134 | DROP TABLE MONHOC 135 | DROP TABLE DIEUKIEN 136 | DROP TABLE GIAOVIEN 137 | DROP TABLE LOP 138 | DROP TABLE HOCVIEN 139 | DROP TABLE GIANGDAY 140 | DROP TABLE KETQUATHI 141 | 142 | DELETE FROM KHOA 143 | DELETE FROM MONHOC 144 | DELETE FROM DIEUKIEN 145 | DELETE FROM GIAOVIEN 146 | DELETE FROM LOP 147 | DELETE FROM HOCVIEN 148 | DELETE FROM GIANGDAY 149 | DELETE FROM KETQUATHI 150 | 151 | SELECT * FROM KHOA 152 | SELECT * FROM MONHOC 153 | SELECT * FROM DIEUKIEN 154 | SELECT * FROM GIAOVIEN 155 | SELECT * FROM LOP 156 | SELECT * FROM HOCVIEN 157 | SELECT * FROM GIANGDAY 158 | SELECT * FROM KETQUATHI 159 | */ 160 | GO 161 | 162 | -- I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language): 163 | -- 1. Tạo quan hệ và khai báo tất cả các ràng buộc khóa chính, khóa ngoại. Thêm vào 3 thuộc tính GHICHU, DIEMTB, XEPLOAI cho quan hệ HOCVIEN. 164 | USE master 165 | IF EXISTS (SELECT * FROM SYS.DATABASES WHERE NAME = 'QUANLYHOCVU') 166 | BEGIN 167 | ALTER DATABASE QUANLYHOCVU SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 168 | DROP DATABASE QUANLYHOCVU; 169 | END 170 | GO 171 | 172 | CREATE DATABASE QUANLYHOCVU 173 | GO 174 | 175 | USE QUANLYHOCVU 176 | GO 177 | 178 | ----------------------------------- KHOA ---------------------------------------------- 179 | CREATE TABLE KHOA 180 | ( 181 | MAKHOA VARCHAR(4) PRIMARY KEY, 182 | TENKHOA VARCHAR(40), 183 | NGTLAP SMALLDATETIME, 184 | TRGKHOA CHAR(4) 185 | ) 186 | GO 187 | 188 | ---------------------------------- MONHOC --------------------------------------------- 189 | CREATE TABLE MONHOC 190 | ( 191 | MAMH VARCHAR(10) PRIMARY KEY, 192 | TENMH VARCHAR(40), 193 | TCLT TINYINT, 194 | TCTH TINYINT, 195 | MAKHOA VARCHAR(4) FOREIGN KEY REFERENCES KHOA(MAKHOA) 196 | ) 197 | GO 198 | 199 | --------------------------------- DIEUKIEN -------------------------------------------- 200 | CREATE TABLE DIEUKIEN 201 | ( 202 | MAMH VARCHAR(10) FOREIGN KEY REFERENCES MONHOC(MAMH), 203 | MAMH_TRUOC VARCHAR(10), 204 | PRIMARY KEY (MAMH, MAMH_TRUOC) 205 | ) 206 | GO 207 | 208 | --------------------------------- GIAOVIEN -------------------------------------------- 209 | CREATE TABLE GIAOVIEN 210 | ( 211 | MAGV CHAR(4) PRIMARY KEY, 212 | HOTEN VARCHAR(40), 213 | HOCVI VARCHAR(10), 214 | HOCHAM VARCHAR(10), 215 | GIOITINH VARCHAR(3), 216 | NGSINH SMALLDATETIME, 217 | NGVL SMALLDATETIME, 218 | HESO NUMERIC(4,2), 219 | MUCLUONG MONEY, 220 | MAKHOA VARCHAR(4) FOREIGN KEY REFERENCES KHOA(MAKHOA) 221 | ) 222 | GO 223 | 224 | ----------------------------------- LOP ----------------------------------------------- 225 | CREATE TABLE LOP 226 | ( 227 | MALOP CHAR(3) PRIMARY KEY, 228 | TENLOP VARCHAR(40), 229 | TRGLOP CHAR(5), 230 | SISO TINYINT, 231 | MAGVCN CHAR(4) FOREIGN KEY REFERENCES GIAOVIEN(MAGV) 232 | ) 233 | GO 234 | 235 | --------------------------------- HOCVIEN --------------------------------------------- 236 | CREATE TABLE HOCVIEN 237 | ( 238 | MAHV CHAR(5) PRIMARY KEY, 239 | HO VARCHAR(40), 240 | TEN VARCHAR(10), 241 | NGSINH SMALLDATETIME, 242 | GIOITINH VARCHAR(3), 243 | NOISINH VARCHAR(40), 244 | MALOP CHAR(3) FOREIGN KEY REFERENCES LOP(MALOP) 245 | ) 246 | GO 247 | 248 | --------------------------------- GIANGDAY -------------------------------------------- 249 | CREATE TABLE GIANGDAY 250 | ( 251 | MALOP CHAR(3) FOREIGN KEY REFERENCES LOP(MALOP), 252 | MAMH VARCHAR(10) FOREIGN KEY REFERENCES MONHOC(MAMH), 253 | MAGV CHAR(4) FOREIGN KEY REFERENCES GIAOVIEN(MAGV), 254 | HOCKY TINYINT, 255 | NAM SMALLINT, 256 | TUNGAY SMALLDATETIME, 257 | DENNGAY SMALLDATETIME, 258 | PRIMARY KEY (MALOP, MAMH) 259 | ) 260 | GO 261 | 262 | --------------------------------- KETQUATHI ------------------------------------------- 263 | CREATE TABLE KETQUATHI 264 | ( 265 | MAHV CHAR(5) FOREIGN KEY REFERENCES HOCVIEN(MAHV), 266 | MAMH VARCHAR(10) FOREIGN KEY REFERENCES MONHOC(MAMH), 267 | LANTHI TINYINT, 268 | NGTHI SMALLDATETIME, 269 | DIEM NUMERIC(4,2), 270 | KQUA VARCHAR(10), 271 | PRIMARY KEY (MAHV, MAMH, LANTHI) 272 | ) 273 | GO 274 | 275 | ALTER TABLE KHOA ADD CONSTRAINT FK__KHOA__TRGKHOA FOREIGN KEY (TRGKHOA) REFERENCES GIAOVIEN(MAGV) 276 | 277 | ALTER TABLE HOCVIEN ADD GHICHU VARCHAR(60) 278 | GO 279 | 280 | ALTER TABLE HOCVIEN ADD DIEMTB NUMERIC(4, 2) 281 | GO 282 | 283 | ALTER TABLE HOCVIEN ADD XEPLOAI VARCHAR(10) 284 | GO 285 | 286 | -- 2. Mã học viên là một chuỗi 5 ký tự, 3 ký tự đầu là mã lớp, 2 ký tự cuối cùng là số thứ tự học viên trong lớp. VD: “K1101” 287 | CREATE FUNCTION check_valid_MALOP (@MAHV VARCHAR(5)) 288 | RETURNs TINYINT 289 | AS 290 | BEGIN 291 | IF LEFT(@MAHV, 3) IN (SELECT MALOP FROM LOP) 292 | RETURN 1 293 | RETURN 0 294 | END 295 | GO 296 | 297 | CREATE FUNCTION check_valid_STT (@MAHV VARCHAR(5), @MALOP_HOCVIEN VARCHAR(3)) 298 | RETURNs TINYINT 299 | AS 300 | BEGIN 301 | IF RIGHT(@MAHV, 2) BETWEEN 1 AND (SELECT SISO FROM LOP WHERE MALOP = @MALOP_HOCVIEN) 302 | RETURN 1 303 | RETURN 0 304 | END 305 | GO 306 | 307 | ALTER TABLE HOCVIEN ADD CONSTRAINT CK_MAHV CHECK( 308 | LEN(MAHV) = 5 AND 309 | dbo.check_valid_MALOP(MAHV) = 1 AND 310 | dbo.check_valid_STT(MAHV, MALOP) = 1 311 | ) 312 | GO 313 | 314 | -- 3. Thuộc tính GIOITINH chỉ có giá trị là “Nam” hoặc “Nu”. 315 | ALTER TABLE HOCVIEN ADD CONSTRAINT CK_GIOITINH CHECK(GIOITINH IN ('Nam', 'Nu')) 316 | GO 317 | 318 | -- 4. Điểm số của một lần thi có giá trị từ 0 đến 10 và cần lưu đến 2 số lẽ (VD: 6.22). 319 | ALTER TABLE KETQUATHI ADD CONSTRAINT CK_DIEM CHECK( 320 | DIEM BETWEEN 0 AND 10 AND 321 | LEN(SUBSTRING(CAST(DIEM AS VARCHAR), CHARINDEX('.', DIEM) + 1, 1000)) >= 2 322 | ) 323 | GO 324 | 325 | -- 5. Kết quả thi là “Dat” nếu điểm từ 5 đến 10 và “Khong dat” nếu điểm nhỏ hơn 5. 326 | ALTER TABLE KETQUATHI ADD CONSTRAINT CK_KQUA CHECK(KQUA = IIF(DIEM BETWEEN 5 AND 10, 'Dat', 'Khong dat')) 327 | GO 328 | 329 | -- 6. Học viên thi một môn tối đa 3 lần. 330 | ALTER TABLE KETQUATHI ADD CONSTRAINT CK_SOLANTHI CHECK(LANTHI <= 3) 331 | GO 332 | 333 | -- 7. Học kỳ chỉ có giá trị từ 1 đến 3. 334 | ALTER TABLE GIANGDAY ADD CONSTRAINT CK_HOCKY CHECK(HOCKY BETWEEN 1 AND 3) 335 | GO 336 | 337 | -- 8. Học vị của giáo viên chỉ có thể là “CN”, “KS”, “Ths”, ”TS”, ”PTS”. 338 | ALTER TABLE GIAOVIEN ADD CONSTRAINT CK_HOCVI CHECK(HOCVI IN ('CN', 'KS', 'Ths', 'TS', 'PTS')) 339 | GO -------------------------------------------------------------------------------- /Tuan 01/[2016]TH_CSDL_Tuan01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/Tuan 01/[2016]TH_CSDL_Tuan01.pdf -------------------------------------------------------------------------------- /Tuan 02/18520339_Buoi2.sql: -------------------------------------------------------------------------------- 1 | ------------------------------ QUANLYBANHANG ------------------------------------------ 2 | /* 3 | DROP TABLE KHACHHANG 4 | DROP TABLE NHANVIEN 5 | DROP TABLE SANPHAM 6 | DROP TABLE HOADON 7 | DROP TABLE CTHD 8 | 9 | DELETE FROM KHACHHANG 10 | DELETE FROM NHANVIEN 11 | DELETE FROM SANPHAM 12 | DELETE FROM HOADON 13 | DELETE FROM CTHD 14 | 15 | SELECT * FROM KHACHHANG 16 | SELECT * FROM NHANVIEN 17 | SELECT * FROM SANPHAM 18 | SELECT * FROM HOADON 19 | SELECT * FROM CTHD 20 | */ 21 | GO 22 | 23 | -- II. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language): 24 | -- 1. Nhập dữ liệu cho các quan hệ trên. 25 | SET DATEFORMAT DMY; 26 | USE QUANLYBANHANG 27 | GO 28 | 29 | -------------------------------- KHACHHANG -------------------------------------------- 30 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH01', 'Nguyen Van A', '731 Tran Hung Dao, Q5, TpHCM', '08823451', '22/10/1960', '13060000', '22/07/2006') 31 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH02', 'Tran Ngoc Han', '23/5 Nguyen Trai, Q5, TpHCM', '0908256478', '03/04/1974', '280000', '30/07/2006') 32 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH03', 'Tran Ngoc Linh', '45 Nguyen Canh Chan, Q1, TpHCM', '0938776266', '12/06/1980', '3860000', '05/08/2006') 33 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH04', 'Tran Minh Long', '50/34 Le Dai Hanh, Q10, TpHCM', '0917325476', '09/03/1965', '250000', '02/10/2006') 34 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH05', 'Le Nhat Minh', '34 Truong Dinh, Q3, TpHCM', '08246108', '10/03/1950', '21000', '28/10/2006') 35 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH06', 'Le Hoai Thuong', '227 Nguyen Van Cu, Q5, TpHCM', '08631738', '31/12/1981', '915000', '24/11/2006') 36 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH07', 'Nguyen Van Tam', '32/3 Tran Binh Trong, Q5, TpHCM', '0916783565', '06/04/1971', '12500', '01/12/2006') 37 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH08', 'Phan Thi Thanh', '45/2 An Duong Vuong, Q5, TpHCM', '0938435756', '10/01/1971', '365000', '13/12/2006') 38 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH09', 'Le Ha Vinh', '873 Le Hong Phong, Q5, TpHCM', '08654763', '03/09/1979', '70000', '14/01/2007') 39 | INSERT INTO KHACHHANG(MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) VALUES('KH10', 'Ha Duy Lap', '34/34B Nguyen Trai, Q1, TpHCM', '08768904', '02/05/1983', '675000', '16/01/2007') 40 | GO 41 | 42 | --------------------------------- NHANVIEN -------------------------------------------- 43 | INSERT INTO NHANVIEN(MANV, HOTEN, SODT, NGVL) VALUES('NV01', 'Nguyen Nhu Nhut', '0927345678', '13/04/2006') 44 | INSERT INTO NHANVIEN(MANV, HOTEN, SODT, NGVL) VALUES('NV02', 'Le Thi Phi Yen', '0987567390', '21/04/2006') 45 | INSERT INTO NHANVIEN(MANV, HOTEN, SODT, NGVL) VALUES('NV03', 'Nguyen Van B', '0997047382', '27/04/2006') 46 | INSERT INTO NHANVIEN(MANV, HOTEN, SODT, NGVL) VALUES('NV04', 'Ngo Thanh Tuan', '0913758498', '24/06/2006') 47 | INSERT INTO NHANVIEN(MANV, HOTEN, SODT, NGVL) VALUES('NV05', 'Nguyen Thi Truc Thanh', '0918590387', '20/07/2006') 48 | GO 49 | 50 | --------------------------------- SANPHAM --------------------------------------------- 51 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('BC01', 'But chi', 'cay', 'Singapore', '3000') 52 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('BC02', 'But chi', 'cay', 'Singapore', '5000') 53 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('BC03', 'But chi', 'cay', 'Viet Nam', '3500') 54 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('BC04', 'But chi', 'hop', 'Viet Nam', '30000') 55 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('BB01', 'But bi', 'cay', 'Viet Nam', '5000') 56 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('BB02', 'But bi', 'cay', 'Trung Quoc', '5000') 57 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('BB03', 'But bi', 'hop', 'Thai Lan', '100000') 58 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('TV01', 'Tap 100 giay mong', 'quyen', 'Trung Quoc', '2500') 59 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('TV02', 'Tap 200 giay mong', 'quyen', 'Trung Quoc', '4500') 60 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('TV03', 'Tap 100 giay tot', 'quyen', 'Viet Nam', '3000') 61 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('TV04', 'Tap 200 giay tot', 'quyen', 'Viet Nam', '5500') 62 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('TV05', 'Tap 100 trang', 'chuc', 'Viet Nam', '23000') 63 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('TV06', 'Tap 200 trang', 'chuc', 'Viet Nam', '53000') 64 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('TV07', 'Tap 100 trang', 'chuc', 'Trung Quoc', '34000') 65 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST01', 'So tay 500 trang', 'quyen', 'Trung Quoc', '40000') 66 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST02', 'So tay loai 1', 'quyen', 'Viet Nam', '55000') 67 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST03', 'So tay loai 2', 'quyen', 'Viet Nam', '51000') 68 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST04', 'So tay', 'quyen', 'Thai Lan', '55000') 69 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST05', 'So tay mong', 'quyen', 'Thai Lan', '20000') 70 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST06', 'Phan viet bang', 'hop', 'Viet Nam', '5000') 71 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST07', 'Phan khong bui', 'hop', 'Viet Nam', '7000') 72 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST08', 'Bong bang', 'cai', 'Viet Nam', '5000') 73 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST09', 'But long', 'cay', 'Viet Nam', '5000') 74 | INSERT INTO SANPHAM(MASP, TENSP, DVT, NUOCSX, GIA) VALUES('ST10', 'But long', 'cay', 'Trung Quoc', '7000') 75 | GO 76 | 77 | ---------------------------------- HOADON --------------------------------------------- 78 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1001', '23/07/2006', 'KH01', 'NV01', '320000') 79 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1002', '12/08/2006', 'KH01', 'NV02', '840000') 80 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1003', '23/08/2006', 'KH02', 'NV01', '100000') 81 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1004', '01/09/2006', 'KH02', 'NV01', '180000') 82 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1005', '20/10/2006', 'KH01', 'NV02', '3800000') 83 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1006', '16/10/2006', 'KH01', 'NV03', '2430000') 84 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1007', '28/10/2006', 'KH03', 'NV03', '510000') 85 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1008', '28/10/2006', 'KH01', 'NV03', '440000') 86 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1009', '28/10/2006', 'KH03', 'NV04', '200000') 87 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1010', '01/11/2006', 'KH01', 'NV01', '5200000') 88 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1011', '04/11/2006', 'KH04', 'NV03', '250000') 89 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1012', '30/11/2006', 'KH05', 'NV03', '21000') 90 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1013', '12/12/2006', 'KH06', 'NV01', '5000') 91 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1014', '31/12/2006', 'KH03', 'NV02', '3150000') 92 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1015', '01/01/2007', 'KH06', 'NV02', '910000') 93 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1016', '01/01/2007', 'KH07', 'NV02', '12500') 94 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1017', '02/01/2007', 'KH08', 'NV03', '35000') 95 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1018', '13/01/2007', 'KH01', 'NV03', '330000') 96 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1019', '13/01/2007', 'KH01', 'NV03', '30000') 97 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1020', '14/01/2007', 'KH09', 'NV04', '70000') 98 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1021', '16/01/2007', 'KH10', 'NV03', '67500') 99 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1022', '16/01/2007', NULL, 'NV03', '7000') 100 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1023', '17/01/2007', NULL, 'NV01', '330000') 101 | GO 102 | 103 | ----------------------------------- CTHD ---------------------------------------------- 104 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1001', 'TV02', '10') 105 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1001', 'ST01', '5') 106 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1001', 'BC01', '5') 107 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1001', 'BC02', '10') 108 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1001', 'ST08', '10') 109 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1001', 'BC04', '20') 110 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1002', 'BB01', '20') 111 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1002', 'BB02', '20') 112 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1003', 'BB03', '10') 113 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1004', 'TV01', '20') 114 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1004', 'TV02', '10') 115 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1004', 'TV03', '10') 116 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1004', 'TV04', '10') 117 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1005', 'TV05', '50') 118 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1005', 'TV06', '50') 119 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1006', 'TV07', '20') 120 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1006', 'ST01', '30') 121 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1006', 'ST02', '10') 122 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1007', 'ST03', '10') 123 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1008', 'ST04', '8') 124 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1009', 'ST05', '10') 125 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1010', 'TV07', '50') 126 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1010', 'ST07', '50') 127 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1010', 'ST08', '100') 128 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1010', 'ST04', '50') 129 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1010', 'TV03', '100') 130 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1011', 'ST06', '50') 131 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1012', 'ST07', '3') 132 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1013', 'ST08', '5') 133 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1014', 'BC02', '80') 134 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1014', 'BB02', '100') 135 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1014', 'BC04', '60') 136 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1014', 'BB01', '50') 137 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1015', 'BB02', '30') 138 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1015', 'BB03', '7') 139 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1016', 'TV01', '5') 140 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1017', 'TV02', '1') 141 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1017', 'TV03', '1') 142 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1017', 'TV04', '5') 143 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1018', 'ST04', '6') 144 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1019', 'ST05', '1') 145 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1019', 'ST06', '2') 146 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1020', 'ST07', '10') 147 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1021', 'ST08', '5') 148 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1021', 'TV01', '7') 149 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1021', 'TV02', '10') 150 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1022', 'ST07', '1') 151 | INSERT INTO CTHD(SOHD, MASP, SL) VALUES('1023', 'ST04', '6') 152 | GO 153 | 154 | -- 2. Tạo quan hệ SANPHAM1 chứa toàn bộ dữ liệu của quan hệ SANPHAM. Tạo quan hệ KHACHHANG1 chứa toàn bộ dữ liệu của quan hệ KHACHHANG. 155 | SELECT * INTO SANPHAM1 FROM SANPHAM 156 | SELECT * INTO KHACHHANG1 FROM KHACHHANG 157 | 158 | -- DROP TABLE SANPHAM1 159 | -- DROP TABLE KHACHHANG1 160 | 161 | -- DELETE FROM SANPHAM1 162 | -- DELETE FROM KHACHHANG1 163 | 164 | -- SELECT * FROM SANPHAM1 165 | -- SELECT * FROM KHACHHANG1 166 | GO 167 | 168 | -- 3. Cập nhật giá tăng 5% đối với những sản phẩm do “Thai Lan” sản xuất (cho quan hệ SANPHAM1) 169 | UPDATE SANPHAM1 SET GIA += GIA * 0.05 170 | WHERE NUOCSX = 'Thai Lan' 171 | GO 172 | 173 | -- 4. Cập nhật giá giảm 5% đối với những sản phẩm do “Trung Quoc” sản xuất có giá từ 10.000 trở xuống (cho quan hệ SANPHAM1). 174 | UPDATE SANPHAM1 SET GIA -= GIA * 0.05 175 | WHERE NUOCSX = 'Trung Quoc' AND GIA <= 10000 176 | GO 177 | 178 | /* 5. Cập nhật giá trị LOAIKH là “Vip” đối với những khách hàng đăng ký thành viên trước ngày 1/1/2007 có doanh số từ 179 | 10.000.000 trở lên hoặc khách hàng đăng ký thành viên từ 1/1/2007 trở về sau có doanh số từ 2.000.000 trở lên (cho quan hệ KHACHHANG1) */ 180 | UPDATE KHACHHANG1 SET LOAIKH = 'VIP' 181 | WHERE (NGDK < '1/1/2007' AND DOANHSO >= 10000000) OR (NGDK > '1/1/2007' AND DOANHSO >= 2000000) 182 | GO 183 | 184 | -- III. Ngôn ngữ truy vấn dữ liệu có cấu trúc: 185 | -- 1. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất. 186 | SELECT MASP, TENSP FROM SANPHAM 187 | WHERE NUOCSX = 'Trung Quoc' 188 | GO 189 | 190 | -- 2. In ra danh sách các sản phẩm (MASP,TENSP) có đơn vị tính là “cay”, ”quyen”. 191 | SELECT MASP, TENSP FROM SANPHAM 192 | WHERE DVT IN ('cay', 'quyen') 193 | GO 194 | 195 | -- 3. In ra danh sách các sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu là “B” và kết thúc là “01”. 196 | SELECT MASP, TENSP FROM SANPHAM 197 | WHERE LEFT(MASP, 1) = 'B' AND RIGHT(MASP, 2) = '01' 198 | GO 199 | 200 | -- 4. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000. 201 | SELECT MASP, TENSP FROM SANPHAM 202 | WHERE NUOCSX = 'Trung Quoc' AND GIA BETWEEN 30000 AND 40000 203 | GO 204 | 205 | -- 5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” hoặc “Thai Lan” sản xuất có giá từ 30.000 đến 40.000. 206 | SELECT MASP,TENSP FROM SANPHAM 207 | WHERE (NUOCSX IN ('Trung Quoc', ' Thai Lan')) AND (GIA BETWEEN 30000 AND 40000) 208 | GO 209 | 210 | -- 6. In ra các số hóa đơn, trị giá hóa đơn bán ra trong ngày 1/1/2007 và ngày 2/1/2007. 211 | SELECT SOHD, TRIGIA FROM HOADON 212 | WHERE NGHD IN ('1/1/2007', '2/1/2007') 213 | GO 214 | 215 | -- 7. In ra các số hóa đơn, trị giá hóa đơn trong tháng 1/2007, sắp xếp theo ngày (tăng dần) và trị giá của hóa đơn (giảm dần). 216 | SELECT SOHD, TRIGIA FROM HOADON 217 | WHERE YEAR(NGHD) = 2007 AND MONTH(NGHD) = 1 218 | ORDER BY NGHD ASC, TRIGIA DESC 219 | GO 220 | 221 | -- 8. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007. 222 | SELECT HD.MAKH, HOTEN 223 | FROM HOADON HD INNER JOIN KHACHHANG KH 224 | ON HD.MAKH = KH.MAKH 225 | WHERE NGHD = '1/1/2007' 226 | GO 227 | 228 | -- 9. In ra số hóa đơn, trị giá các hóa đơn do nhân viên có tên “Nguyen Van B” lập trong ngày 28/10/2006. 229 | SELECT HD.SOHD, TRIGIA 230 | FROM HOADON HD INNER JOIN NHANVIEN NV 231 | ON HD.MANV = NV.MANV 232 | WHERE HOTEN = 'Nguyen Van B' AND NGHD = '28/10/2006' 233 | GO 234 | 235 | -- 10. In ra danh sách các sản phẩm (MASP,TENSP) được khách hàng có tên “Nguyen Van A” mua trong tháng 10/2006. 236 | SELECT CT.MASP, TENSP 237 | FROM CTHD CT INNER JOIN SANPHAM SP 238 | ON CT.MASP = SP.MASP 239 | WHERE SOHD IN ( 240 | SELECT SOHD 241 | FROM HOADON HD INNER JOIN KHACHHANG KH 242 | ON HD.MAKH = KH.MAKH 243 | WHERE HOTEN = 'Nguyen Van A' AND YEAR(NGHD) = 2006 AND MONTH(NGHD) = 10 244 | ) 245 | GO 246 | 247 | -- 11. Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”. 248 | SELECT SOHD FROM CTHD WHERE MASP = 'BB01' 249 | UNION 250 | SELECT SOHD FROM CTHD WHERE MASP = 'BB02' 251 | GO 252 | 253 | -------------------------------- QUANLYHOCVU ------------------------------------------ 254 | /* 255 | DROP TABLE KHOA 256 | DROP TABLE MONHOC 257 | DROP TABLE DIEUKIEN 258 | DROP TABLE GIAOVIEN 259 | DROP TABLE LOP 260 | DROP TABLE HOCVIEN 261 | DROP TABLE GIANGDAY 262 | DROP TABLE KETQUATHI 263 | 264 | DELETE FROM KHOA 265 | DELETE FROM MONHOC 266 | DELETE FROM DIEUKIEN 267 | DELETE FROM GIAOVIEN 268 | DELETE FROM LOP 269 | DELETE FROM HOCVIEN 270 | DELETE FROM GIANGDAY 271 | DELETE FROM KETQUATHI 272 | 273 | SELECT * FROM KHOA 274 | SELECT * FROM MONHOC 275 | SELECT * FROM DIEUKIEN 276 | SELECT * FROM GIAOVIEN 277 | SELECT * FROM LOP 278 | SELECT * FROM HOCVIEN 279 | SELECT * FROM GIANGDAY 280 | SELECT * FROM KETQUATHI 281 | */ 282 | GO 283 | 284 | USE QUANLYHOCVU 285 | GO 286 | 287 | -- I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language): 288 | 289 | -- 11. Học viên ít nhất là 18 tuổi. 290 | ALTER TABLE HOCVIEN ADD CONSTRAINT CK_TUOI CHECK(GETDATE() - NGSINH >= 18) 291 | GO 292 | 293 | -- 12. Giảng dạy một môn học ngày bắt đầu (TUNGAY) phải nhỏ hơn ngày kết thúc (DENNGAY). 294 | ALTER TABLE GIANGDAY ADD CONSTRAINT CK_NGAY CHECK(TUNGAY < DENNGAY) 295 | GO 296 | 297 | -- 13. Giáo viên khi vào làm ít nhất là 22 tuổi. 298 | ALTER TABLE GIAOVIEN ADD CONSTRAINT CK_NGVL CHECK(GETDATE() - NGVL >= 22) 299 | GO 300 | 301 | -- 14. Tất cả các môn học đều có số tín chỉ lý thuyết và tín chỉ thực hành chênh lệch nhau không quá 3. 302 | ALTER TABLE MONHOC ADD CONSTRAINT CK_TC CHECK(ABS(TCLT - TCTH) <= 3) 303 | GO 304 | 305 | ----------------------------------- KHOA ---------------------------------------------- 306 | /* 307 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'KHMT', N'Khoa hoc may tinh', CAST(N'2005-06-07T00:00:00.000' AS DateTime), N'GV01') 308 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'HTTT', N'He thong thong tin', CAST(N'2005-06-07T00:00:00.000' AS DateTime), N'GV02') 309 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'CNPM', N'Cong nghe phan mem', CAST(N'2005-06-07T00:00:00.000' AS DateTime), N'GV04') 310 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'MTT', N'Mang va truyen thong', CAST(N'2005-10-20T00:00:00.000' AS DateTime), N'GV03') 311 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'KTMT', N'Ky thuat may tinh', CAST(N'2005-12-20T00:00:00.000' AS DateTime), N'Null') 312 | */ 313 | 314 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'KHMT', N'Khoa hoc may tinh', CAST(N'2005-06-07T00:00:00.000' AS DateTime), NULL) 315 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'HTTT', N'He thong thong tin', CAST(N'2005-06-07T00:00:00.000' AS DateTime), NULL) 316 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'CNPM', N'Cong nghe phan mem', CAST(N'2005-06-07T00:00:00.000' AS DateTime), NULL) 317 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'MTT', N'Mang va truyen thong', CAST(N'2005-10-20T00:00:00.000' AS DateTime), NULL) 318 | INSERT KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) VALUES (N'KTMT', N'Ky thuat may tinh', CAST(N'2005-12-20T00:00:00.000' AS DateTime), NULL) 319 | GO 320 | 321 | ---------------------------------- MONHOC --------------------------------------------- 322 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'THDC', N'Tin hoc dai cuong', 4, 1, N'KHMT') 323 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'CTRR', N'Cau truc roi rac', 5, 0, N'KHMT') 324 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'CSDL', N'Co so du lieu', 3, 1, N'HTTT') 325 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'CTDLGT', N'Cau truc du lieu va giai thuat', 3, 1, N'KHMT') 326 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'PTTKTT', N'Phan tich thiet ke thuat toan', 3, 0, N'KHMT') 327 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'DHMT', N'Do hoa may tinh', 3, 1, N'KHMT') 328 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'KTMT', N'Kien truc may tinh', 3, 0, N'KTMT') 329 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'TKCSDL', N'Thiet ke co so du lieu', 3, 1, N'HTTT') 330 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'PTTKHTTT', N'Phan tich thiet ke he thong thong tin', 4, 1, N'HTTT') 331 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'HDH', N'He dieu hanh', 4, 0, N'KTMT') 332 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'NMCNPM', N'Nhap mon cong nghe phan mem', 3, 0, N'CNPM') 333 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'LTCFW', N'Lap trinh C for win', 3, 1, N'CNPM') 334 | INSERT MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) VALUES (N'LTHDT', N'Lap trinh huong doi tuong', 3, 1, N'CNPM') 335 | GO 336 | 337 | --------------------------------- DIEUKIEN -------------------------------------------- 338 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'CSDL', N'CTRR') 339 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'CSDL', N'CTDLGT') 340 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'CTDLGT', N'THDC') 341 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'PTTKTT', N'THDC') 342 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'PTTKTT', N'CTDLGT') 343 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'DHMT', N'THDC') 344 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'LTHDT', N'THDC') 345 | INSERT DIEUKIEN (MAMH, MAMH_TRUOC) VALUES (N'PTTKHTTT', N'CSDL') 346 | GO 347 | 348 | --------------------------------- GIAOVIEN -------------------------------------------- 349 | /* 350 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV01', N'Ho Thanh Son', N'PTS', N'GS', N'Nam', CAST(N'1950-05-02T00:00:00.000' AS DateTime), CAST(N'2004-01-11T00:00:00.000' AS DateTime), 5, 2250000, N'KHMT') 351 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV02', N'Tran Tam Thanh', N'TS', N'PGS', N'Nam', CAST(N'1965-12-17T00:00:00.000' AS DateTime), CAST(N'2004-04-20T00:00:00.000' AS DateTime), 4.5, 2025000, N'HTTT') 352 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV03', N'Do Nghiem Phung', N'TS', N'GS', N'Nu', CAST(N'1950-08-01T00:00:00.000' AS DateTime), CAST(N'2004-09-23T00:00:00.000' AS DateTime), 4, 1800000, N'CNPM') 353 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV04', N'Tran Nam Son', N'TS', N'PGS', N'Nam', CAST(N'1961-02-22T00:00:00.000' AS DateTime), CAST(N'2005-01-12T00:00:00.000' AS DateTime), 4.5, 2025000, N'KTMT') 354 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV05', N'Mai Thanh Danh', N'ThS', N'GV', N'Nam', CAST(N'1958-03-12T00:00:00.000' AS DateTime), CAST(N'2005-01-12T00:00:00.000' AS DateTime), 3, 1350000, N'HTTT') 355 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV06', N'Tran Doan Hung', N'TS', N'GV', N'Nam', CAST(N'1953-03-11T00:00:00.000' AS DateTime), CAST(N'2005-01-12T00:00:00.000' AS DateTime), 4.5, 2025000, N'KHMT') 356 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV07', N'Nguyen Minh Tien', N'ThS', N'GV', N'Nam', CAST(N'1971-11-23T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 4, 1800000, N'KHMT') 357 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV08', N'Le Thi Tran', N'KS', N'Null', N'Nu', CAST(N'1974-03-26T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 1.69, 760500, N'KHMT') 358 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV09', N'Nguyen To Lan', N'ThS', N'GV', N'Nu', CAST(N'1966-12-31T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 4, 1800000, N'HTTT') 359 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV10', N'Le Tran Anh Loan', N'KS', N'Null', N'Nu', CAST(N'1972-07-17T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 1.86, 837000, N'CNPM') 360 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV11', N'Ho Thanh Tung', N'CN', N'GV', N'Nam', CAST(N'1980-01-12T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 2.67, 1201500, N'MTT') 361 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV12', N'Tran Van Anh', N'CN', N'Null', N'Nu', CAST(N'1981-03-29T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 1.69, 760500, N'CNPM') 362 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV13', N'Nguyen Linh Dan', N'CN', N'Null', N'Nu', CAST(N'1980-05-23T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 1.69, 760500, N'KTMT') 363 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV14', N'Truong Minh Chau', N'ThS', N'GV', N'Nu', CAST(N'1976-11-30T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 3, 1350000, N'MTT') 364 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV15', N'Le Ha Thanh', N'ThS', N'GV', N'Nam', CAST(N'1978-05-04T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 3, 1350000, N'KHMT') 365 | */ 366 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV01', N'Ho Thanh Son', N'PTS', N'GS', N'Nam', CAST(N'1950-05-02T00:00:00.000' AS DateTime), CAST(N'2004-01-11T00:00:00.000' AS DateTime), 5, 2250000, NULL) 367 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV02', N'Tran Tam Thanh', N'TS', N'PGS', N'Nam', CAST(N'1965-12-17T00:00:00.000' AS DateTime), CAST(N'2004-04-20T00:00:00.000' AS DateTime), 4.5, 2025000, NULL) 368 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV03', N'Do Nghiem Phung', N'TS', N'GS', N'Nu', CAST(N'1950-08-01T00:00:00.000' AS DateTime), CAST(N'2004-09-23T00:00:00.000' AS DateTime), 4, 1800000, NULL) 369 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV04', N'Tran Nam Son', N'TS', N'PGS', N'Nam', CAST(N'1961-02-22T00:00:00.000' AS DateTime), CAST(N'2005-01-12T00:00:00.000' AS DateTime), 4.5, 2025000, NULL) 370 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV05', N'Mai Thanh Danh', N'ThS', N'GV', N'Nam', CAST(N'1958-03-12T00:00:00.000' AS DateTime), CAST(N'2005-01-12T00:00:00.000' AS DateTime), 3, 1350000, NULL) 371 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV06', N'Tran Doan Hung', N'TS', N'GV', N'Nam', CAST(N'1953-03-11T00:00:00.000' AS DateTime), CAST(N'2005-01-12T00:00:00.000' AS DateTime), 4.5, 2025000, NULL) 372 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV07', N'Nguyen Minh Tien', N'ThS', N'GV', N'Nam', CAST(N'1971-11-23T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 4, 1800000, NULL) 373 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV08', N'Le Thi Tran', N'KS', N'Null', N'Nu', CAST(N'1974-03-26T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 1.69, 760500, NULL) 374 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV09', N'Nguyen To Lan', N'ThS', N'GV', N'Nu', CAST(N'1966-12-31T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 4, 1800000, NULL) 375 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV10', N'Le Tran Anh Loan', N'KS', N'Null', N'Nu', CAST(N'1972-07-17T00:00:00.000' AS DateTime), CAST(N'2005-03-01T00:00:00.000' AS DateTime), 1.86, 837000, NULL) 376 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV11', N'Ho Thanh Tung', N'CN', N'GV', N'Nam', CAST(N'1980-01-12T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 2.67, 1201500, NULL) 377 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV12', N'Tran Van Anh', N'CN', N'Null', N'Nu', CAST(N'1981-03-29T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 1.69, 760500, NULL) 378 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV13', N'Nguyen Linh Dan', N'CN', N'Null', N'Nu', CAST(N'1980-05-23T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 1.69, 760500, NULL) 379 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV14', N'Truong Minh Chau', N'ThS', N'GV', N'Nu', CAST(N'1976-11-30T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 3, 1350000, NULL) 380 | INSERT GIAOVIEN (MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) VALUES (N'GV15', N'Le Ha Thanh', N'ThS', N'GV', N'Nam', CAST(N'1978-05-04T00:00:00.000' AS DateTime), CAST(N'2005-05-15T00:00:00.000' AS DateTime), 3, 1350000, NULL) 381 | GO 382 | 383 | ----------------------------------- LOP ----------------------------------------------- 384 | INSERT LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN) VALUES (N'K11', N'Lop 1 khoa 1', N'K1108', 11, N'GV07') 385 | INSERT LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN) VALUES (N'K12', N'Lop 2 khoa 1', N'K1205', 12, N'GV09') 386 | INSERT LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN) VALUES (N'K13', N'Lop 3 khoa 1', N'K1305', 12, N'GV14') 387 | GO 388 | 389 | --------------------------------- HOCVIEN --------------------------------------------- 390 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1101', N'Nguyen Van', N'A', CAST(N'1986-01-27T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K11') 391 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1102', N'Tran Ngoc', N'Han', CAST(N'1986-03-14T00:00:00.000' AS DateTime), N'Nu', N'Kien Giang', N'K11') 392 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1103', N'Ha Duy', N'Lap', CAST(N'1986-04-18T00:00:00.000' AS DateTime), N'Nam', N'Nghe An', N'K11') 393 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1104', N'Tran Ngoc', N'Linh', CAST(N'1986-03-30T00:00:00.000' AS DateTime), N'Nu', N'Tay Ninh', N'K11') 394 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1105', N'Tran Minh', N'Long', CAST(N'1986-02-27T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K11') 395 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1106', N'Le Nhat', N'Minh', CAST(N'1986-01-24T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K11') 396 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1107', N'Nguyen Nhu', N'Nhut', CAST(N'1986-01-27T00:00:00.000' AS DateTime), N'Nam', N'Ha Noi', N'K11') 397 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1108', N'Nguyen Manh', N'Tam', CAST(N'1986-02-27T00:00:00.000' AS DateTime), N'Nam', N'Kien Giang', N'K11') 398 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1109', N'Phan Thi Thanh', N'Tam', CAST(N'1986-01-27T00:00:00.000' AS DateTime), N'Nu', N'Vinh Long', N'K11') 399 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1110', N'Le Hoai', N'Thuong', CAST(N'1986-02-05T00:00:00.000' AS DateTime), N'Nu', N'Can Tho', N'K11') 400 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1111', N'Le Ha', N'Vinh', CAST(N'1986-12-25T00:00:00.000' AS DateTime), N'Nam', N'Vinh Long', N'K11') 401 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1201', N'Nguyen Van', N'B', CAST(N'1986-02-11T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K12') 402 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1202', N'Nguyen Thi Kim', N'Duyen', CAST(N'1986-01-18T00:00:00.000' AS DateTime), N'Nu', N'TpHCM', N'K12') 403 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1203', N'Tran Thi Kim', N'Duyen', CAST(N'1986-09-17T00:00:00.000' AS DateTime), N'Nu', N'TpHCM', N'K12') 404 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1204', N'Truong My', N'Hanh', CAST(N'1986-05-19T00:00:00.000' AS DateTime), N'Nu', N'Dong Nai', N'K12') 405 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1205', N'Nguyen Thanh', N'Nam', CAST(N'1986-04-17T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K12') 406 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1206', N'Nguyen Thi Truc', N'Thanh', CAST(N'1986-03-04T00:00:00.000' AS DateTime), N'Nu', N'Kien Giang', N'K12') 407 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1207', N'Tran Thi Bich', N'Thuy', CAST(N'1986-02-08T00:00:00.000' AS DateTime), N'Nu', N'Nghe An', N'K12') 408 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1208', N'Huynh Thi Kim', N'Trieu', CAST(N'1986-04-08T00:00:00.000' AS DateTime), N'Nu', N'Tay Ninh', N'K12') 409 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1209', N'Pham Thanh', N'Trieu', CAST(N'1986-02-23T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K12') 410 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1210', N'Ngo Thanh', N'Tuan', CAST(N'1986-02-14T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K12') 411 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1211', N'Do Thi', N'Xuan', CAST(N'1986-03-09T00:00:00.000' AS DateTime), N'Nu', N'Ha Noi', N'K12') 412 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1212', N'Le Thi Phi', N'Yen', CAST(N'1986-03-12T00:00:00.000' AS DateTime), N'Nu', N'TpHCM', N'K12') 413 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1301', N'Nguyen Thi Kim', N'Cuc', CAST(N'1986-06-09T00:00:00.000' AS DateTime), N'Nu', N'Kien Giang', N'K13') 414 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1302', N'Truong Thi My', N'Hien', CAST(N'1986-03-18T00:00:00.000' AS DateTime), N'Nu', N'Nghe An', N'K13') 415 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1303', N'Le Duc', N'Hien', CAST(N'1986-03-21T00:00:00.000' AS DateTime), N'Nam', N'Tay Ninh', N'K13') 416 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1304', N'Le Quang', N'Hien', CAST(N'1986-04-18T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K13') 417 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1305', N'Le Thi', N'Huong', CAST(N'1986-03-27T00:00:00.000' AS DateTime), N'Nu', N'TpHCM', N'K13') 418 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1306', N'Nguyen Thai', N'Huu', CAST(N'1986-03-30T00:00:00.000' AS DateTime), N'Nam', N'Ha Noi', N'K13') 419 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1307', N'Tran Minh', N'Man', CAST(N'1986-05-28T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K13') 420 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1308', N'Nguyen Hieu', N'Nghia', CAST(N'1986-04-08T00:00:00.000' AS DateTime), N'Nam', N'Kien Giang', N'K13') 421 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1309', N'Nguyen Trung', N'Nghia', CAST(N'1987-01-18T00:00:00.000' AS DateTime), N'Nam', N'Nghe An', N'K13') 422 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1310', N'Tran Thi Hong', N'Tham', CAST(N'1986-04-22T00:00:00.000' AS DateTime), N'Nu', N'Tay Ninh', N'K13') 423 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1311', N'Tran Minh', N'Thuc', CAST(N'1986-04-04T00:00:00.000' AS DateTime), N'Nam', N'TpHCM', N'K13') 424 | INSERT HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) VALUES (N'K1312', N'Nguyen Thi Kim', N'Yen', CAST(N'1986-09-07T00:00:00.000' AS DateTime), N'Nu', N'TpHCM', N'K13') 425 | GO 426 | 427 | --------------------------------- GIANGDAY -------------------------------------------- 428 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K11', N'THDC', N'GV07', 1, 2006, CAST(N'2006-01-02T00:00:00.000' AS DateTime), CAST(N'2006-05-12T00:00:00.000' AS DateTime)) 429 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K12', N'THDC', N'GV06', 1, 2006, CAST(N'2006-01-02T00:00:00.000' AS DateTime), CAST(N'2006-05-12T00:00:00.000' AS DateTime)) 430 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K13', N'THDC', N'GV15', 1, 2006, CAST(N'2006-01-02T00:00:00.000' AS DateTime), CAST(N'2006-05-12T00:00:00.000' AS DateTime)) 431 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K11', 'CTRR', N'GV02', 1, 2006, CAST(N'2006-01-09T00:00:00.000' AS DateTime), CAST(N'2006-05-17T00:00:00.000' AS DateTime)) 432 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K12', N'CTRR', N'GV02', 1, 2006, CAST(N'2006-01-09T00:00:00.000' AS DateTime), CAST(N'2006-05-17T00:00:00.000' AS DateTime)) 433 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K13', N'CTRR', N'GV08', 1, 2006, CAST(N'2006-01-09T00:00:00.000' AS DateTime), CAST(N'2006-05-17T00:00:00.000' AS DateTime)) 434 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K11', N'CSDL', N'GV05', 2, 2006, CAST(N'2006-06-01T00:00:00.000' AS DateTime), CAST(N'2006-07-15T00:00:00.000' AS DateTime)) 435 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K12', N'CSDL', N'GV09', 2, 2006, CAST(N'2006-06-01T00:00:00.000' AS DateTime), CAST(N'2006-07-15T00:00:00.000' AS DateTime)) 436 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K13', N'CTDLGT', N'GV15', 2, 2006, CAST(N'2006-06-01T00:00:00.000' AS DateTime), CAST(N'2006-07-15T00:00:00.000' AS DateTime)) 437 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K13', N'CSDL', N'GV05', 3, 2006, CAST(N'2006-08-01T00:00:00.000' AS DateTime), CAST(N'2006-12-15T00:00:00.000' AS DateTime)) 438 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K13', N'DHMT', N'GV07', 3, 2006, CAST(N'2006-08-01T00:00:00.000' AS DateTime), CAST(N'2006-12-15T00:00:00.000' AS DateTime)) 439 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K11', N'CTDLGT', N'GV15', 3, 2006, CAST(N'2006-08-01T00:00:00.000' AS DateTime), CAST(N'2006-12-15T00:00:00.000' AS DateTime)) 440 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K12', N'CTDLGT', N'GV15', 3, 2006, CAST(N'2006-08-01T00:00:00.000' AS DateTime), CAST(N'2006-12-15T00:00:00.000' AS DateTime)) 441 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K11', N'HDH', N'GV04', 1, 2007, CAST(N'2007-01-02T00:00:00.000' AS DateTime), CAST(N'2007-02-18T00:00:00.000' AS DateTime)) 442 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K12', N'HDH', N'GV04', 1, 2007, CAST(N'2007-01-02T00:00:00.000' AS DateTime), CAST(N'2007-03-20T00:00:00.000' AS DateTime)) 443 | INSERT GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) VALUES (N'K11', N'DHMT', N'GV07', 1, 2007, CAST(N'2007-02-18T00:00:00.000' AS DateTime), CAST(N'2007-03-20T00:00:00.000' AS DateTime)) 444 | GO 445 | 446 | --------------------------------- KETQUATHI ------------------------------------------- 447 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1101', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 10, N'Dat') 448 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1101', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 9, N'Dat') 449 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1101', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 9, N'Dat') 450 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1101', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 9.5, N'Dat') 451 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 4, N'Khong Dat') 452 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'CSDL', 2, CAST(N'2006-07-27T00:00:00.000' AS DateTime), 4.25, N'Khong Dat') 453 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'CSDL', 3, CAST(N'2006-08-10T00:00:00.000' AS DateTime), 4.5, N'Khong Dat') 454 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 4.5, N'Khong Dat') 455 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'CTDLGT', 2, CAST(N'2007-01-05T00:00:00.000' AS DateTime), 4, N'Khong Dat') 456 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'CTDLGT', 3, CAST(N'2007-01-15T00:00:00.000' AS DateTime), 6, N'Dat') 457 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 5, N'Dat') 458 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1102', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 7, N'Dat') 459 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1103', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 3.5, N'Khong Dat') 460 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1103', N'CSDL', 2, CAST(N'2006-07-27T00:00:00.000' AS DateTime), 8.25, N'Dat') 461 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1103', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 7, N'Dat') 462 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1103', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 8, N'Dat') 463 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1103', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 6.5, N'Dat') 464 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1104', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 3.75, N'Khong Dat') 465 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1104', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 4, N'Khong Dat') 466 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1104', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 4, N'Khong Dat') 467 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1104', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 4, N'Khong Dat') 468 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1104', N'CTRR', 2, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 3.5, N'Khong Dat') 469 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1104', N'CTRR', 3, CAST(N'2006-06-30T00:00:00.000' AS DateTime), 4, N'Khong Dat') 470 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1201', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 6, N'Dat') 471 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1201', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 5, N'Dat') 472 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1201', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 8.5, N'Dat') 473 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1201', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 9, N'Dat') 474 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 8, N'Dat') 475 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 4, N'Khong Dat') 476 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'CTDLGT', 2, CAST(N'2007-01-05T00:00:00.000' AS DateTime), 5, N'Dat') 477 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 4, N'Khong Dat') 478 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'THDC', 2, CAST(N'2006-05-27T00:00:00.000' AS DateTime), 4, N'Khong Dat') 479 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 3, N'Khong Dat') 480 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'CTRR', 2, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 4, N'Khong Dat') 481 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1202', N'CTRR', 3, CAST(N'2006-06-30T00:00:00.000' AS DateTime), 6.25, N'Dat') 482 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1203', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 9.25, N'Dat') 483 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1203', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 9.5, N'Dat') 484 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1203', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 10, N'Dat') 485 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1203', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 10, N'Dat') 486 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1204', N'CSDL', 1, CAST(N'2006-07-20T00:00:00.000' AS DateTime), 8.5, N'Dat') 487 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1204', N'CTDLGT', 1, CAST(N'2006-12-28T00:00:00.000' AS DateTime), 6.75, N'Dat') 488 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1204', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 4, N'Khong Dat') 489 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1204', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 6, N'Dat') 490 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1301', N'CSDL', 1, CAST(N'2006-12-20T00:00:00.000' AS DateTime), 4.25, N'Khong Dat') 491 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1301', N'CTDLGT', 1, CAST(N'2006-07-25T00:00:00.000' AS DateTime), 8, N'Dat') 492 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1301', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 7.75, N'Dat') 493 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1301', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 8, N'Dat') 494 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1302', N'CSDL', 1, CAST(N'2006-12-20T00:00:00.000' AS DateTime), 6.75, N'Dat') 495 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1302', N'CTDLGT', 1, CAST(N'2006-07-25T00:00:00.000' AS DateTime), 5, N'Dat') 496 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1302', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 8, N'Dat') 497 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1302', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 8.5, N'Dat') 498 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1303', N'CSDL', 1, CAST(N'2006-12-20T00:00:00.000' AS DateTime), 4, N'Khong Dat') 499 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1303', N'CTDLGT', 1, CAST(N'2006-07-25T00:00:00.000' AS DateTime), 4.5, N'Khong Dat') 500 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1303', N'CTDLGT', 2, CAST(N'2006-08-07T00:00:00.000' AS DateTime), 4, N'Khong Dat') 501 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1303', N'CTDLGT', 3, CAST(N'2006-08-15T00:00:00.000' AS DateTime), 4.25, N'Khong Dat') 502 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1303', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 4.5, N'Khong Dat') 503 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1303', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 3.25, N'Khong Dat') 504 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1303', N'CTRR', 2, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 5, N'Dat') 505 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1304', N'CSDL', 1, CAST(N'2006-12-20T00:00:00.000' AS DateTime), 7.75, N'Dat') 506 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1304', N'CTDLGT', 1, CAST(N'2006-07-25T00:00:00.000' AS DateTime), 9.75, N'Dat') 507 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1304', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 5.5, N'Dat') 508 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1304', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 5, N'Dat') 509 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1305', N'CSDL', 1, CAST(N'2006-12-20T00:00:00.000' AS DateTime), 9.25, N'Dat') 510 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1305', N'CTDLGT', 1, CAST(N'2006-07-25T00:00:00.000' AS DateTime), 10, N'Dat') 511 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1305', N'THDC', 1, CAST(N'2006-05-20T00:00:00.000' AS DateTime), 8, N'Dat') 512 | INSERT KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA) VALUES (N'K1305', N'CTRR', 1, CAST(N'2006-05-13T00:00:00.000' AS DateTime), 10, N'Dat') 513 | GO 514 | 515 | UPDATE KHOA SET TRGKHOA = N'GV01' WHERE MAKHOA = N'KHMT' 516 | UPDATE KHOA SET TRGKHOA = N'GV02' WHERE MAKHOA = N'HTTT' 517 | UPDATE KHOA SET TRGKHOA = N'GV03' WHERE MAKHOA = N'CNPM' 518 | UPDATE KHOA SET TRGKHOA = N'GV04' WHERE MAKHOA = N'MTT' 519 | UPDATE KHOA SET TRGKHOA = N'Null' WHERE MAKHOA = N'KTMT' 520 | 521 | UPDATE GIAOVIEN SET MAKHOA = N'KHMT' WHERE MAGV = N'GV01' 522 | UPDATE GIAOVIEN SET MAKHOA = N'HTTT' WHERE MAGV = N'GV02' 523 | UPDATE GIAOVIEN SET MAKHOA = N'CNPM' WHERE MAGV = N'GV03' 524 | UPDATE GIAOVIEN SET MAKHOA = N'KTMT' WHERE MAGV = N'GV04' 525 | UPDATE GIAOVIEN SET MAKHOA = N'HTTT' WHERE MAGV = N'GV05' 526 | UPDATE GIAOVIEN SET MAKHOA = N'KHMT' WHERE MAGV = N'GV06' 527 | UPDATE GIAOVIEN SET MAKHOA = N'KHMT' WHERE MAGV = N'GV07' 528 | UPDATE GIAOVIEN SET MAKHOA = N'KHMT' WHERE MAGV = N'GV08' 529 | UPDATE GIAOVIEN SET MAKHOA = N'HTTT' WHERE MAGV = N'GV09' 530 | UPDATE GIAOVIEN SET MAKHOA = N'CNPM' WHERE MAGV = N'GV10' 531 | UPDATE GIAOVIEN SET MAKHOA = N'MTT' WHERE MAGV = N'GV11' 532 | UPDATE GIAOVIEN SET MAKHOA = N'CNPM' WHERE MAGV = N'GV12' 533 | UPDATE GIAOVIEN SET MAKHOA = N'KTMT' WHERE MAGV = N'GV13' 534 | UPDATE GIAOVIEN SET MAKHOA = N'MTT' WHERE MAGV = N'GV14' 535 | UPDATE GIAOVIEN SET MAKHOA = N'KHMT' WHERE MAGV = N'GV15' 536 | 537 | -- III. Ngôn ngữ truy vấn dữ liệu: 538 | -- 1. In ra danh sách (mã học viên, họ tên, ngày sinh, mã lớp) lớp trưởng của các lớp. 539 | SELECT HV.MAHV, HO + ' ' + TEN AS HOTEN, NGSINH, HV.MALOP 540 | FROM HOCVIEN HV INNER JOIN LOP 541 | ON HV.MAHV = LOP.TRGLOP 542 | GO 543 | 544 | -- 2. In ra bảng điểm khi thi (mã học viên, họ tên , lần thi, điểm số) môn CTRR của lớp “K12”, sắp xếp theo tên, họ học viên. 545 | SELECT KQ.MAHV, HO + ' ' + TEN AS HOTEN, LANTHI, DIEM 546 | FROM KETQUATHI KQ INNER JOIN HOCVIEN HV 547 | ON KQ.MAHV = HV.MAHV 548 | WHERE LEFT(KQ.MAHV, 3) = 'K12' AND MAMH = 'CTRR' 549 | ORDER BY TEN, HO 550 | GO 551 | 552 | -- 3. In ra danh sách những học viên (mã học viên, họ tên) và những môn học mà học viên đó thi lần thứ nhất đã đạt. 553 | SELECT KQ.MAHV, HO + ' ' + TEN AS HOTEN, MAMH 554 | FROM KETQUATHI KQ INNER JOIN HOCVIEN HV 555 | ON KQ.MAHV = HV.MAHV 556 | GROUP BY KQ.MAHV, HO, TEN, MAMH, KQUA 557 | HAVING MAX(LANTHI) = 1 AND KQUA ='DAT' 558 | ORDER BY KQ.MAHV 559 | GO 560 | 561 | -- 4. In ra danh sách học viên (mã học viên, họ tên) của lớp “K11” thi môn CTRR không đạt (ở lần thi 1). 562 | SELECT KQ.MAHV, HO + ' ' + TEN AS HOTEN 563 | FROM KETQUATHI KQ INNER JOIN HOCVIEN HV 564 | ON KQ.MAHV = HV.MAHV 565 | WHERE LEFT(KQ.MAHV, 3) = 'K11' AND MAMH = 'CTRR' AND LANTHI = 1 AND KQUA = 'Khong Dat' 566 | GO 567 | 568 | -- 5. * Danh sách học viên (mã học viên, họ tên) của lớp “K” thi môn CTRR không đạt (ở tất cả các lần thi). 569 | SELECT A.MAHV, HOTEN FROM ( 570 | SELECT KQ.MAHV, HO + ' ' + TEN AS HOTEN, LANTHI 571 | FROM KETQUATHI KQ INNER JOIN HOCVIEN HV 572 | ON KQ.MAHV = HV.MAHV 573 | WHERE LEFT(KQ.MAHV, 3) = 'K11' AND MAMH = 'CTRR' AND KQUA = 'Khong Dat' 574 | ) A 575 | INNER JOIN ( 576 | SELECT MAHV, MAX(LANTHI) LANTHIMAX FROM KETQUATHI 577 | WHERE LEFT(MAHV, 3) = 'K11' AND MAMH = 'CTRR' 578 | GROUP BY MAHV, MAMH 579 | ) B 580 | ON A.MAHV = B.MAHV 581 | WHERE LANTHI = LANTHIMAX 582 | GO -------------------------------------------------------------------------------- /Tuan 02/[2016]TH_CSDL_Tuan02.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/Tuan 02/[2016]TH_CSDL_Tuan02.pdf -------------------------------------------------------------------------------- /Tuan 03/18520339_Buoi3.sql: -------------------------------------------------------------------------------- 1 | ------------------------------ QUANLYBANHANG ------------------------------------------ 2 | /* 3 | DROP TABLE KHACHHANG 4 | DROP TABLE NHANVIEN 5 | DROP TABLE SANPHAM 6 | DROP TABLE HOADON 7 | DROP TABLE CTHD 8 | 9 | DELETE FROM KHACHHANG 10 | DELETE FROM NHANVIEN 11 | DELETE FROM SANPHAM 12 | DELETE FROM HOADON 13 | DELETE FROM CTHD 14 | 15 | SELECT * FROM KHACHHANG 16 | SELECT * FROM NHANVIEN 17 | SELECT * FROM SANPHAM 18 | SELECT * FROM HOADON 19 | SELECT * FROM CTHD 20 | */ 21 | GO 22 | 23 | SET DATEFORMAT DMY; 24 | USE QUANLYBANHANG 25 | GO 26 | 27 | -- III. Ngôn ngữ truy vấn dữ liệu có cấu trúc: 28 | -- 12. Tìm các số hóa đơn đã mua sản phẩm có mã số “BB01” hoặc “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20. 29 | SELECT DISTINCT SOHD FROM CTHD 30 | WHERE MASP IN ('BB01', 'BB02') AND SL BETWEEN 10 AND 20 31 | GO 32 | 33 | -- 13. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”, mỗi sản phẩm mua với số lượng từ 10 đến 20. 34 | SELECT SOHD FROM CTHD 35 | WHERE MASP IN ('BB01', 'BB02') AND SL BETWEEN 10 AND 20 36 | GROUP BY SOHD 37 | HAVING COUNT(DISTINCT MASP) = 2 38 | GO 39 | 40 | -- 14. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007. 41 | SELECT MASP, TENSP 42 | FROM SANPHAM 43 | WHERE NUOCSX = 'Trung Quoc' OR MASP IN ( 44 | SELECT DISTINCT CT.MASP 45 | FROM CTHD CT INNER JOIN HOADON HD 46 | ON CT.SOHD = HD.SOHD 47 | WHERE NGHD = '01/01/2007' 48 | ) 49 | GO 50 | 51 | -- 15. In ra danh sách các sản phẩm (MASP,TENSP) không bán được. 52 | SELECT MASP, TENSP 53 | FROM SANPHAM 54 | WHERE MASP NOT IN ( 55 | SELECT DISTINCT MASP 56 | FROM CTHD 57 | ) 58 | GO 59 | 60 | -- 16. In ra danh sách các sản phẩm (MASP,TENSP) không bán được trong năm 2006. 61 | SELECT MASP, TENSP 62 | FROM SANPHAM 63 | WHERE MASP NOT IN ( 64 | SELECT CT.MASP 65 | FROM CTHD CT INNER JOIN HOADON HD 66 | ON CT.SOHD = HD.SOHD 67 | WHERE YEAR(NGHD) = 2006 68 | ) 69 | GO 70 | 71 | -- 17. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc” sản xuất không bán được trong năm 2006. 72 | SELECT MASP, TENSP 73 | FROM SANPHAM 74 | WHERE NUOCSX = 'Trung Quoc' AND MASP NOT IN ( 75 | SELECT DISTINCT CT.MASP 76 | FROM CTHD CT INNER JOIN HOADON HD 77 | ON CT.SOHD = HD.SOHD 78 | WHERE YEAR(NGHD) = 2006 79 | ) 80 | GO 81 | 82 | -- 18. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất. 83 | SELECT CT.SOHD 84 | FROM CTHD CT INNER JOIN SANPHAM SP 85 | ON CT.MASP = SP.MASP 86 | WHERE NUOCSX = 'Singapore' 87 | GROUP BY CT.SOHD 88 | HAVING COUNT(DISTINCT CT.MASP) = ( 89 | SELECT COUNT(MASP) 90 | FROM SANPHAM 91 | WHERE NUOCSX = 'Singapore' 92 | ) 93 | GO 94 | 95 | -- 19. Tìm số hóa đơn trong năm 2006 đã mua ít nhất tất cả các sản phẩm do Singapore sản xuất. 96 | SELECT SOHD 97 | FROM HOADON 98 | WHERE YEAR(NGHD) = 2006 AND SOHD IN ( 99 | SELECT CT.SOHD 100 | FROM CTHD CT INNER JOIN SANPHAM SP 101 | ON CT.MASP = SP.MASP 102 | WHERE NUOCSX = 'Singapore' 103 | GROUP BY CT.SOHD 104 | HAVING COUNT(DISTINCT CT.MASP) = ( 105 | SELECT COUNT(MASP) 106 | FROM SANPHAM 107 | WHERE NUOCSX = 'Singapore' 108 | ) 109 | ) 110 | GO 111 | 112 | -------------------------------- QUANLYHOCVU ------------------------------------------ 113 | /* 114 | DROP TABLE KHOA 115 | DROP TABLE MONHOC 116 | DROP TABLE DIEUKIEN 117 | DROP TABLE GIAOVIEN 118 | DROP TABLE LOP 119 | DROP TABLE HOCVIEN 120 | DROP TABLE GIANGDAY 121 | DROP TABLE KETQUATHI 122 | 123 | DELETE FROM KHOA 124 | DELETE FROM MONHOC 125 | DELETE FROM DIEUKIEN 126 | DELETE FROM GIAOVIEN 127 | DELETE FROM LOP 128 | DELETE FROM HOCVIEN 129 | DELETE FROM GIANGDAY 130 | DELETE FROM KETQUATHI 131 | 132 | SELECT * FROM KHOA 133 | SELECT * FROM MONHOC 134 | SELECT * FROM DIEUKIEN 135 | SELECT * FROM GIAOVIEN 136 | SELECT * FROM LOP 137 | SELECT * FROM HOCVIEN 138 | SELECT * FROM GIANGDAY 139 | SELECT * FROM KETQUATHI 140 | */ 141 | GO 142 | 143 | USE QUANLYHOCVU 144 | GO 145 | 146 | -- II. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language): 147 | -- 1. Tăng hệ số lương thêm 0.2 cho những giáo viên là trưởng khoa. 148 | UPDATE GIAOVIEN 149 | SET HESO += HESO * 0.02 150 | WHERE MAGV IN ( 151 | SELECT TRGKHOA FROM KHOA 152 | ) 153 | GO 154 | 155 | /* 2. Cập nhật giá trị điểm trung bình tất cả các môn học (DIEMTB) của mỗi học viên 156 | (tất cả các môn học đều có hệ số 1 và nếu học viên thi một môn nhiều lần, chỉ lấy điểm của lần thi sau cùng). */ 157 | UPDATE HV SET DIEMTB = DTB_HOCVIEN.DTB 158 | FROM HOCVIEN HV LEFT JOIN ( 159 | -- Cách 1: 160 | /* 161 | SELECT A.MAHV, AVG(A.DIEM) AS DTB 162 | FROM KETQUATHI A INNER JOIN ( 163 | SELECT MAHV, MAMH, MAX(LANTHI) LANTHIMAX 164 | FROM KETQUATHI 165 | GROUP BY MAHV, MAMH 166 | ) B 167 | ON A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI = B.LANTHIMAX 168 | GROUP BY A.MAHV 169 | */ 170 | -- Cách 2: 171 | SELECT MAHV, AVG(DIEM) AS DTB 172 | FROM KETQUATHI A 173 | WHERE NOT EXISTS ( 174 | SELECT 1 175 | FROM KETQUATHI B 176 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 177 | ) 178 | GROUP BY MAHV 179 | ) DTB_HOCVIEN 180 | ON HV.MAHV = DTB_HOCVIEN.MAHV 181 | GO 182 | 183 | -- 3. Cập nhật giá trị cho cột GHICHU là “Cam thi” đối với trường hợp: học viên có một môn bất kỳ thi lần thứ 3 dưới 5 điểm. 184 | UPDATE HOCVIEN SET GHICHU = 'Cam thi' 185 | WHERE MAHV IN ( 186 | SELECT MAHV 187 | FROM KETQUATHI 188 | WHERE LANTHI = 3 AND DIEM < 5 189 | ) 190 | GO 191 | 192 | /* 4. Cập nhật giá trị cho cột XEPLOAI trong quan hệ HOCVIEN như sau: 193 | o Nếu DIEMTB  9 thì XEPLOAI =”XS” 194 | o Nếu 8  DIEMTB < 9 thì XEPLOAI = “G” 195 | o Nếu 6.5  DIEMTB < 8 thì XEPLOAI = “K” 196 | o Nếu 5  DIEMTB < 6.5 thì XEPLOAI = “TB” 197 | o Nếu DIEMTB < 5 thì XEPLOAI = ”Y” 198 | */ 199 | UPDATE HOCVIEN SET XEPLOAI = CASE 200 | WHEN DIEMTB >= 9 THEN 'XS' 201 | WHEN DIEMTB >= 8 THEN 'G' 202 | WHEN DIEMTB >= 6.5 THEN 'K' 203 | WHEN DIEMTB >= 5 THEN 'TB' 204 | ELSE 'Y' 205 | END 206 | GO 207 | 208 | -- III. Ngôn ngữ truy vấn dữ liệu: 209 | -- 6. Tìm tên những môn học mà giáo viên có tên “Tran Tam Thanh” dạy trong học kỳ 1 năm 2006. 210 | SELECT MAMH, TENMH FROM MONHOC 211 | WHERE MAMH IN ( 212 | SELECT DISTINCT MAMH 213 | FROM GIANGDAY GD INNER JOIN GIAOVIEN GV 214 | ON GD.MAGV = GV.MAGV 215 | WHERE HOTEN = 'Tran Tam Thanh' AND HOCKY = 1 AND NAM = 2006 216 | ) 217 | GO 218 | 219 | -- 7. Tìm những môn học (mã môn học, tên môn học) mà giáo viên chủ nhiệm lớp “K11” dạy trong học kỳ 1 năm 2006. 220 | SELECT MAMH, TENMH FROM MONHOC 221 | WHERE MAMH IN ( 222 | SELECT DISTINCT MAMH FROM GIANGDAY WHERE MAGV IN ( 223 | SELECT MAGVCN FROM LOP WHERE MALOP = 'K11' 224 | ) AND HOCKY = 1 AND NAM = 2006 225 | ) 226 | GO 227 | 228 | -- 8. Tìm họ tên lớp trưởng của các lớp mà giáo viên có tên “Nguyen To Lan” dạy môn “Co So Du Lieu”. 229 | SELECT HO + ' ' + TEN AS HOTEN FROM HOCVIEN 230 | WHERE MAHV IN ( 231 | SELECT TRGLOP FROM LOP 232 | WHERE MALOP IN ( 233 | SELECT DISTINCT MALOP FROM GIANGDAY 234 | WHERE MAGV IN ( 235 | SELECT MAGV FROM GIAOVIEN WHERE HOTEN = 'Nguyen To Lan' 236 | ) AND MAMH IN ( 237 | SELECT MAMH FROM MONHOC WHERE TENMH = 'Co So Du Lieu' 238 | ) 239 | ) 240 | ) 241 | GO 242 | 243 | -- 9. In ra danh sách những môn học (mã môn học, tên môn học) phải học liền trước môn “Co So Du Lieu”. 244 | SELECT MAMH, TENMH FROM MONHOC 245 | WHERE MAMH IN ( 246 | SELECT MAMH_TRUOC FROM DIEUKIEN WHERE MAMH IN ( 247 | SELECT MAMH FROM MONHOC WHERE TENMH = 'Co So Du Lieu' 248 | ) 249 | ) 250 | GO 251 | 252 | -- 10. Môn “Cau Truc Roi Rac” là môn bắt buộc phải học liền trước những môn học (mã môn học, tên môn học) nào. 253 | SELECT MAMH, TENMH FROM MONHOC 254 | WHERE MAMH IN ( 255 | SELECT MAMH FROM DIEUKIEN WHERE MAMH_TRUOC IN ( 256 | SELECT MAMH FROM MONHOC WHERE TENMH = 'Cau Truc Roi Rac' 257 | ) 258 | ) 259 | GO 260 | 261 | -- 11. Tìm họ tên giáo viên dạy môn CTRR cho cả hai lớp “K11” và “K12” trong cùng học kỳ 1 năm 2006. 262 | SELECT HOTEN FROM GIAOVIEN 263 | WHERE MAGV IN ( 264 | SELECT MAGV FROM GIANGDAY 265 | WHERE MAMH = 'CTRR' AND MALOP IN ('K11', 'K12') AND HOCKY = 1 AND NAM = 2006 266 | GROUP BY MAGV 267 | HAVING COUNT(DISTINCT MALOP) = 2 268 | ) 269 | GO 270 | 271 | -- 12. Tìm những học viên (mã học viên, họ tên) thi không đạt môn CSDL ở lần thi thứ 1 nhưng chưa thi lại môn này. 272 | SELECT MAHV, HO + ' ' + TEN AS HOTEN FROM HOCVIEN 273 | WHERE MAHV IN ( 274 | SELECT MAHV FROM KETQUATHI A 275 | WHERE NOT EXISTS ( 276 | SELECT 1 FROM KETQUATHI B 277 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 278 | ) AND MAMH = 'CSDL' AND LANTHI = 1 AND KQUA = 'Khong Dat' 279 | ) 280 | GO 281 | 282 | -- 13. Tìm giáo viên (mã giáo viên, họ tên) không được phân công giảng dạy bất kỳ môn học nào. 283 | SELECT MAGV, HOTEN FROM GIAOVIEN 284 | WHERE MAGV NOT IN ( 285 | SELECT DISTINCT MAGV FROM GIANGDAY 286 | ) 287 | GO 288 | 289 | -- 14. Tìm giáo viên (mã giáo viên, họ tên) không được phân công giảng dạy bất kỳ môn học nào thuộc khoa giáo viên đó phụ trách. 290 | SELECT MAGV, HOTEN FROM GIAOVIEN 291 | WHERE MAGV NOT IN ( 292 | SELECT GD.MAGV 293 | FROM GIANGDAY GD INNER JOIN GIAOVIEN GV 294 | ON GD.MAGV = GV.MAGV INNER JOIN MONHOC MH 295 | ON GD.MAMH = MH.MAMH 296 | WHERE GV.MAKHOA = MH.MAKHOA 297 | ) 298 | GO 299 | 300 | -- 15. Tìm họ tên các học viên thuộc lớp “K11” thi một môn bất kỳ quá 3 lần vẫn “Khong dat” hoặc thi lần thứ 2 môn CTRR được 5 điểm. 301 | SELECT HO + ' ' + TEN AS HOTEN FROM HOCVIEN 302 | WHERE MAHV IN ( 303 | SELECT MAHV FROM KETQUATHI A 304 | WHERE LEFT(MAHV, 3) = 'K11' AND (( 305 | NOT EXISTS ( 306 | SELECT 1 FROM KETQUATHI B 307 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 308 | ) AND LANTHI = 3 AND KQUA = 'Khong Dat' 309 | ) OR MAMH = 'CTRR' AND LANTHI = 2 AND DIEM = 5) 310 | ) 311 | GO 312 | 313 | -- 16. Tìm họ tên giáo viên dạy môn CTRR cho ít nhất hai lớp trong cùng một học kỳ của một năm học. 314 | SELECT HOTEN FROM GIAOVIEN 315 | WHERE MAGV IN ( 316 | SELECT MAGV FROM GIANGDAY 317 | WHERE MAMH = 'CTRR' 318 | GROUP BY MAGV, HOCKY, NAM 319 | HAVING COUNT(MALOP) >= 2 320 | ) 321 | GO 322 | 323 | -- 17. Danh sách học viên và điểm thi môn CSDL (chỉ lấy điểm của lần thi sau cùng). 324 | SELECT HV.MAHV, HO + ' ' + TEN AS HOTEN, DIEM 325 | FROM HOCVIEN HV INNER JOIN ( 326 | SELECT MAHV, DIEM 327 | FROM KETQUATHI A 328 | WHERE NOT EXISTS ( 329 | SELECT 1 330 | FROM KETQUATHI B 331 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 332 | ) AND MAMH = 'CSDL' 333 | ) DIEM_CSDL 334 | ON HV.MAHV = DIEM_CSDL.MAHV 335 | GO 336 | 337 | -- 18. Danh sách học viên và điểm thi môn “Co So Du Lieu” (chỉ lấy điểm cao nhất của các lần thi). 338 | SELECT HV.MAHV, HO + ' ' + TEN AS HOTEN, DIEM 339 | FROM HOCVIEN HV INNER JOIN ( 340 | SELECT MAHV, MAX(DIEM) AS DIEM FROM KETQUATHI 341 | WHERE MAMH IN ( 342 | SELECT MAMH FROM MONHOC 343 | WHERE TENMH = 'Co So Du Lieu' 344 | ) 345 | GROUP BY MAHV, MAMH 346 | ) DIEM_CSDL_MAX 347 | ON HV.MAHV = DIEM_CSDL_MAX.MAHV 348 | GO -------------------------------------------------------------------------------- /Tuan 03/[2016]TH_CSDL_Tuan03.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/Tuan 03/[2016]TH_CSDL_Tuan03.pdf -------------------------------------------------------------------------------- /Tuan 04/18520339_Buoi4.sql: -------------------------------------------------------------------------------- 1 | ------------------------------ QUANLYBANHANG ------------------------------------------ 2 | /* 3 | DROP TABLE KHACHHANG 4 | DROP TABLE NHANVIEN 5 | DROP TABLE SANPHAM 6 | DROP TABLE HOADON 7 | DROP TABLE CTHD 8 | 9 | DELETE FROM KHACHHANG 10 | DELETE FROM NHANVIEN 11 | DELETE FROM SANPHAM 12 | DELETE FROM HOADON 13 | DELETE FROM CTHD 14 | 15 | SELECT * FROM KHACHHANG 16 | SELECT * FROM NHANVIEN 17 | SELECT * FROM SANPHAM 18 | SELECT * FROM HOADON 19 | SELECT * FROM CTHD 20 | */ 21 | GO 22 | 23 | SET DATEFORMAT DMY; 24 | USE QUANLYBANHANG 25 | GO 26 | 27 | -- III. Ngôn ngữ truy vấn dữ liệu có cấu trúc: 28 | -- 20. Có bao nhiêu hóa đơn không phải của khách hàng đăng ký thành viên mua? 29 | SELECT COUNT(*) FROM HOADON 30 | WHERE MAKH NOT IN( 31 | SELECT MAKH FROM KHACHHANG 32 | WHERE KHACHHANG.MAKH = HOADON.MAKH 33 | ) 34 | GO 35 | 36 | -- 21. Có bao nhiêu sản phẩm khác nhau được bán ra trong năm 2006. 37 | SELECT COUNT(DISTINCT MASP) 38 | FROM CTHD CT INNER JOIN HOADON HD 39 | ON CT.SOHD = HD.SOHD 40 | WHERE YEAR(NGHD) = '2006' 41 | GO 42 | 43 | -- 22. Cho biết trị giá hóa đơn cao nhất, thấp nhất là bao nhiêu ? 44 | SELECT MIN(TRIGIA) GIAMIN, MAX(TRIGIA) GIAMAX FROM HOADON 45 | GO 46 | 47 | -- 23. Trị giá trung bình của tất cả các hóa đơn được bán ra trong năm 2006 là bao nhiêu? 48 | SELECT AVG(TRIGIA) FROM HOADON WHERE YEAR(NGHD) = '2006' 49 | GO 50 | 51 | -- 24. Tính doanh thu bán hàng trong năm 2006. 52 | SELECT SUM(TRIGIA) FROM HOADON WHERE YEAR(NGHD) = '2006' 53 | GO 54 | 55 | -- 25. Tìm số hóa đơn có trị giá cao nhất trong năm 2006. 56 | SELECT SOHD FROM HOADON 57 | WHERE YEAR(NGHD) = '2006' AND TRIGIA = ( 58 | SELECT MAX(TRIGIA) FROM HOADON 59 | ) 60 | GO 61 | 62 | -- 26. Tìm họ tên khách hàng đã mua hóa đơn có trị giá cao nhất trong năm 2006. 63 | SELECT HOTEN FROM HOADON HD INNER JOIN KHACHHANG KH 64 | ON HD.MAKH = KH.MAKH 65 | WHERE YEAR(NGHD) = '2006' AND TRIGIA = ( 66 | SELECT MAX(TRIGIA) FROM HOADON 67 | ) 68 | GO 69 | 70 | -- 27. In ra danh sách 3 khách hàng (MAKH, HOTEN) có doanh số cao nhất. 71 | SELECT TOP 3 MAKH, HOTEN FROM KHACHHANG ORDER BY DOANHSO DESC 72 | GO 73 | 74 | -- 28. In ra danh sách các sản phẩm (MASP, TENSP) có giá bán bằng 1 trong 3 mức giá cao nhất. 75 | SELECT MASP, TENSP FROM SANPHAM 76 | WHERE GIA IN( 77 | SELECT DISTINCT TOP 3 GIA FROM SANPHAM 78 | ORDER BY GIA DESC 79 | ) 80 | GO 81 | 82 | -- 29. In ra danh sách các sản phẩm (MASP, TENSP) do “Thai Lan” sản xuất có giá bằng 1 trong 3 mức giá cao nhất (của tất cả các sản phẩm). 83 | SELECT MASP, TENSP FROM SANPHAM 84 | WHERE NUOCSX = 'Thai Lan' AND GIA IN( 85 | SELECT DISTINCT TOP 3 GIA FROM SANPHAM 86 | ORDER BY GIA DESC 87 | ) 88 | GO 89 | 90 | -- 30. In ra danh sách các sản phẩm (MASP, TENSP) do “Trung Quoc” sản xuất có giá bằng 1 trong 3 mức giá cao nhất (của sản phẩm do “Trung Quoc” sản xuất). 91 | SELECT MASP, TENSP FROM SANPHAM 92 | WHERE NUOCSX = 'Trung Quoc' AND GIA IN( 93 | SELECT DISTINCT TOP 3 GIA FROM SANPHAM 94 | WHERE NUOCSX = 'Trung Quoc' 95 | ORDER BY GIA DESC 96 | ) 97 | GO 98 | 99 | -- 31. * In ra danh sách 3 khách hàng có doanh số cao nhất (sắp xếp theo kiểu xếp hạng). 100 | SELECT TOP 3 MAKH, HOTEN, RANK() OVER (ORDER BY DOANHSO DESC) RANK_KH FROM KHACHHANG 101 | GO 102 | 103 | -- 32. Tính tổng số sản phẩm do “Trung Quoc” sản xuất. 104 | SELECT COUNT(MASP) FROM SANPHAM WHERE NUOCSX = 'Trung Quoc' 105 | GO 106 | 107 | -- 33. Tính tổng số sản phẩm của từng nước sản xuất. 108 | SELECT NUOCSX, COUNT(MASP) SOSP FROM SANPHAM GROUP BY NUOCSX 109 | GO 110 | 111 | -- 34. Với từng nước sản xuất, tìm giá bán cao nhất, thấp nhất, trung bình của các sản phẩm. 112 | SELECT NUOCSX, MAX(GIA) GIAMAX, MIN(GIA) GIAMIN, AVG(GIA) TRUNGBINH FROM SANPHAM GROUP BY NUOCSX 113 | GO 114 | 115 | -- 35. Tính doanh thu bán hàng mỗi ngày. 116 | SELECT NGHD, SUM(TRIGIA) DOANHTHU FROM HOADON GROUP BY NGHD 117 | GO 118 | 119 | -- 36. Tính tổng số lượng của từng sản phẩm bán ra trong tháng 10/2006. 120 | SELECT CT.MASP, SUM(SL) SL 121 | FROM CTHD CT INNER JOIN HOADON HD 122 | ON CT.SOHD = HD.SOHD 123 | WHERE YEAR(NGHD) = '2006' AND MONTH(NGHD) = '10' 124 | GROUP BY CT.MASP 125 | GO 126 | 127 | -- 37. Tính doanh thu bán hàng của từng tháng trong năm 2006. 128 | SELECT MONTH(NGHD) THANG, SUM(TRIGIA) DOANHTHU 129 | FROM HOADON 130 | WHERE YEAR(NGHD) = '2006' 131 | GROUP BY MONTH(NGHD) 132 | GO 133 | 134 | -- 38. Tìm hóa đơn có mua ít nhất 4 sản phẩm khác nhau. 135 | SELECT SOHD FROM CTHD 136 | GROUP BY SOHD 137 | HAVING COUNT(DISTINCT MASP) >= 4 138 | GO 139 | 140 | -- 39. Tìm hóa đơn có mua 3 sản phẩm do “Viet Nam” sản xuất (3 sản phẩm khác nhau). 141 | SELECT SOHD FROM CTHD CT INNER JOIN SANPHAM SP 142 | ON CT.MASP = SP.MASP 143 | WHERE NUOCSX = 'Viet Nam' 144 | GROUP BY SOHD 145 | HAVING COUNT(DISTINCT CT.MASP) = 3 146 | GO 147 | 148 | -- 40. Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều nhất. 149 | SELECT MAKH, HOTEN FROM ( 150 | SELECT HD.MAKH, HOTEN, RANK() OVER (ORDER BY COUNT(HD.MAKH) DESC) RANK_SOLAN 151 | FROM HOADON HD INNER JOIN KHACHHANG KH 152 | ON HD.MAKH = KH.MAKH 153 | GROUP BY HD.MAKH, HOTEN 154 | ) A 155 | WHERE RANK_SOLAN = 1 156 | GO 157 | 158 | -- 41. Tháng mấy trong năm 2006, doanh số bán hàng cao nhất ? 159 | SELECT THANG FROM ( 160 | SELECT MONTH(NGHD) THANG, RANK() OVER (ORDER BY SUM(TRIGIA) DESC) RANK_TRIGIA FROM HOADON 161 | WHERE YEAR(NGHD) = '2006' 162 | GROUP BY MONTH(NGHD) 163 | ) A 164 | WHERE RANK_TRIGIA = 1 165 | GO 166 | 167 | -- 42. Tìm sản phẩm (MASP, TENSP) có tổng số lượng bán ra thấp nhất trong năm 2006. 168 | SELECT A.MASP, TENSP FROM ( 169 | SELECT MASP, RANK() OVER (ORDER BY SUM(SL)) RANK_SL 170 | FROM CTHD CT INNER JOIN HOADON HD 171 | ON CT.SOHD = HD.SOHD 172 | WHERE YEAR(NGHD) = '2006' 173 | GROUP BY MASP 174 | ) A INNER JOIN SANPHAM SP 175 | ON A.MASP = SP.MASP 176 | WHERE RANK_SL = 1 177 | GO 178 | 179 | -- 43. *Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao nhất. 180 | SELECT NUOCSX, MASP, TENSP FROM ( 181 | SELECT NUOCSX, MASP, TENSP, GIA, RANK() OVER (PARTITION BY NUOCSX ORDER BY GIA DESC) RANK_GIA FROM SANPHAM 182 | ) A 183 | WHERE RANK_GIA = 1 184 | GO 185 | 186 | -- 44. Tìm nước sản xuất sản xuất ít nhất 3 sản phẩm có giá bán khác nhau. 187 | SELECT NUOCSX FROM SANPHAM 188 | GROUP BY NUOCSX 189 | HAVING COUNT(DISTINCT GIA) >= 3 190 | GO 191 | 192 | -- 45. *Trong 10 khách hàng có doanh số cao nhất, tìm khách hàng có số lần mua hàng nhiều nhất. 193 | SELECT MAKH, HOTEN FROM ( 194 | SELECT TOP 10 HD.MAKH, HOTEN, DOANHSO, RANK() OVER (ORDER BY COUNT(HD.MAKH) DESC) RANK_SOLAN 195 | FROM HOADON HD INNER JOIN KHACHHANG KH 196 | ON HD.MAKH = KH.MAKH 197 | GROUP BY HD.MAKH, HOTEN, DOANHSO 198 | ORDER BY DOANHSO DESC 199 | ) A 200 | WHERE RANK_SOLAN = 1 201 | GO 202 | 203 | -------------------------------- QUANLYHOCVU ------------------------------------------ 204 | /* 205 | DROP TABLE KHOA 206 | DROP TABLE MONHOC 207 | DROP TABLE DIEUKIEN 208 | DROP TABLE GIAOVIEN 209 | DROP TABLE LOP 210 | DROP TABLE HOCVIEN 211 | DROP TABLE GIANGDAY 212 | DROP TABLE KETQUATHI 213 | 214 | DELETE FROM KHOA 215 | DELETE FROM MONHOC 216 | DELETE FROM DIEUKIEN 217 | DELETE FROM GIAOVIEN 218 | DELETE FROM LOP 219 | DELETE FROM HOCVIEN 220 | DELETE FROM GIANGDAY 221 | DELETE FROM KETQUATHI 222 | 223 | SELECT * FROM KHOA 224 | SELECT * FROM MONHOC 225 | SELECT * FROM DIEUKIEN 226 | SELECT * FROM GIAOVIEN 227 | SELECT * FROM LOP 228 | SELECT * FROM HOCVIEN 229 | SELECT * FROM GIANGDAY 230 | SELECT * FROM KETQUATHI 231 | */ 232 | GO 233 | 234 | USE QUANLYHOCVU 235 | GO 236 | 237 | -- III. Ngôn ngữ truy vấn dữ liệu: 238 | -- 19. Khoa nào (mã khoa, tên khoa) được thành lập sớm nhất. 239 | SELECT MAKHOA, TENKHOA FROM ( 240 | SELECT MAKHOA, TENKHOA, RANK() OVER (ORDER BY NGTLAP) RANK_NGTLAP FROM KHOA 241 | ) A 242 | WHERE RANK_NGTLAP = 1 243 | GO 244 | 245 | -- 20. Có bao nhiêu giáo viên có học hàm là “GS” hoặc “PGS”. 246 | SELECT HOCHAM, COUNT(HOCHAM) SL FROM GIAOVIEN 247 | WHERE HOCHAM IN ('GS', 'PGS') 248 | GROUP BY HOCHAM 249 | GO 250 | 251 | -- 21. Thống kê có bao nhiêu giáo viên có học vị là “CN”, “KS”, “Ths”, “TS”, “PTS” trong mỗi khoa. 252 | SELECT MAKHOA, HOCVI, COUNT(HOCVI) SL FROM GIAOVIEN 253 | GROUP BY MAKHOA, HOCVI 254 | ORDER BY MAKHOA 255 | GO 256 | 257 | -- 22. Mỗi môn học thống kê số lượng học viên theo kết quả (đạt và không đạt). 258 | SELECT MAMH, KQUA, COUNT(MAHV) SL 259 | FROM KETQUATHI A 260 | WHERE NOT EXISTS ( 261 | SELECT 1 262 | FROM KETQUATHI B 263 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 264 | ) 265 | GROUP BY MAMH, KQUA 266 | GO 267 | 268 | -- 23. Tìm giáo viên (mã giáo viên, họ tên) là giáo viên chủ nhiệm của một lớp, đồng thời dạy cho lớp đó ít nhất một môn học. 269 | SELECT MAGV, HOTEN 270 | FROM GIAOVIEN 271 | WHERE MAGV IN( 272 | SELECT DISTINCT MAGV 273 | FROM GIANGDAY GD INNER JOIN LOP 274 | ON GD.MALOP = LOP.MALOP 275 | WHERE MAGV = MAGVCN 276 | ) 277 | GO 278 | 279 | -- 24. Tìm họ tên lớp trưởng của lớp có sỉ số cao nhất. 280 | 281 | SELECT HO + ' ' + TEN HOTEN FROM LOP INNER JOIN HOCVIEN HV 282 | ON LOP.TRGLOP = HV.MAHV 283 | WHERE SISO = ( 284 | SELECT MAX(SISO) FROM LOP 285 | ) 286 | GO 287 | 288 | -- 25. * Tìm họ tên những LOPTRG thi không đạt quá 3 môn (mỗi môn đều thi không đạt ở tất cả các lần thi). 289 | SELECT HO + ' ' + TEN HOTEN FROM HOCVIEN 290 | WHERE MAHV IN ( 291 | SELECT MAHV FROM KETQUATHI A 292 | WHERE MAHV IN ( 293 | SELECT TRGLOP FROM LOP 294 | ) AND NOT EXISTS ( 295 | SELECT 1 FROM KETQUATHI B 296 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 297 | ) AND KQUA = 'Khong Dat' 298 | GROUP BY MAHV 299 | HAVING COUNT(MAMH) >= 3 300 | ) 301 | GO 302 | 303 | -- 26. Tìm học viên (mã học viên, họ tên) có số môn đạt điểm 9,10 nhiều nhất. 304 | SELECT A.MAHV, HO + ' ' + TEN HOTEN FROM ( 305 | SELECT MAHV, RANK () OVER (ORDER BY COUNT(MAMH) DESC) RANK_MH FROM KETQUATHI KQ 306 | WHERE DIEM BETWEEN 9 AND 10 307 | GROUP BY KQ.MAHV 308 | ) A INNER JOIN HOCVIEN HV 309 | ON A.MAHV = HV.MAHV 310 | WHERE RANK_MH = 1 311 | 312 | GO 313 | 314 | -- 27. Trong từng lớp, tìm học viên (mã học viên, họ tên) có số môn đạt điểm 9,10 nhiều nhất. 315 | SELECT LEFT(A.MAHV, 3) MALOP, A.MAHV, HO + ' ' + TEN HOTEN FROM ( 316 | SELECT MAHV, RANK () OVER (ORDER BY COUNT(MAMH) DESC) RANK_MH FROM KETQUATHI KQ 317 | WHERE DIEM BETWEEN 9 AND 10 318 | GROUP BY KQ.MAHV 319 | ) A INNER JOIN HOCVIEN HV 320 | ON A.MAHV = HV.MAHV 321 | WHERE RANK_MH = 1 322 | GROUP BY LEFT(A.MAHV, 3), A.MAHV, HO, TEN 323 | GO 324 | 325 | -- 28. Trong từng học kỳ của từng năm, mỗi giáo viên phân công dạy bao nhiêu môn học, bao nhiêu lớp. 326 | SELECT HOCKY, NAM, MAGV, COUNT(MAMH) SOMH, COUNT(MALOP) SOLOP FROM GIANGDAY 327 | GROUP BY HOCKY, NAM, MAGV 328 | GO 329 | 330 | -- 29. Trong từng học kỳ của từng năm, tìm giáo viên (mã giáo viên, họ tên) giảng dạy nhiều nhất. 331 | SELECT HOCKY, NAM, A.MAGV, HOTEN FROM ( 332 | SELECT HOCKY, NAM, MAGV, RANK() OVER (PARTITION BY HOCKY, NAM ORDER BY COUNT(MAMH) DESC) RANK_SOMH FROM GIANGDAY 333 | GROUP BY HOCKY, NAM, MAGV 334 | ) A INNER JOIN GIAOVIEN GV 335 | ON A.MAGV = GV.MAGV 336 | WHERE RANK_SOMH = 1 337 | GO 338 | 339 | -- 30. Tìm môn học (mã môn học, tên môn học) có nhiều học viên thi không đạt (ở lần thi thứ 1) nhất. 340 | SELECT A.MAMH, TENMH FROM ( 341 | SELECT MAMH, RANK() OVER (ORDER BY COUNT(MAHV) DESC) RANK_SOHV FROM KETQUATHI 342 | WHERE LANTHI = 1 AND KQUA = 'Khong Dat' 343 | GROUP BY MAMH 344 | ) A INNER JOIN MONHOC MH 345 | ON A.MAMH = MH.MAMH 346 | WHERE RANK_SOHV = 1 347 | GO 348 | 349 | -- 31. Tìm học viên (mã học viên, họ tên) thi môn nào cũng đạt (chỉ xét lần thi thứ 1). 350 | SELECT A.MAHV, HO + ' ' + TEN HOTEN FROM ( 351 | SELECT MAHV, COUNT(KQUA) SODAT FROM KETQUATHI 352 | WHERE LANTHI = 1 AND KQUA = 'Dat' 353 | GROUP BY MAHV 354 | INTERSECT 355 | SELECT MAHV, COUNT(MAMH) SOMH FROM KETQUATHI 356 | WHERE LANTHI = 1 357 | GROUP BY MAHV 358 | ) A INNER JOIN HOCVIEN HV 359 | ON A.MAHV = HV.MAHV 360 | 361 | -- 32. * Tìm học viên (mã học viên, họ tên) thi môn nào cũng đạt (chỉ xét lần thi sau cùng). 362 | SELECT C.MAHV, HO + ' ' + TEN HOTEN FROM ( 363 | SELECT MAHV, COUNT(KQUA) SODAT FROM KETQUATHI A 364 | WHERE NOT EXISTS ( 365 | SELECT 1 366 | FROM KETQUATHI B 367 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 368 | ) AND KQUA = 'Dat' 369 | GROUP BY MAHV 370 | INTERSECT 371 | SELECT MAHV, COUNT(MAMH) SOMH FROM KETQUATHI 372 | WHERE LANTHI = 1 373 | GROUP BY MAHV 374 | ) C INNER JOIN HOCVIEN HV 375 | ON C.MAHV = HV.MAHV 376 | GO 377 | 378 | -- 33. * Tìm học viên (mã học viên, họ tên) đã thi tất cả các môn đều đạt (chỉ xét lần thi thứ 1). 379 | SELECT A.MAHV, HO + ' ' + TEN HOTEN FROM ( 380 | SELECT MAHV, COUNT(KQUA) SODAT FROM KETQUATHI 381 | WHERE LANTHI = 1 AND KQUA = 'Dat' 382 | GROUP BY MAHV 383 | INTERSECT 384 | SELECT MAHV, COUNT(MAMH) SOMH FROM KETQUATHI 385 | WHERE LANTHI = 1 386 | GROUP BY MAHV 387 | ) A INNER JOIN HOCVIEN HV 388 | ON A.MAHV = HV.MAHV 389 | GO 390 | 391 | -- 34. * Tìm học viên (mã học viên, họ tên) đã thi tất cả các môn đều đạt (chỉ xét lần thi sau cùng). 392 | SELECT C.MAHV, HO + ' ' + TEN HOTEN FROM ( 393 | SELECT MAHV, COUNT(KQUA) SODAT FROM KETQUATHI A 394 | WHERE NOT EXISTS ( 395 | SELECT 1 FROM KETQUATHI B 396 | WHERE A.MAHV = B.MAHV AND A.MAMH = B.MAMH AND A.LANTHI < B.LANTHI 397 | ) AND KQUA = 'Dat' 398 | GROUP BY MAHV 399 | INTERSECT 400 | SELECT MAHV, COUNT(MAMH) SOMH FROM KETQUATHI 401 | WHERE LANTHI = 1 402 | GROUP BY MAHV 403 | ) C INNER JOIN HOCVIEN HV 404 | ON C.MAHV = HV.MAHV 405 | GO 406 | 407 | -- 35. ** Tìm học viên (mã học viên, họ tên) có điểm thi cao nhất trong từng môn (lấy điểm ở lần thi sau cùng). 408 | SELECT A.MAHV, HO + ' ' + TEN HOTEN FROM ( 409 | SELECT B.MAMH, MAHV, DIEM, DIEMMAX 410 | FROM KETQUATHI B INNER JOIN ( 411 | SELECT MAMH, MAX(DIEM) DIEMMAX FROM KETQUATHI 412 | GROUP BY MAMH 413 | ) C 414 | ON B.MAMH = C.MAMH 415 | WHERE NOT EXISTS ( 416 | SELECT 1 FROM KETQUATHI D 417 | WHERE B.MAHV = D.MAHV AND B.MAMH = D.MAMH AND B.LANTHI < D.LANTHI 418 | ) AND DIEM = DIEMMAX 419 | ) A INNER JOIN HOCVIEN HV 420 | ON A.MAHV = HV.MAHV 421 | GO -------------------------------------------------------------------------------- /Tuan 04/[2016]TH_CSDL_Tuan04.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/Tuan 04/[2016]TH_CSDL_Tuan04.pdf -------------------------------------------------------------------------------- /Tuan 05/18520339_Buoi5.sql: -------------------------------------------------------------------------------- 1 | ------------------------------ QUANLYBANHANG ------------------------------------------ 2 | /* 3 | DROP TABLE KHACHHANG 4 | DROP TABLE NHANVIEN 5 | DROP TABLE SANPHAM 6 | DROP TABLE HOADON 7 | DROP TABLE CTHD 8 | 9 | DELETE FROM KHACHHANG 10 | DELETE FROM NHANVIEN 11 | DELETE FROM SANPHAM 12 | DELETE FROM HOADON 13 | DELETE FROM CTHD 14 | 15 | SELECT * FROM KHACHHANG 16 | SELECT * FROM NHANVIEN 17 | SELECT * FROM SANPHAM 18 | SELECT * FROM HOADON 19 | SELECT * FROM CTHD 20 | */ 21 | GO 22 | 23 | SET DATEFORMAT DMY; 24 | USE QUANLYBANHANG 25 | GO 26 | 27 | -- I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language): 28 | -- 11. Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên (NGDK). 29 | CREATE TRIGGER TRG_HD_KH ON HOADON FOR INSERT 30 | AS 31 | BEGIN 32 | DECLARE @NGHD SMALLDATETIME, @NGDK SMALLDATETIME, @MAKH CHAR(4) 33 | SELECT @NGHD = NGHD, @MAKH = MAKH FROM INSERTED 34 | SELECT @NGDK = NGDK FROM KHACHHANG WHERE MAKH = @MAKH 35 | 36 | PRINT @NGHD 37 | PRINT @NGDK 38 | 39 | IF (@NGHD >= @NGDK) 40 | PRINT N'Thêm mới một hóa đơn thành công.' 41 | ELSE 42 | BEGIN 43 | PRINT N'Lỗi: Ngày mua hàng của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên.' 44 | ROLLBACK TRANSACTION 45 | END 46 | END 47 | GO 48 | 49 | INSERT INTO HOADON(SOHD, NGHD, MAKH, MANV, TRIGIA) VALUES('1024', '22/07/2005', 'KH01', 'NV01', '320000') 50 | delete from HOADON where SOHD = '1024' 51 | GO 52 | 53 | -- 12. Ngày bán hàng (NGHD) của một nhân viên phải lớn hơn hoặc bằng ngày nhân viên đó vào làm. 54 | CREATE TRIGGER TRG_HD_NV ON HOADON FOR INSERT 55 | AS 56 | BEGIN 57 | DECLARE @NGHD SMALLDATETIME, @NGVL SMALLDATETIME, @MANV CHAR(4) 58 | SELECT @NGHD = NGHD, @MANV = MANV FROM INSERTED 59 | SELECT @NGVL = NGVL FROM NHANVIEN WHERE MANV = @MANV 60 | 61 | IF (@NGHD >= @NGVL) 62 | PRINT N'Thêm mới một hóa đơn thành công.' 63 | ELSE 64 | BEGIN 65 | PRINT N'Lỗi: Ngày bán hàng của một nhân viên phải lớn hơn hoặc bằng ngày nhân viên đó vào làm.' 66 | ROLLBACK TRANSACTION 67 | END 68 | END 69 | GO 70 | 71 | -- 13. Mỗi một hóa đơn phải có ít nhất một chi tiết hóa đơn. 72 | CREATE TRIGGER TRG_HD_CTHD ON HOADON FOR INSERT 73 | AS 74 | BEGIN 75 | DECLARE @SOHD INT, @COUNT_SOHD INT 76 | SELECT @SOHD = SOHD FROM INSERTED 77 | SELECT @COUNT_SOHD = COUNT(SOHD) FROM CTHD WHERE SOHD = @SOHD 78 | 79 | IF (@COUNT_SOHD >= 1) 80 | PRINT N'Thêm mới một hóa đơn thành công.' 81 | ELSE 82 | BEGIN 83 | PRINT N'Lỗi: Mỗi một hóa đơn phải có ít nhất một chi tiết hóa đơn.' 84 | ROLLBACK TRANSACTION 85 | END 86 | END 87 | GO 88 | 89 | -- 14. Trị giá của một hóa đơn là tổng thành tiền (số lượng*đơn giá) của các chi tiết thuộc hóa đơn đó. 90 | CREATE TRIGGER TRG_CTHD ON CTHD FOR INSERT, DELETE 91 | AS 92 | BEGIN 93 | DECLARE @SOHD INT, @TONGGIATRI INT 94 | 95 | SELECT @TONGGIATRI = SUM(SL * GIA), @SOHD = SOHD 96 | FROM INSERTED INNER JOIN SANPHAM 97 | ON INSERTED.MASP = SANPHAM.MASP 98 | GROUP BY SOHD 99 | 100 | UPDATE HOADON 101 | SET TRIGIA += @TONGGIATRI 102 | WHERE SOHD = @SOHD 103 | END 104 | GO 105 | 106 | CREATE TRIGGER TR_DEL_CTHD ON CTHD FOR DELETE 107 | AS 108 | BEGIN 109 | DECLARE @SOHD INT, @GIATRI INT 110 | 111 | SELECT @SOHD = SOHD, @GIATRI = SL * GIA 112 | FROM DELETED INNER JOIN SANPHAM 113 | ON SANPHAM.MASP = DELETED.MASP 114 | 115 | UPDATE HOADON 116 | SET TRIGIA -= @GIATRI 117 | WHERE SOHD = @SOHD 118 | END 119 | GO 120 | 121 | 122 | -------------------------------- QUANLYHOCVU ------------------------------------------ 123 | /* 124 | DROP TABLE KHOA 125 | DROP TABLE MONHOC 126 | DROP TABLE DIEUKIEN 127 | DROP TABLE GIAOVIEN 128 | DROP TABLE LOP 129 | DROP TABLE HOCVIEN 130 | DROP TABLE GIANGDAY 131 | DROP TABLE KETQUATHI 132 | 133 | DELETE FROM KHOA 134 | DELETE FROM MONHOC 135 | DELETE FROM DIEUKIEN 136 | DELETE FROM GIAOVIEN 137 | DELETE FROM LOP 138 | DELETE FROM HOCVIEN 139 | DELETE FROM GIANGDAY 140 | DELETE FROM KETQUATHI 141 | 142 | SELECT * FROM KHOA 143 | SELECT * FROM MONHOC 144 | SELECT * FROM DIEUKIEN 145 | SELECT * FROM GIAOVIEN 146 | SELECT * FROM LOP 147 | SELECT * FROM HOCVIEN 148 | SELECT * FROM GIANGDAY 149 | SELECT * FROM KETQUATHI 150 | */ 151 | GO 152 | 153 | USE QUANLYHOCVU 154 | GO 155 | 156 | -- I. Ngôn ngữ định nghĩa dữ liệu (Data Definition Language): 157 | -- 9. Lớp trưởng của một lớp phải là học viên của lớp đó. 158 | 159 | GO 160 | 161 | -- 10. Trưởng khoa phải là giáo viên thuộc khoa và có học vị “TS” hoặc “PTS”. 162 | 163 | GO 164 | 165 | -- 15. Học viên chỉ được thi một môn học nào đó khi lớp của học viên đã học xong môn học này. 166 | 167 | GO 168 | 169 | -- 16. Mỗi học kỳ của một năm học, một lớp chỉ được học tối đa 3 môn. 170 | 171 | GO 172 | 173 | -- 17. Sỉ số của một lớp bằng với số lượng học viên thuộc lớp đó. 174 | 175 | GO 176 | 177 | /* 18. Trong quan hệ DIEUKIEN giá trị của thuộc tính MAMH và MAMH_TRUOC trong cùng một bộ 178 | không được giống nhau (“A”,”A”) và cũng không tồn tại hai bộ (“A”,”B”) và (“B”,”A”). */ 179 | 180 | GO 181 | 182 | -- 19. Các giáo viên có cùng học vị, học hàm, hệ số lương thì mức lương bằng nhau. 183 | 184 | GO 185 | 186 | -- 20. Học viên chỉ được thi lại (lần thi >1) khi điểm của lần thi trước đó dưới 5. 187 | 188 | GO 189 | 190 | -- 21. Ngày thi của lần thi sau phải lớn hơn ngày thi của lần thi trước (cùng học viên, cùng môn học). 191 | 192 | GO 193 | 194 | -- 22. Học viên chỉ được thi những môn mà lớp của học viên đó đã học xong. 195 | 196 | GO 197 | 198 | /* 23. Khi phân công giảng dạy một môn học, phải xét đến thứ tự trước sau giữa các môn học 199 | (sau khi học xong những môn học phải học trước mới được học những môn liền sau). */ 200 | 201 | GO 202 | 203 | -- 24. Giáo viên chỉ được phân công dạy những môn thuộc khoa giáo viên đó phụ trách. 204 | 205 | GO 206 | 207 | -------------------------------------------------------------------------------- /Tuan 05/[2016]TH_CSDL_Tuan05.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/Tuan 05/[2016]TH_CSDL_Tuan05.pdf -------------------------------------------------------------------------------- /baitap_CSDL_khoa_HTTT_new.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18520339/database-lab/b5c0dffa4e5f792cb16dbd0cd984efb4aa534e67/baitap_CSDL_khoa_HTTT_new.pdf --------------------------------------------------------------------------------