You are on page 1of 4

BÀI TẬP SQL

--a--
SELECT MASV, HOTEN, PHAI, NGAYSINH
FROM SINHVIEN

--b--
SELECT SV.MASV, SV.HOTEN, SV.PHAI, SV.NGAYSINH
FROM SINHVIEN SV JOIN NGANH N ON SV.MANGANH = N.MANGANH
WHERE N.TENNGANH = N'Hệ thống thông tin'

--c--
SELECT *
FROM NGANH
WHERE TSSV > 2000

--d--
SELECT MACD, TENCD
FROM CHUYENDE
WHERE SOSV <= 100

--e--
SELECT MACD, TENCD
FROM CHUYENDE
WHERE MACD IN (SELECT CDN.MACD
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
WHERE N.TENNGANH = N'Mạng máy tính')

--f--
SELECT CD.MACD, CD.TENCD, COUNT(MANGANH) AS SO_NGANH
FROM CD_NGANH CDN JOIN CHUYENDE CD ON CDN.MACD = CD.MACD
GROUP BY CD.MACD, CD.TENCD

--g--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
JOIN CHUYENDE CD ON CD.MACD = DK.MACD
WHERE CD.TENCD = 'Java'
GROUP BY SV.MASV, SV.HOTEN
HAVING COUNT(CD.TENCD) > 1

--h--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN NGANH N ON SV.MANGANH = N.MANGANH
WHERE N.TENNGANH = N'Hệ thống thông tin'
INTERSECT
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
JOIN CHUYENDE CD ON CD.MACD = DK.MACD
WHERE CD.TENCD = 'Oracle'

--i--
SELECT N.MANGANH, N.TENNGANH
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
GROUP BY N.MANGANH, N.TENNGANH
HAVING COUNT(N.MANGANH) > 2

--j--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
WHERE DK.HOCKY = 1 AND DK.NAM = 2009
GROUP BY SV.MASV, SV.HOTEN
HAVING COUNT(DK.MACD) > 2
--k--
SELECT N.MANGANH, N.TENNGANH
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
JOIN CHUYENDE CD ON CDN.MACD = CD.MACD
WHERE CD.TENCD = 'Java'
UNION
SELECT N.MANGANH, N.TENNGANH
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
JOIN CHUYENDE CD ON CDN.MACD = CD.MACD
WHERE CD.TENCD = 'Oracle'

--l--
SELECT N.MANGANH, N.TENNGANH
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
JOIN CHUYENDE CD ON CDN.MACD = CD.MACD
WHERE CD.TENCD = 'Java'
INTERSECT
SELECT N.MANGANH, N.TENNGANH
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
JOIN CHUYENDE CD ON CDN.MACD = CD.MACD
WHERE CD.TENCD = 'Oracle'

--m--
SELECT N.MANGANH, N.TENNGANH
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
JOIN CHUYENDE CD ON CDN.MACD = CD.MACD
WHERE CD.TENCD = 'Java'
EXCEPT
SELECT N.MANGANH, N.TENNGANH
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
JOIN CHUYENDE CD ON CDN.MACD = CD.MACD
WHERE CD.TENCD = 'Oracle'

--n--
SELECT CD.TENCD
FROM CHUYENDE CD JOIN DANGKY DK ON CD.MACD = DK.MACD
WHERE DK.MASV = '0012345'

--o--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
WHERE DK.HOCKY = 1 AND DK.NAM = 2004
GROUP BY SV.MASV, SV.HOTEN
HAVING COUNT(DK.MACD) = 2

--p--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
WHERE DK.HOCKY = 1 AND DK.NAM = 2004 AND DK.DIEM = N'Đạt'
GROUP BY SV.MASV, SV.HOTEN
HAVING COUNT(DK.MACD) = 2

--q--
SELECT DISTINCT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
WHERE NOT EXISTS (SELECT CDN.MACD
FROM CD_NGANH CDN JOIN NGANH N ON N.MANGANH = CDN.MANGANH
WHERE TENNGANH = N'Hệ thống thông tin'
EXCEPT
SELECT DK.MACD
FROM DANGKY DK
WHERE SV.MASV = DK.MASV)
--r--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
WHERE DK.NAM = 2005
GROUP BY SV.MASV, SV.HOTEN
HAVING COUNT(DK.MACD) > 1

