You are on page 1of 37

S dng Query Analyzer thc hin cc cu hi sau *To mt database QLdiem SV gm cc table sau:

- Table SINHVIEN

-Table KHOA

-Table MONHOC

-Table KETQUA

Code di y mnh t lm, cn bn hon chnh, c g thiu st cc bn b sung nh 31 cu mnh ghi v lm trc tip ln bi vit lun nh /* Cau 1: Tao CSDL, cac bang va cac khoa ngoai */

Code:
create database QLDIEM on primary ( name =QLDIEM, filename ='C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\QLDIEM.mdf size=50mb, maxsize=200mb, filegrowth=10mb ) log on ( name=QLDIEM_log, filename='C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\QLDIEM_log size=20mb, maxsize=100mb,

',

.ldf',

) ) go

filegrowth=10mb

create table KHOA ( MAKHOA char(5)not null, TENKHOA nvarchar(30) not NULL, constraint pk_KHOA_makhoa primary key (MAKHOA)

) create table SINHVIEN ( HOSV nvarchar(50) not null, TEN nvarchar(50) not null, MASV char(5) not null, NGAYSINH datetime not null, PHAI char(3) not null, MAKHOA char(5)not null, constraint pk_SINHVIEN_MASV primary key(MASV), constraint fk_SINHVIEN_MAKHOA foreign key(MAKHOA)references KHOA(MAKHOA) ) create table MONHOC ( TENMH nvarchar(50) not null,

MAMH char(5) not null, SOTIET int not null, constraint pk_MONHOC_MAMH primary key(MAMH) ) create table KETQUA ( MASV char(5) not null, MAMH char(5) not null, LANTHI numeric, DIEM numeric,

constraint pk_KETQUA_MASV_MAMH_LANTHI primary key(MASV,MAMH,LANTHI), constraint fk_KETQUA_MAMH foreign key(MAMH) references MONHOC(MAMH), constraint fk_ketqua_masv foreign key(MASV) references SINHVIEN(MASV) ) /* Cau 2: Xoa cac rang buoc khoa ngoai tham chieu den bang SINHVIEN va bang MONHOC */ alter table KETQUA drop constraint FK_KETQUA_MASV alter table KETQUA drop constraint FK_KETQUA_MAMH

/* Cau 3: Xoa bang KHOA va MONHOC */ alter table SINHVIEN drop constraint FK_SINHVIEN_MAKHOA Drop table KHOA Drop table MONHOC

