lOMoARcPSD|45315597
-- BI THC HNH S 2: Thao tc Cơ s d li u s dng T-SQL
use QLBongDa;
-- a. Truy vn cơ bn
-- 1. Cho biết thông tin (mã cu th, h tên, s o, v trí, ngày sinh, địa ch)
-- ca tt c cc cu th
SELECT MACT, HOTEN, SO, VITRI, NGAYSINH, DIACHI
FROM CAUTHU;
-- 2. Hin th thông tin tt c cc cu th có s o là 7 chơi  v trí Tin v
SELECT *
FROM CAUTHU
WHERE SO = 7 AND VITRI = N'Tin v ';
-- 3. Cho biết tên, ngày sinh, địa chỉ, đin thoi ca tt c cc hun luyn viên
SELECT TENHLV, NGAYSINH, DIACHI, DIENTHOAI
FROM HUANLUYENVIEN;
-- 4. Hin thi thông tin tt c cc cu th có quc tch Vit Nam
-- thuc câu lc 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
-- ca cc cu th thuộc đội bóng ‘SHB Đà Nẵngcó quc tch 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. Hin th thông tin tt c cc cu th đang thi đu
-- trong câu lc 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)
-- cc 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ã hun luyn viên, h tên, ngày sinh, địa ch, vai trò và tên CLB
-- đang làm vic ca cc hun luyn viên có quc tch VitNam
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. Ly tên 3 câu lc 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ã hun luyn viên, h tên, ngày sinh, địa ch, vai trò và tên CLB
-- đang làm vic mà câu lc 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. Cc php ton trên nhóm
-- 1. Thng kê s ng cu th ca mi câu lc b
SELECT TENCLB, COUNT(MACT) AS [S ng cu th]
FROM CAULACBO clb, CAUTHU ct
WHERE clb.MACLB = ct.MACLB
GROUP BY TENCLB;
-- 2. Thng kê s ng cu th c ngoài (có quc tch khc Vit Nam)
-- ca mi câu lc b
lOMoARcPSD|45315597
SELECT TENCLB, COUNT(MACT) AS [S ng cu th 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 lc b, tên câu lc b, tên sân vận động, địa ch
-- và s ng cu th c ngoài (có quc tch khc Vit Nam) tươngng
-- ca cc câu lc b có nhiều hơn 2 cu th c ngoài
SELECT clb.MACLB, TENCLB, TENSAN, svd.DIACHI, COUNT(MACT) AS [S ng cu th 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 tnh, s ng cu th đang thi đu v trí tiền đạo
-- trong cc câu lc b thuộc địa bàn tỉnh đó qun lý
SELECT TENTINH, COUNT(MACT) AS [S ng cu 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 lc b, tên tỉnh mà CLB đang đóng nằm v trí cao nht
-- ca bng xếp hng 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. Cc ton t nâng cao
-- 1. Cho biết tên hun luyn viên đang nắm gi mt v trí
-- trong mt câu lc b mà chưa có số đin thoi
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. Lit kê cc hun luyn viên thuc quc gia Vit Nam
-- chưa làm công tc hun luyn ti bt k mt câu lc 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'Vit Nam'
AND HLV_CLB.MACLB IS NULL
AND HLV_CLB.VAITRO IS NULL;
lOMoARcPSD|45315597
-- 3. Lit kê cc cu th đang thi đu trong cc câu lc b
-- có th hng vòng 3 năm 2009 lớn hơn 6 hoc 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 sch cc trận đu (NGAYTD, TENSAN, TENCLB1, TENCLB2, KETQUA)
-- ca câu lc b (CLB) đang xếp hng 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));

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));