--s--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN NGANH N ON SV.MANGANH = N.MANGANH
WHERE N.TENNGANH = N'Hệ thống thông tin'
INTERSECT
(SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
JOIN CHUYENDE CD ON DK.MACD = CD.MACD
WHERE CD.TENCD = 'Oracle'
EXCEPT
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
JOIN CHUYENDE CD ON DK.MACD = CD.MACD
WHERE CD.TENCD = 'CSDL phân tán')

--t--
SELECT MANGANH, TENNGANH, TSSV
FROM NGANH

--u--
SELECT MASV, MACD, HOCKY, NAM
FROM DANGKY
WHERE HOCKY = 1 AND NAM = 2010
AND MASV IN ( SELECT SV.MASV
FROM SINHVIEN SV JOIN NGANH N ON SV.MANGANH = N.MANGANH
WHERE TENNGANH = N'Hệ thống thông tin')
AND MACD IN ( SELECT CDN.MACD
FROM CD_NGANH CDN JOIN NGANH N ON CDN.MANGANH = N.MANGANH
WHERE TENNGANH = N'Hệ thống thông tin')

--v--
SELECT MASV, HOTEN
FROM SINHVIEN
WHERE MASV NOT IN (SELECT MASV
FROM DANGKY)

--w--
SELECT CDM.HOCKY, CDM.NAM
FROM CD_MO CDM
WHERE NOT EXISTS ( SELECT CDN.MACD
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
WHERE N.TENNGANH = N'Hệ thống thông tin'
AND NOT EXISTS ( SELECT CDM2.MACD
FROM CD_MO CDM2
WHERE CDM2.NAM = CDM.NAM
AND CDM2.HOCKY = CDM.HOCKY
AND CDM2.MACD = CDM.MACD))

--x--
SELECT CD.MACD, CD.TENCD
FROM CD_NGANH CDN JOIN CHUYENDE CD ON CD.MACD = CDN.MACD
WHERE MANGANH IN(SELECT MANGANH
FROM SINHVIEN
WHERE MASV = '0012345')
EXCEPT
SELECT CD.MACD, CD.TENCD
FROM CHUYENDE CD JOIN DANGKY DK ON DK.MACD = CD.MACD
WHERE DK.MASV = '0012345'

--y--
SELECT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN NGANH N ON SV.MANGANH = N.MANGANH
JOIN DANGKY DK ON DK.MASV = SV.MASV
WHERE N.TENNGANH = N'Hệ thống thông tin'
GROUP BY SV.MASV, SV.HOTEN
HAVING COUNT(DK.MACD) = 1

--z--
SELECT CD.TENCD
FROM CHUYENDE CD JOIN CD_NGANH CDN ON CD.MACD = CDN.MACD
GROUP BY CD.MACD, CD.TENCD
HAVING COUNT(CDN.MANGANH) = (SELECT COUNT(MANGANH)
FROM NGANH)

--aa--
SELECT CDN.MACD
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
WHERE N.TENNGANH = N'Mạng máy tính'
INTERSECT
SELECT MACD
FROM CD_MO
WHERE HOCKY = 1 AND NAM = 2005

--bb--
SELECT CDN.MACD
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
WHERE N.TENNGANH = N'Hệ thống thông tin'
INTERSECT
SELECT CDN.MACD
FROM NGANH N JOIN CD_NGANH CDN ON N.MANGANH = CDN.MANGANH
WHERE N.TENNGANH = N'Công nghệ tri thức'

--cc--
SELECT DISTINCT SV.MASV, SV.HOTEN
FROM SINHVIEN SV JOIN DANGKY DK ON SV.MASV = DK.MASV
WHERE NOT EXISTS ( SELECT MASV
FROM DANGKY
GROUP BY MASV
HAVING COUNT(DISTINCT MACD) <> COUNT(MACD))

You might also like