/* Cau 4: Tao lai cac bang va cac khoa ngoai da xoa o cau 2 va cau 3 */ create table KHOA /* TAO LAI BANG KHOA*/ ( MAKHOA char(5)not null, TENKHOA nvarchar(30) not NULL, constraint pk_KHOA_makhoa primary key (MAKHOA)

create table MONHOC /* tao lai bang MONHOC */

( TENMH nvarchar(50) not null,

MAMH char(5) not null, SOTIET int not null, constraint pk_MONHOC_MAMH primary key(MAMH)

/* Tao lai cac khoa ngoai */ alter table SINHVIEN add constraint FK_SINHVIEN_MAKHOA foreign key (MAKHOA) references KHOA(MAKHOA) alter table KETQUA add constraint FK_KETQUA_MASV foreign key (MASV) references SINHVIEN(MASV) alter table KETQUA add constraint FK_KETQUA_MAMH foreign key (MAMH) references MONHOC(MAMH)

/*Cau 5: Nhap du lieu cho cac bang */ /* Nhap bang KHOA */ insert into KHOA values('AVAN','Khoa anh van') insert into KHOA values('CNTT','Khoa cong nghe thong tin') insert into KHOA values('DTVT','Khoa dien tu vien thonh') insert into KHOA values('QTKD','Khoa quan tri kinh doanh')

/*Nhap bang SINHVIEN */

insert into SINHVIEN values('Tran Minh','Son','S001','05/01/1985','NAM','CNTT') insert into SINHVIEN values('Nguyen quoc','bao','S002','05/16/1986','NAM','CNTT') insert into SINHVIEN values('Phan Anh','Tung','S003','12/20/1983','Nam','QTKD') insert into SINHVIEN values('Bui thi Anh','Thu','S004','02/01/1985','Nu','QTKD') insert into SINHVIEN values('Le Thi','Lan','S005','07/03/1987','Nu','DTVT') insert into SINHVIEN values('Nguyen Thi','Lam','S006','11/11/1984','Nu','DTVT') insert into SINHVIEN values('Phan Thi','Ha','S007','07/03/1988','Nu','CNTT') insert into SINHVIEN values('Tran The','Dung','S008','10/21/1985','Nam','CNTT')

/* Nhap bang MONHOC */

insert into MONHOC values('Anh van','AV','45') insert into MONHOC

values('Co so du lieu','CSDL','45') insert into MONHOC values('Ke toan tai chinh','KTTC','45') insert into MONHOC values('Toan cao cap','TCC','60') insert into MONHOC values('Tin hoc van phong','THVP','30') insert into MONHOC values ('Tri tue nhan tao','TTNT','60') insert into MONHOC values ('Ki thuat ap trinh','KTLT','60')

/* Nhap bang KETQUA */ insert into KETQUA values('S001','CSDL','1','4') insert into KETQUA values('S001','TCC','1','6') insert into KETQUA values('S002','CSDL','1','3') insert into KETQUA values('S002','CSDL','2','6') insert into KETQUA values('S003','KTTC','1','5') insert into KETQUA values('S004','AV','1','8') insert into KETQUA

values('S004','THVP','1','4') insert into KETQUA values('S004','THVP','2','8') insert into KETQUA values('S006','TCC','1','5') insert into KETQUA values('S007','AV','1','2') insert into KETQUA values('S007','AV','2','9') insert into KETQUA values('S007','KTLT','1','6') insert into KETQUA values('S008','AV','1','7')

/* Cau 6. Sua doi so tiet cua mon "Tri tue nhan tao" la 50 trang 71*/ update MONHOC set SOTIET=50 where TENMH='Tri tue nhan tao'

--> Li thuyet

/* Hien thi bang */ select *from SINHVIEN

/* Cau 7: Xoa ket qua cua sinh vien co ma sinh vien S001 */ delete KETQUA

where MASV='S001'

/* Cau 8: Chen lai cac bo sinhvien co ma sinh vien S001 */ insert into KETQUA values('S001','CSDL','1','4') insert into KETQUA values('S001','TCC','1','6')

/* Cau 9: Sua sinh vien "Le Thi Lan" thnh "Nguyen Thanh Son" va phai thanh 'Nam'*/ update SINHVIEN set HOSV='Nguyen Thanh', TEN='Son',PHAI='Nam' where MASV='S005'

/* Cau 10: Chuyen sinh vien ' Le Thi Lam' sang khoa CNTT */ update SINHVIEN set MAKHOA='CNTT' where MASV='S006'

/* Cau 11: Cho biet ket qua hoc tap cua sinh vien co ma S007 */ Select * from SINHVIEN where MASV='S007'

/* Cau 12: Liet ke nhng sinh vien vao ngay 03 thang 07 */ select *from SINHVIEN

where DAY(NGAYSINH)='03' and MONTH(NGAYSINH)='07' /* Ly thuyet trang 83 */

/* Cau 13: Cho biet sinh vien ma HO co chua chu 'Anh' */ select *from SINHVIEN where HOSV like('%Anh%') /* Ly thuyet trang 79 */

/* Cau14: Cho biet ket qua hoc tap gom: HOSV,TEN,MAMH,LANTHI,DIEM cua sinh vien co ma S007 */ select HS.HOSV,HS.TEN,KQ.MAMH,KQ.LANTHI,KQ.DIEM from SINHVIEN HS INNER JOIN KETQUA KQ ON HS.MASV = KQ.MASV /*INNER JOIN de ket noi du lieu gia 2 bang */ where (KQ.MASV='S007')

/* Cach # Cau 14 */ select SINHVIEN.HOSV,SINHVIEN.TEN,KETQUA.MAMH,KETQUA.LANT HI,KETQUA.DIEM

from SINHVIEN inner join KETQUA on SINHVIEN.MASV=KETQUA.MASV where KETQUA.MASV ='S007'

/* Cau 15: Cho biet ket qua hoc tap gom: HOSV, TENSV,TENMH,LANTHI,DIEM */ /* Giong cau 14 */

/* Cau 16: Cho biet danh sach sinh vien Nam khoa 'Cong nghe thong tin' sap tang dan theo ten */ select SINHVIEN.TEN,TENKHOA

from SINHVIEN inner join KHOA on SINHVIEN.MAKHOA=KHOA.MAKHOA where SINHVIEN.PHAI='Nam' and SINHVIEN.MAKHOA='CNTT' order by SINHVIEN.TEN

/* Cau 17: Cho biet danh sach cac mon hoc tren 40 tiet va co ten bat dau bang bang chu T */ select * from MONHOC where SOTIET>40 and TENMH like 't%' /* or */ select *from MONHOC where MAMH like't%' and SOTIET>=40

/* Cau 18: Liet ke nhung sinh vien tu 22 tuoi tro len khoa 'Cong nghe thong tin' va khoa 'Dien tu vien thong */ select *from SINHVIEN where ((year (getdate())-year(NGAYSINH))>22 and MAKHOA='CNTT' or MAKHOA='DTVT')

/*

Cau 19: Cho biet ten khoa nao khong co sinh vien */

select KHOA.TENKHOA from KHOA left outer join SINHVIEN on SINHVIEN.MAKHOA=KHOA.MAKHOA where SINHVIEN.MAKHOA is null

/* Cau 20: Cho biet danh sach sinh vien chua hoc mon nao, thong tin gom: Ho, Ten,Ngay sinh,ten khoa */

select SINHVIEN.HOSV, SINHVIEN.TEN,SINHVIEN.NGAYSINH, KHOA.TENKHOA from SINHVIEN left join KETQUA on KETQUA.MASV=SINHVIEN.masv inner join KHOA on SINHVIEN.MAKHOA=khoa.MAKHOA where ketqua.MASV is null

/* Cau 21: Cho biet nhung sinh vien da hoc mon co ma AV, sap giam dan theo theo ngay sinh */ /* Thong tin gom: MASV,HOSV,TENSV,NGAYSINH,TENKHOA */ select SINHVIEN.MASV,HOSV,TEN,NGAYSINH,KHOA.TENKHOA

from SINHVIEN left join KETQUA on SINHVIEN.MASV=KETQUA.MASV inner join KHOA on SINHVIEN.MAKHOA=KHOA.MAKHOA where SINHVIEN.MASV=KETQUA.MASV and MAMH='AV'

/* Cu 22: Cho biet ten sinh vien co diem cao nhat */ select SINHVIEN.HOSV, SINHVIEN.TEN, KETQUA.DIEM

from SINHVIEN inner join KETQUA on SINHVIEN.MASV=KETQUA.MASV where DIEM=(select MAX(DIEM) from KETQUA)

/* Cau 23: Cho biet sinh vien no rot mn CSDL lan thi thu 1 */ select SINHVIEN.HOSV,SINHVIEN.TEN from SINHVIEN inner join KETQUA on SINHVIEN.MASV=KETQUA.MASV where (KETQUA.MAMH='CSDL' and KETQUA.DIEM<5 and KETQUA.LANTHI=1)

/* Cau 24: Cho biet sinh vien nao rot mon CSDL o lan thi thu nhat ma chua thi lai lan 2*/ select SINHVIEN.HOSV,SINHVIEN.TEN from SINHVIEN inner join KETQUA on SINHVIEN.MASV=KETQUA.MASV where KETQUA.MAMH='CSDL' and KETQUA.DIEM<5 and KETQUA.LANTHI=1

and SINHVIEN.MASV not in (select MASV from KETQUA where MAMH='CSDL'and LANTHI=2 )

/* Cau 25: Dem so luong sinh vien khoa 'Quan tri kinh doanh' */ select KHOA.TENKHOA, count(*)as SOLUONGSV from SINHVIEN inner join KHOA on SINHVIEN.MAKHOA=KHOA.MAKHOA where KHOA.MAKHOA='QTKD' group by KHOA.TENKHOA

/* Cau 26: Dem so luong sinh vien cua tung khoa */ select KHOA.TENKHOA, count(*) as SOLUONGSV

from SINHVIEN inner join KHOA on SINHVIEN.MAKHOA=KHOA.MAKHOA group by KHOA.TENKHOA

/* Cau 27: Cho biet ten khoa dong sinh vien nhat */ select TENKHOA, count(*) as [So luong] from SINHVIEN inner join KHOA on SINHVIEN.MAKHOA=KHOA.MAKHOA group by TENKHOA having count(*)>=all (select COUNT(*) as[So luong] from SINHVIEN,KHOA where SINHVIEN.MAKHOA=KHOA.MAKHOA group by KHOA.MAKHOA)

/* Cau 28: Cho biet diem thap nhat cua moi mon hoc */ select TENMH, min(diem) as [DIEM THAP NHAT] from MONHOC inner join KETQUA on MONHOC.MAMH=KETQUA.MAMH group by TENMH

/* Cau 29: Cho biet ten mon hoc nao chua co sinh vien hoc */ select MONHOC.TENMH from MONHOC where MAMH not in(select distinct MAMH from KETQUA) /* distinct - hien thi danh sach gia tri khong trung lap - ly thuyet trang 93*/

/* Cau 30: Cho biet diem trung binh lan thi thu nhat cua sinh vien S004 */ select MASV,avg(DIEM) as [DIEM TRUNG BINH] from KETQUA where LANTHI='1' and MASV='S004' group by MASV

/* Cau 31: Cho biet diem trung binh, diem lon nhat, diem nho nhat lan thi thu nhat cua tung sinh vien */ /* Thong tin gom: TENSV,TENKHOA,DIEMTB */ select SINHVIEN.HOSV,SINHVIEN.TEN, KHOA.TENKHOA, avg(DIEM) as [DIEM TB], max(DIEM) as [DIEM LON NHAT], min(DIEM)as [DIEM NHO NHAT] from SINHVIEN,KETQUA,KHOA where SINHVIEN.MAKHOA=KHOA.MAKHOA and SINHVIEN.MASV = KETQUA.MASV group by SINHVIEN.HOSV,SINHVIEN.TEN,KHOA.TENKHOA

/* Cau 31: Cach khac */ select SINHVIEN.HOSV,SINHVIEN.TEN, KHOA.TENKHOA, avg(DIEM) as [DIEM TB], max(DIEM) as [DIEM LON NHAT], min(DIEM)as [DIEM NHO NHAT] from SINHVIEN inner join KETQUA on SINHVIEN.MASV=KETQUA.MASV inner join KHOA on SINHVIEN.MAKHOA=KHOA.MAKHOA group by SINHVIEN.HOSV,SINHVIEN.TEN,KHOA.TENKHOA

/* BAI TAP MINH TU RA DE VA TU GIAI CACS BAN THAM KHAO */

/* Dem so luong Nam va Nu trong bang SINHVIEN */ select PHAI,count(*) from SINHVIEN group by PHAI

/* Tong So diem cua Hoc sinh theo MAHS */ select MAMH, SUM(DIEM)as TONGDIEM from KETQUA group by MAMH

/* Dem so luong thi sinh khoa CNTT va khoa QTKD */ select MAKHOA, count(*) from SINHVIEN group by MAKHOA having (MAKHOA='CNTT' or MAKHOA='QTKD')

/* Chi hien ra nhung MAMH nao co tong diem 10 */ select MAMH , SUM(DIEM) as TONGDIEM from KETQUA group by MAMH

having SUM(DIEM)>10

/*

Chuc cac ban hoc tot! */

/* -------------------- CODE BY LUCKYFOR_KENHDAIHOC.COM----------------*/ /* -------------------- CODE BY LUCKYFOR_KENHDAIHOC.COM----------------*/ CREATE DATABASE QUANLYSINHVIEN USE QUANLYSINHVIEN SET DATEFORMAT DMY CREATE TABLE KHOA ( MAKHOA TENKHOA CHAR(5) NVARCHAR(50) NOT NULL, NOT NULL,

CONSTRAINT PK_KHOA_MAKHOA PRIMARY KEY (MAKHOA) )

CREATE TABLE SINHVIEN ( HOSV TENSV MASV NGAYSINH PHAI MAKHOA NVARCHAR(50) NVARCHAR(50) CHAR(5) DATETIME, CHAR(3), CHAR(5), NOT NULL, NOT NULL, NOT NULL,

CONSTRAINT PK_SINHVIEN_MASV PRIMARY KEY (MASV), CONSTRAINT FK_SINHVIEN_MAKHOA FOREIGN KEY (MAKHOA) REFERENCES KHOA(MAKHOA) )

CREATE TABLE MONHOC ( TENMH NVARCHAR(50) NOT NULL, MAMH CHAR(10) NOT NULL, SOTIET INT, CONSTRAINT PK_MONHOC_MAMH PRIMARY KEY (MAMH) )

CREATE TABLE KETQUA ( MASV CHAR (5) NOT NULL,

MAMH CHAR (10) NOT NULL, LANTHI DECIMAL NOT NULL, DIEM DECIMAL NOT NULL, CONSTRAINT PK_KETQUA_MASV_MAMH_LANTHI PRIMARY KEY (MASV,MAMH,LANTHI), CONSTRAINT FK_KETQUA_MASV FOREIGN KEY (MASV) REFERENCES SINHVIEN (MASV), CONSTRAINT FK_KETQUA_MAMH FOREIGN KEY (MAMH) REFERENCES MONHOC (MAMH), ) -- CU 2 : XA CC RNG BU?C KHA NGO?I THAM CHI?U ?N B?NG SINHVIEN V MONHOC

ALTER TABLE KETQUA DROP CONSTRAINT FK_KETQUA_MASV ALTER TABLE KETQUA DROP CONSTRAINT FK_KETQUA_MAMH

--CU 3 : XA B?NG KHOA V MONHOC

ALTER TABLE SINHVIEN DROP CONSTRAINT FK_SINHVIEN_MAKHOA DROP TABLE KHOA DROP TABLE MONHOC

--CU 4 : T?O L?I CC B?NG V CC KHA NGO?I XA ? CU 3 CREATE TABLE KHOA ( MAKHOA TENKHOA CHAR(5) NVARCHAR(50) NOT NULL, NOT NULL,

CONSTRAINT PK_KHOA_MAKHOA PRIMARY KEY (MAKHOA) )

CREATE TABLE MONHOC ( TENMH NVARCHAR(50) NOT NULL, MAMH CHAR(10) NOT NULL, SOTIET INT, CONSTRAINT PK_MONHOC_MAMH PRIMARY KEY (MAMH) )

ALTER TABLE SINHVIEN ADD CONSTRAINT FK_SINHVIEN_MAKHOA FOREIGN KEY (MAKHOA) REFERENCES KHOA(MAKHOA) ALTER TABLE KETQUA ADD CONSTRAINT FK_KETQUA_MASV FOREIGN KEY (MASV) REFERENCES SINHVIEN(MASV) ALTER TABLE KETQUA ADD CONSTRAINT FK_KETQUA_MAMH FOREIGN KEY (MAMH) REFERENCES MONHOC(MAMH)

--CU 5 : NH?P D? LI?U CHO T?T C? CC B?NG INSERT INTO KHOA VALUES('CNTT','CNG NGH? THNG TIN') INSERT INTO KHOA VALUES('QTKD','QU?N TR? KINH DOANH') INSERT INTO KHOA VALUES('DTVT','I?N T? VI?N THNG') INSERT INTO KHOA VALUES('AVAN','KHOA ANH VAN') INSERT INTO KHOA VALUES('SU','KHOA S?')

INSERT INTO SINHVIEN VALUES('TRAN MINH','SON','S001','1/5/1988','NAM','CNTT') INSERT INTO SINHVIEN VALUES('NGUYEN QUOC','BAO','S002','15/06/1986','NAM','CNTT') INSERT INTO SINHVIEN VALUES('PHAN ANH','TUNG','S003','20/12/1983','NAM','QTKD')

INSERT INTO SINHVIEN VALUES('BUI THI ANH','THU','S004','01/02/1985','NU','QTKD') INSERT INTO SINHVIEN VALUES('LE THI LAN','ANH','S005','03/07/1987','NU','DTVT') INSERT INTO SINHVIEN VALUES('NGUYEN THI','LAM','S006','25/11/1984','NU','DTVT') INSERT INTO SINHVIEN VALUES('PHAN THI','HA','S007','03/07/1988','NU','CNTT') INSERT INTO SINHVIEN VALUES('TRAN THE','DUNG','S008','21/10/1985','NAM','CNTT') INSERT INTO SINHVIEN VALUES('TRAN ANH HUNG','DUNG','S009','21/11/1985','NAM','DTVT') INSERT INTO SINHVIEN VALUES('ANH','HUNG','S010','2/10/1987','NAM','CNTT') INSERT INTO SINHVIEN VALUES('ANH LE','VAN','S011','21/4/1987','NAM','AVAN') INSERT INTO SINHVIEN VALUES('NGUYEN VAN','LONG','S013','7/7/1987','NAM','QTKD') INSERT INTO SINHVIEN VALUES('HOANG BA','THONG','S014','1/4/1988','NAM','AVAN') INSERT INTO SINHVIEN VALUES('CHU CHI','NHUOC','S012','1/14/1987','NU','AVAN')

INSERT INTO MONHOC VALUES('KE TOAN TAI CHINH','KTTC',45) INSERT INTO MONHOC VALUES('TOAN CAO CAP','TCC',60) INSERT INTO MONHOC VALUES('CO SO DU LIEU','CSDL',45) INSERT INTO MONHOC VALUES('KY THUAT LAP TRINH','KTLT',60) INSERT INTO MONHOC VALUES('TIN HOC VAN PHONG','THVP',30) INSERT INTO MONHOC VALUES('ANH VAN','AV',45) INSERT INTO MONHOC VALUES('TRI TUE NHAN TAO','TTNT',45)

INSERT INTO KETQUA VALUES('S001','TCC',1,5.5) INSERT INTO KETQUA VALUES('S002','CSDL',1,3) INSERT INTO KETQUA VALUES('S008','AV',1,7)

INSERT INTO KETQUA VALUES('S002','CSDL',2,6) INSERT INTO KETQUA VALUES('S003','KTTC',1,4.5) INSERT INTO KETQUA VALUES('S004','AV',1,8) INSERT INTO KETQUA VALUES('S004','THVP',1,3.5) INSERT INTO KETQUA VALUES('S006','TCC',1,5) INSERT INTO KETQUA VALUES('S001','CSDL',1,4) INSERT INTO KETQUA VALUES('S007','AV',1,2) INSERT INTO KETQUA VALUES('S004','THVP',2,7.5) INSERT INTO KETQUA VALUES('S007','KTLT',1,6) INSERT INTO KETQUA VALUES('S010','AV',2,7) INSERT INTO KETQUA VALUES('S009','AV',2,8) INSERT INTO KETQUA VALUES('S011','CSDL',1,8) INSERT INTO KETQUA VALUES('S0011','AV',2,9) INSERT INTO KETQUA VALUES('S009','KTLT',1,9)

--CU 6 : S?A S? TI?T C?A MN TR TU? NHN T?O THNH 30 TI?T UPDATE MONHOC SET SOTIET = 30 WHERE TENMH='TRI TUE NHAN TAO'

-- THM : UPDATE KETQUA SET DIEM = 5

S?A K?T QU? THI MN CSDL C?A SV C M S001 THNH 5 I?M

WHERE MASV='S001' AND MAMH='CSDL'

--CU 7 : XA K?T QU? C?A SINH VIN C M S001

SELECT * FROM KETQUA

DELETE FROM KETQUA WHERE MASV='S001' --CU 8 : CHN L?I CC B? C?A SINH VIN V?A XA ? CU 7 INSERT INTO KETQUA VALUES('S001','TCC',1,5.5) INSERT INTO KETQUA VALUES('S001','CSDL',1,4)

--CU 9 : S?A SINH VIN 'NGUYEN THI LAM' THNH 'NGUYEN THANH SON' V PHI THNH 'NAM' SELECT * FROM SINHVIEN

UPDATE SINHVIEN SET HOSV='NGUYEN THANH' , TENSV = 'SON' , PHAI = 'NAM' WHERE HOSV='NGUYEN THI' AND TENSV = 'LAM' --CU 10 : CHUY?N SV 'LE THI LAN ANH' SANG KHOA CNTT SELECT * FROM SINHVIEN

UPDATE SINHVIEN SET MAKHOA = 'CNTT' WHERE HOSV+' '+TENSV = 'LE THI LAN ANH'

--CU 11 : CHO BI?T K?T QU? H?C T?P C?A SINH VIN C M S007 SELECT * FROM KETQUA

SELECT * FROM KETQUA WHERE MASV = 'S007'

--CU 12 : LI?T K NH?NG SINH VIN SINH VO NGY 3/7 SELECT * FROM SINHVIEN

SELECT * FROM SINHVIEN WHERE DAY(NGAYSINH)=03 AND MONTH(NGAYSINH)=07 -- NAM 1988 SELECT * FROM SINHVIEN WHERE YEAR(NGAYSINH)=1988

--CU 13 : CHO BI?T SINH VIN H? C CH?A CH? ANH SELECT * FROM SINHVIEN

SELECT * FROM SINHVIEN WHERE HOSV LIKE'%ANH%'

--CU 14 : CHO BI?T K?T QU? H?C T?P G?M : HOSV,TENSV,MAMH,LANTHI,DIEM C?A SV C M S007

SELECT HOSV,TENSV,MAMH,LANTHI,DIEM

FROM SINHVIEN S,KETQUA K WHERE S.MASV = K.MASV AND KETQUA.MASV='S007'

--CU 15 : CHO BI?T K?T QU? H?C T?P G?M : HOSV,TENSV,TENMH,LANTHI,DIEM C?A SV C M S007

SELECT HOSV,TENSV,S.MASV,TENMH,LANTHI,DIEM FROM SINHVIEN S,KETQUA K,MONHOC M WHERE S.MASV = K.MASV AND K.MAMH = M.MAMH AND K.MASV='S007'

--CU 16 : CHO BI?T DANH SCH NAM SINH VIN KHOA CNTT S?P TANG D?N THEO TN SELECT * FROM SINHVIEN WHERE PHAI='NAM' AND MAKHOA='CNTT' ORDER BY TENSV

--CU 17 : CHO BI?T DANH SCH CC MN H?C TRN 40 TI?T V C TN B?T ?U B?NG CH? T

SELECT * FROM MONHOC WHERE SOTIET > 40 AND TENMH LIKE ('T%') --CU 18 : LI?T K NH?NG SV 22 TU?I TR? LN KHOA CNTT V DTVT SELECT HOSV,TENSV,MASV,NGAYSINH,PHAI,S.MAKHOA FROM SINHVIEN S,KHOA K

WHERE S.MAKHOA = K.MAKHOA AND TENKHOA IN ('CNG NGH? THNG TIN','I?N T? VI?N THNG') AND YEAR(GETDATE())-YEAR(NGAYSINH)>=22

--CU 19 : CHO BI?T TN KHOA NO KO C SINH VIN SELECT * FROM KHOA WHERE MAKHOA NOT IN (SELECT MAKHOA FROM SINHVIEN)

--CU 20 : CHO BI?T DANH SCH SV CHUA H?C MN NO ,THNG TIN G?M HO TEN,NGAY SINH,TEN KHOA SELECT HOSV,TENSV,NGAYSINH,TENKHOA FROM SINHVIEN S,KHOA K WHERE S.MAKHOA=K.MAKHOA AND MASV NOT IN (SELECT MASV FROM KETQUA) --CU 21 : CHO BI?T DS SV H?C NH?NG MN C M AV,S?P GI?M D?N THEO NGY SINH --THNG TIN HI?N TH? G?M : MASV,HOSV,TENSV,NGAYSINH,TENKHOA SELECT DISTINCT S.MASV,HOSV,TENSV,NGAYSINH,TENKHOA

FROM SINHVIEN S,KHOA K,KETQUA KQ WHERE S.MAKHOA = K.MAKHOA AND S.MASV = KQ.MASV AND S.MASV IN (SELECT MASV FROM KETQUA WHERE MAMH='AV') ORDER BY NGAYSINH DESC

--CU 22 : CHO BI?T SV U?C I?M CAO NH?T

SELECT S.MASV,HOSV,TENSV,DIEM,MAMH FROM SINHVIEN S,KETQUA K WHERE S.MASV = K.MASV AND DIEM = (SELECT MAX(DIEM) FROM KETQUA)

--CU 23 : CHO BI?T SINH VIN R?T MN CSDL ? L?N THI 1 SELECT S.MASV,HOSV,TENSV,MAMH,DIEM FROM SINHVIEN S,KETQUA K WHERE S.MASV=K.MASV AND MAMH='CSDL' AND DIEM <5 --CU 24 : CHO BI?T SINH VIN R?T MN CSDL ? L?N THI 1 -- M CHUA THI L?I ? L?N THI TH? 2 SELECT S.MASV,HOSV,TENSV,MAMH,DIEM FROM SINHVIEN S,KETQUA K WHERE S.MASV=K.MASV AND MAMH='CSDL' AND DIEM <5 AND S.MASV NOT IN (SELECT MASV FROM KETQUA WHERE MAMH='CSDL' AND LANTHI='2') --CU 25 : ?M S? LU?G SINH VIN C?A KHOA QU?N TR? KINH DOANH SELECT COUNT(*) AS [QTKD]

FROM SINHVIEN S,KHOA K WHERE S.MAKHOA=K.MAKHOA AND TENKHOA = 'QU?N TR? KINH DOANH'

--CU 26 : ?M S? LU?NG SINH VIN C?A T?NG KHOA SELECT K.MAKHOA,COUNT(*) AS [SO LUONG] FROM SINHVIEN S,KHOA K WHERE S.MAKHOA=K.MAKHOA GROUP BY K.MAKHOA --CU 27: CHO BIET TEN KHOA CO DONG SINH VIEN NHAT SELECT TENKHOA, COUNT(*) AS[SO LUONG] FROM SINHVIEN,KHOA WHERE SINHVIEN.MAKHOA=KHOA.MAKHOA GROUP BY TENKHOA HAVING COUNT(*)>=ALL (SELECT COUNT(*) AS [SO LUONG] FROM SINHVIEN,KHOA SINHVIEN.MAKHOA=KHOA.MAKHOA GROUP BY KHOA.MAKHOA) WHERE

--CU

: 28: CHO BIET DIEM THAP NHAT CUA MOI MON HOC

SELECT MAMH,MIN(DIEM) AS [MIN DIEM] FROM KETQUA GROUP BY MAMH

-- CU : 29: CHO BIET TEN MON HOC NAO CHUA CO SINH VIEN HOC SELECT TENMH FROM MONHOC WHERE MAMH NOT IN(SELECT DISTINCT MAMH FROM KETQUA)

-- CU : 30: CHO BIET DIEM TRUNG BINH LAN THI THU NHAT CUA SINH VIEN S004 SELECT MASV,AVG(DIEM) AS [DIEM TB] FROM KETQUA WHERE LANTHI=1 AND MASV='S004' GROUP BY MASV

-- CU : 31: CHO BIET DIEM TRUNG BINH, DIEM LON NHAT, DIEM NHO NHAT LAN THU NHAT CUA TUNG SINH VIEN.-- KHIGIADANO : THONG TIN GOM TENSV, TENKHOA, DIEMTB

SELECT HOSV,TENSV,TENKHOA,AVG(DIEM) AS [DIEM TB],MAX(DIEM) AS [DIEM MAX],MIN(DIEM) AS [DIEM MIN] FROM KETQUA,SINHVIEN,KHOA WHERE SINHVIEN.MASV=KETQUA.MASV AND SINHVIEN.MAKHOA=KHOA.MAKHOA LANTHI=1 GROUP BY HOSV,TENSV,TENKHOA AND

-=------------

create table Sach ( MaSach int identity(1,1) primary key, TenSach nvarchar(50), TacGia nvarchar(50), NhaXB nvarchar(50), ChuDe nvarchar(50), DonGia int, TonKho smallint ); create table KhachHang ( MaKH int identity(1,1) primary key, TenKH nvarchar(50), DiaChi nvarchar(50), Quan nvarchar(20), DienThoai varchar(20) ); create table SachBan ( SoHD int identity(1,1) primary key, MaKH int foreign key references KhachHang(MaKH), MaSach int foreign key references Sach(MaSach), NgayBan datetime, DonGia int, SoLuong smallint ); cho cc d liu mu sau: -====================== Sach ===================== INSERT Sach VALUES ('Hong hn trn sng','Gia Phong','NXB Gio dc','Tinh Yu',120,11) INSERT Sach VALUES('Cy la nc','Le May','NXB Gio dc','Khoa hc',30,24) INSERT Sach VALUES ('Tm l trc ma thi','Hai Dang','NXB KHKT','Tm l',42,32) ======================Khach Hang ===================== INSERT KhachHang VALUES ('Le Cong','22 Hang Buom','Hoan Kiem','0980123456') INSERT KhachHang VALUES ('Van Nghe','19 Lo Duc','Hoan Kiem','0980123456') INSERT KhachHang VALUES ('Tran Thong','19 Doi Can','Ba Dinh','0980123456') INSERT KhachHang VALUES ('Hoang Tin','38 Linh Nam','Hoang Mai','0980123456') ====================== SachBan =====================

INSERT SachBan VALUES (1,2,'11/22/2006',30,5) INSERT SachBan VALUES (1,3,'7/15/2005',120,4) INSERT SachBan VALUES (2,1,'5/24/2006',120,7) INSERT SachBan VALUES (3,1,'11/15/2005',42,9) Cu hi : 1.Vit cc cu truy vn d liu (query) a).Vit cu lnh SQL cho kt qu l danh sch cc nh xut bn cng vi s u sch tng ng ca tng NhaXB, theo th t tng dn ca tn NhaXB b).Vit cu lnh SQL cho kt qu l danh sch cc khch hng, cng vi tn cc nh xut bn ca nhng u sch m khch hng mua. 2.To view tn 'View_ThongKe' cho kt qu l danh sch cc qun, cng vi tng gi tr mua sch ca cc khch hng sng trong qun . Sp xp theo th t gim dn ca gi tr. 3.Vit mt script to stored procedure vi cc yu cu sau: - Tn Procedure: procSachBan - Tham s: pChuDe - X l: + Nu thng s pChuDe khng c truyn, procedure s lit k danh sch tt c cc quyn sch bn (trong bng SACHBAN) gm: MaSach, TenSach, SoLuong, ThanhTien. Lu l mt quyn sch vi tiu no c th c bn nhiu ln vi s lng khc nhau, nhng trong danh sch trn th MaSach va TenSach ch hin th mt ln, khng lp li. + Nu thng s pChuDe c truyn, procedure s lit k danh sch tt c cc quyn sch bn (trong bng SACHBAN) gm: MaSach, TenSach, SoLuong, ThanhTien, nhng ch gm nhng quyn thuc ch pChuDe m thi. 4.To trigger tn trigger_giamgia cho bng SachBan khi insert v update record mi tha mn yu cu sau: + nu khch hng qun Ba nh v thng bn sch l thng 12 th n gi = 0 + ngc li vn tnh gi bnh thng

