





Preview text:
lOMoARcPSD| 45315597
-- BÀI THỰC HÀNH SỐ 2: Thao tác Cơ sở dữ li u sử dụng T-SQLệ use QLBongDa; -- a. Truy vấn cơ bản
-- 1. Cho biết thông tin (mã cầu thủ, họ tên, số áo, vị trí, ngày sinh, địa chỉ)
-- của tất cả các cầu thủ
SELECT MACT, HOTEN, SO, VITRI, NGAYSINH, DIACHI FROM CAUTHU;
-- 2. Hiển thị thông tin tất cả các cầu thủ có số áo là 7 chơi ở vị trí Tiền vệ SELECT * FROM CAUTHU
WHERE SO = 7 AND VITRI = N'Tiền v ';ệ
-- 3. Cho biết tên, ngày sinh, địa chỉ, điện thoại của tất cả các huấn luyện viên
SELECT TENHLV, NGAYSINH, DIACHI, DIENTHOAI FROM HUANLUYENVIEN;
-- 4. Hiển thi thông tin tất cả các cầu thủ có quốc tịch Việt Nam
-- thuộc câu lạc bộ Becamex Bình Dương SELECT ct.*
FROM CAUTHU ct, CAULACBO clb, QUOCGIA qg
WHERE ct.MAQG = qg.MAQG AND TENQG = N'Vi t Nam'ệ
AND ct.MACLB = clb.MACLB AND TENCLB = N'BECAMEX BÌNH DƯƠNG';
-- 5. Cho biết mã số, họ tên, ngày sinh, địa chỉ và vị trí lOMoARcPSD| 45315597
-- của các cầu thủ thuộc đội bóng ‘SHB Đà Nẵng’ có quốc tịch Bra-xin
SELECT MACT, HOTEN, NGAYSINH, DIACHI, VITRI
FROM CAUTHU ct, CAULACBO clb, QUOCGIA qg
WHERE ct.MACLB = clb.MACLB AND TENCLB = N'SHB Đà Nẵng'
AND ct.MAQG = qg.MAQG AND TENQG = N'Bra-xin';
-- 6. Hiển thị thông tin tất cả các cầu thủ đang thi đấu
-- trong câu lạc bộ có sân nhà là “Long An” SELECT ct.*
FROM CAUTHU ct, CAULACBO clb, SANVD svd WHERE ct.MACLB = clb.MACLB AND clb.MASAN = svd.MASAN AND svd.TENSAN = N'Long An';
-- 7. Cho biết kết quả (MATRAN, NGAYTD, TENSAN, TENCLB1, TENCLB2, KETQUA)
-- các trận đấu vòng 2 của mùa bóng năm 2009
SELECT MATRAN, NGAYTD, svd.TENSAN, clb1.TENCLB AS [TENCLB1], clb2.TENCLB AS [TENCLB2], KETQUA
FROM TRANDAU td, SANVD svd, CAULACBO clb1, CAULACBO clb2
WHERE clb1.MACLB = td.MACLB1 AND clb2.MACLB = td.MACLB2 AND svd.MASAN = td.MASAN AND VONG = 2 and NAM = 2009;
-- 8. Cho biết mã huấn luyện viên, họ tên, ngày sinh, địa chỉ, vai trò và tên CLB
-- đang làm việc của các huấn luyện viên có quốc tịch “ViệtNam”
SELECT hlv.MAHLV, TENHLV, NGAYSINH, DIACHI, VAITRO, TENCLB
FROM HUANLUYENVIEN hlv, HLV_CLB, CAULACBO clb, QUOCGIA qg
WHERE hlv.MAHLV = HLV_CLB.MAHLV AND HLV_CLB.MACLB = clb.MACLB lOMoARcPSD| 45315597
AND hlv.MAQG = qg.MAQG AND TENQG = N'Vi t Nam';ệ
-- 9. Lấy tên 3 câu lạc bộ có điểm cao nhất sau vòng 3 năm 2009 SELECT TOP 3 TENCLB FROM CAULACBO clb, BANGXH bxh WHERE clb.MACLB = bxh.MACLB AND VONG = 3 AND NAM = 2009 ORDER BY DIEM DESC;
-- 10. Cho biết mã huấn luyện viên, họ tên, ngày sinh, địa chỉ, vai trò và tên CLB
-- đang làm việc mà câu lạc bộ đó đóng ở tỉnh Bình Dương
SELECT hlv.MAHLV, TENHLV, NGAYSINH, DIACHI, VAITRO,
TENCLB from HUANLUYENVIEN hlv, HLV_CLB, CAULACBO clb,
TINH where hlv.MAHLV = HLV_CLB.MAHLV AND hlv_clb.MACLB = clb.MACLB AND clb.MATINH = TINH.MATINH
AND TENTINH = N'Bình Dương';
-- b. Các phép toán trên nhóm
-- 1. Thống kê số lượng cầu thủ của mỗi câu lạc bộ
SELECT TENCLB, COUNT(MACT) AS [Số lượng cầu thủ] FROM CAULACBO clb, CAUTHU ct WHERE clb.MACLB = ct.MACLB GROUP BY TENCLB;
-- 2. Thống kê số lượng cầu thủ nước ngoài (có quốc tịch khác Việt Nam)
-- của mỗi câu lạc bộ lOMoARcPSD| 45315597
SELECT TENCLB, COUNT(MACT) AS [Số lượng cầu thủ nước ngoài]
FROM CAULACBO clb, CAUTHU ct, QUOCGIA qg WHERE clb.MACLB = ct.MACLB AND ct.MAQG = qg.MAQG
AND TENQG <> N'Vi t Nam'ệ GROUP BY TENCLB;
-- 3. Cho biết mã câu lạc bộ, tên câu lạc bộ, tên sân vận động, địa chỉ
-- và số lượng cầu thủ nước ngoài (có quốc tịch khác Việt Nam) tương ứng
-- của các câu lạc bộ có nhiều hơn 2 cầu thủ nước ngoài
SELECT clb.MACLB, TENCLB, TENSAN, svd.DIACHI, COUNT(MACT) AS [Số lượng cầu thủ nước ngoài]
FROM CAULACBO clb, SANVD svd, CAUTHU ct, QUOCGIA qg WHERE clb.MASAN = svd.MASAN AND clb.MACLB = ct.MACLB AND ct.MAQG = qg.MAQG
AND TENQG <> N'Vi t Nam'ệ
GROUP BY clb.MACLB, TENCLB, TENSAN, svd.DIACHI HAVING COUNT(MACT) > 2;
-- 4. Cho biết tên tỉnh, số lượng cầu thủ đang thi đấu ở vị trí tiền đạo
-- trong các câu lạc bộ thuộc địa bàn tỉnh đó quản lý
SELECT TENTINH, COUNT(MACT) AS [Số lượng cầu thủ đang thi đấu ở vị trí tiền đạo]
FROM TINH, CAULACBO clb, CAUTHU ct
WHERE TINH.MATINH = clb.MATINH AND clb.MACLB = ct.MACLB AND VITRI = N'Tiền đạo' GROUP BY TENTINH; lOMoARcPSD| 45315597
-- 5. Cho biết tên câu lạc bộ, tên tỉnh mà CLB đang đóng nằm ở vị trí cao nhất
-- của bảng xếp hạng vòng 3, năm 2009 SELECT TOP 1 TENCLB, TENTINH
FROM CAULACBO clb, TINH, BANGXH bxh WHERE bxh.MACLB = clb.MACLB AND clb.MATINH = TINH.MATINH AND VONG = 3 AND NAM = 2009;
-- c. Các toán tử nâng cao
-- 1. Cho biết tên huấn luyện viên đang nắm giữ một vị trí
-- trong một câu lạc bộ mà chưa có số điện thoại SELECT TENHLV
FROM HUANLUYENVIEN hlv,HLV_CLB
WHERE hlv.MAHLV = HLV_CLB.MAHLV
AND HLV_CLB.VAITRO IS NOT NULL AND hlv.DIENTHOAI IS NULL;
-- 2. Liệt kê các huấn luyện viên thuộc quốc gia Việt Nam
-- chưa làm công tác huấn luyện tại bất kỳ một câu lạc bộ nào SELECT TENHLV
FROM HUANLUYENVIEN hlv, HLV_CLB, QUOCGIA qg
WHERE hlv.MAHLV = HLV_CLB.MACLB AND hlv.MAQG = qg.MAQG AND qg.TENQG = N'Việt Nam' AND HLV_CLB.MACLB IS NULL AND HLV_CLB.VAITRO IS NULL; lOMoARcPSD| 45315597
-- 3. Liệt kê các cầu thủ đang thi đấu trong các câu lạc bộ
-- có thứ hạng ở vòng 3 năm 2009 lớn hơn 6 hoặc nhỏ hơn 3 SELECT HOTEN
FROM CAUTHU ct, CAULACBO clb, BANGXH bxh WHERE ct.MACLB = clb.MACLB AND bxh.MACLB = clb.MACLB AND VONG = 3 AND NAM = 2009
AND (HANG > 6 OR HANG < 3);
-- 4. Cho biết danh sách các trận đấu (NGAYTD, TENSAN, TENCLB1, TENCLB2, KETQUA)
-- của câu lạc bộ (CLB) đang xếp hạng cao nhất tính đến hết vòng 3 năm 2009
SELECT NGAYTD, TENSAN, clb1.TENCLB AS [TENCLB1], clb2.TENCLB AS [TENCLB2], KETQUA
FROM TRANDAU td, CAULACBO clb1, CAULACBO clb2, SANVD svd WHERE td.MASAN = svd.MASAN AND td.MACLB1 = clb1.MACLB AND td.MACLB2 = clb2.MACLB
AND (td.MACLB1 IN (Select MACLB FROM BANGXH WHERE HANG = 1 AND VONG = 3 AND NAM = 2009)
OR td.MACLB2 IN (Select MACLB FROM BANGXH WHERE HANG = 1 AND VONG = 3 AND NAM = 2009));