Bi 1: Cho mt lc c s d liu nh sau: EMP(EmpNo, Ename, Job, Mgr, HireDate, Sal, Comm, DeptNo, Grade) DEPT(DeptNo, Dname, Loc) SALGRADE(Grade, Losal, Hisal) Trong cc bng quan h c ngha nh sau: -EMP: Lu cc thng tin ca nhn vin, bao gm cc thng tin: M nhn vin (EmpNo), Tn ca nhn vin: Ename, Ngh nghip (Job), M ngi qun l trc tip (Mgr), ngy vo lm (HireDate), lng hng thng (Sal), ph cp hng thng (Comm) v m phng ban (DeptNo) m nhn vin ny ang lm vic, Grade l m mc lng ca nhn vin -DEPT: Lu cc thng tin v phng ban bao gm cc thng tin: M phng ban (DeptNo), tn phng ban (Dname), Ni t vn phng (Loc) -SALGRADE: Lu cc thng tin v mc lng bao gm cc thng tin: M mc lng (Grade), lng thp nht (Losal), lng cao nht (Hisal) -Cc field c gch di l kho chnh Dng SQL tr li cc cu truy vn sau y: 1.Nu tn phng m nhn vin SMITH lm vic 2.Lit k nhng nhn vin c tn bt u bng ch A 3.Lit k tt c cc phng ban ng ti thnh ph H Ch Minh 4.Lit k m s nhn vin, tn nhn vin, tn phng, lng v bc lng ca mi nhn vin 5.Lit k nhng nhn vin no c thm nin lm vic lu nht 6.Lit k nhng nhn vin khng c ph cp hng thng. Bit rng nhng nhn vin c gi tr ca field Comm bng 0 hay Null u c xem l khng c ph cp 7.Lit k m s nhn vin, tn nhn vin, tn phng ban v thu nhp hng nm ca anh ta. Bit rng thu nhp hng nm = (Salary + Comm) * 12 v nu Comm l Null th c xem l 0 8.Lit k nhng nhn vin c chc v cao nht trong cng ty. Bit rng nhn vin c chc v cao nht l nhn vin khng chu s qun l ca bt k mt nhn vin no khc 9.Lit k nhng nhn vin c chc v thp nht trong cng ty: Nhn vin khng lm qun l cho nhn vin no c 10.Lit k tn ca nhn vin v tn ca ngi qun l trc tip ca h 11.Cho bit phng ti chnh (FINANCE) c bao nhiu nhn vin 12.Lit k tn ca cc phng ban, km theo tng s nhn vin trong phng ban 13.Lit k tn phng ban, s lng nhn vin ca cc phng ban c nhiu nhn vin nht 14.Cho bit tng s tin lng phi tr hng thng cho cc nhn vin theo tng phng ban 15.Lit k nhng phng ban no c tng s tin lng phi tr hng thng nhn vin hng thng l ln nht 16.Tnh thu nhp bnh qun ca cc nhn vin 17.Lit k tt c cc nhn vin c lng cao hn mc lng trung bnh ca tt c mi nhn vin 18.Lit k nhng nhn vin c lng cao hn lng ca ngi qun l mnh 19.Lit k nhng nhn vin c lng thp nht 20.Lit k nhng nhn vin c lng thp nht trong mi phng ban 21.Lit k 3 nhn vin c lng ln nht

Ln sa cui bi 063106222; 08-23-2008 lc 11:21 PM L do: cho d nhn hn #2 08-19-2008, 02:24 AM

Sinh_Nguyen Mod Lp

Tham gia ngy: Oct 2007 n t: Secret location Bi gi: 585 Thanks: 39 Thanked 285 Times in 108 Posts

EMP(EmpNo, Ename, Job, Mgr, HireDate, Sal, Comm, DeptNo,Grade) DEPT(DeptNo, Dname, Loc) SALGRADE(Grade, Losal, Hisal)

1.Nu tn phng m nhn vin SMITH lm vic Select Dname from EMP,DEPT where EMP.DeptNo=DEPT.DeptNo AND Ename='SMITH' 2.Lit k nhng nhn vin c tn bt u bng ch A Select * From EMP Where Ename like 'A%' 3.Lit k tt c cc phng ban ng ti thnh ph H Ch Minh Select * From DEPT where Loc like '% H Ch Minh %' 4.Lit k m s nhn vin, tn nhn vin, tn phng, lng v bc lng ca mi nhn vin Select * From EMP 5.Lit k nhng nhn vin no c thm nin lm vic lu nht Select * From EMP Where HireDate = (select Min(HireDate) from EMP) 6.Lit k nhng nhn vin khng c ph cp hng thng. Bit rng nhng nhn vin c gi tr ca field Comm bng 0 hay Null u c xem l khng c ph cp Select * from EMP where Comm IS NULL

7.Lit k m s nhn vin, tn nhn vin, tn phng ban v thu nhp hng nm ca anh ta. Bit rng thu nhp hng nm = (Salary + Comm) * 12 v nu Comm l Null th c xem l 0 Select EmpNo,Ename,Dname, (Sal + Comm)*12 AS ThuNhap from EMP,DEPT where EMP.DeptNo=DEPT.DeptNo 8.Lit k nhng nhn vin c chc v cao nht trong cng ty. Bit rng nhn vin c chc v cao nht l nhn vin khng chu s qun l ca bt k mt nhn vin no khc Select * from EMP where Mrg IS NULL 9.Lit k nhng nhn vin c chc v thp nht trong cng ty: Nhn vin khng lm qun l cho nhn vin no c Cu ny ko hiu r cho lm, v d ng gim c qun l ng trng phng, ng trng phng qun l ng nhn vin. Vn l ch lm sao bit c ng ny l ng nhn vin, trong khi ng trng phng v ng nhn vin u c Mrg l NOT NULL ( hnh nh c s d liu cho thiu hay sao ) Bc no lm c gip ci. Cu ny bc oiziz lm c, ti xin trch lun vo y Select * from EMP where EmpNo Not In (select distinct Mgr from EMP) 10.Lit k tn ca nhn vin v tn ca ngi qun l trc tip ca h Select Ename,Mrg From EMP Where Mrg IS NOT NULL 11.Cho bit phng ti chnh (FINANCE) c bao nhiu nhn vin Select Count AS SoNV From EMP Where DeptNo=(select DeptNo from DEPT where Dname='FINANCE') 12.Lit k tn ca cc phng ban, km theo tng s nhn vin trong phng ban Select Dname, Count AS TongSN from EMP,DEPT where EMP.DeptNo=DEPT.DeptNo Group by Dname (ch l count * nh, ti ci code ca forum n to ra biu tng ngi sao) 13.Lit k tn phng ban, s lng nhn vin ca cc phng ban c nhiu nhn vin nht

Select Dname, Count AS SLNV from EMP,DEPT Where EMP.DeptNo=DEPT.DeptNo Gruop by Dname Having Count = ( select Max(A) from (Select Dname, Count from EMP,DEPT Where EMP.DeptNo=DEPT.DeptNo Group by Dname))

AS A

14.Cho bit tng s tin lng phi tr hng thng cho cc nhn vin theo tng phng ban Select DeptNo, SUM(Sal + Comm) AS TongLuongThang From EMP Group by DeptNo 15.Lit k nhng phng ban no c tng s tin lng phi tr hng thng nhn vin hng thng l ln nht Select DeptNo, From EMP Group by DeptNo Having SUM(Sal + Comm) =( select MAX (A) from ( Select DeptNo,SUM(Sal + Comm) AS A From EMP Group by DeptNo)) 16.Tnh thu nhp bnh qun ca cc nhn vin Thu nhp bnh quan theo thng Select AVG(Sal + Comm) AS ThuNhapBQ from EMP Thu nhp bnh qun theo nm Select AVG((Sal + Comm)*12) AS ThuNhapBQ from EMP 17.Lit k tt c cc nhn vin c lng cao hn mc lng trung bnh ca tt c mi nhn vin Select * From EMP Where (Sal+Comm)> (Select AVG(Sal + Comm) from EMP) ang lm nt, cc bc chi kh ch nh, ai lm c post ln nh. T cu 18 tr i l bt u kh nhai ri, cn thi gian suy ngh, hn gp li cc bc. 20.Lit k nhng nhn vin c thu nhp thp nht trong mi phng ban ( c lng thp nht th b "+Comm" i nh)

Ti lm cu 20 th ny, cc bc xem nh Q3: a ra m phng, m nhn vin, v lng ca cc nhn vin trong phng Q2: a ra m phng m nhn vin c lng thp nht trong phng Q4: a ra nhng m cc nhn vin c lng thp nht trong Q2 Kt ni 2 truy vn Q1 v Q4 l ta c kt qu ca bi ton Select Q1.DeptNo, Q1.EmpNo, Q1.Ename From (Select DeptNo,EmpNo, Ename From EMP ) AS Q1, ( Select EmpNo from ( Select Q2.DeptNo, Q2.EmpNo,Q2.Luong from( Select DeptNo,EmpNo, (Sal+Comm) AS Luong ) AS Q2 Group by Q2.DeptNo,Q2.EmpNo,Q2.Luong Having Q2.Luong IN ( Select minLuong from ( Select Q3.DeptNo, MIN (Luong ) AS minLuong From ( Select DeptNo,EmpNo, (Sal+Comm) AS Luong From EMP Group by DeptNo,EmpNo ) AS Q3 Group by Q2.DeptNo ) ) ) AS Q4 Where Q1.EmpNo=Q4.EmpNo Group by Q1.DeptNo, Q1.EmpNo, Q1.Ename Xin cc bc cho kin cu 20 ny Cu 20 ny, bn NguyenViet lm c, mnh thy rt ng, sa lun ti y cho cc bn tham kho SELECT ename FROM emp WHERE deptno in(SELECT deptno FROM emp GROUP BY deptno HAVING (sal+comm)=(select min(sal+comm) from emp group by deptno))

You might also like