By GokiSoft.com| 21:04 17/09/2025|
SQL Server/MySQL

Bài tập - Thiết kế CSDL - sử dụng trong giải đấu bóng đá FIFA - champions league - world cup - Lập trình SQL Server

1. Thiết kế CSDL và các bảng


Bảng Trọng tài (Referee)


id: int → primary key → identity(1,1)


fullname: nvarchar(50) → not null


address: nvarchar(200) → not null


level: float → cấp độ/đánh giá kinh nghiệm


exp: date → ngày bắt đầu tham gia làm trọng tài


Bảng Đội bóng (Club)


id: int → primary key → identity(1,1)


name: nvarchar(50) → tên đội bóng


stadium: nvarchar(100) → sân chủ nhà


coach: nvarchar(50) → huấn luyện viên


Bảng Cầu thủ (Player)


id: int → primary key → identity(1,1)


fullname: nvarchar(50)


birthday: date


salary: money → lương/tuần


start_date: date → ngày bắt đầu tham gia thi đấu


Bảng Đội bóng – Cầu thủ (Club_Player)


id_club: int → FK tham chiếu Club(id)


id_player: int → FK tham chiếu Player(id)


join_date: date → ngày tham gia đội bóng


PK: (id_club, id_player)


Bảng Lịch sử bắt của trọng tài (Referee_History)


id: int → primary key → identity(1,1)


referee_id: int → FK tham chiếu Referee(id)


tournament: nvarchar(100) → tên giải đấu


match_date: date → ngày bắt chính


rate: float → đánh giá về trọng tài


id_club_1: int → FK tham chiếu Club(id)


id_club_2: int → FK tham chiếu Club(id)


note: nvarchar(500) → ghi chú


2. Thêm dữ liệu mẫu


Thêm ít nhất 5 bản ghi cho mỗi bảng (Referee, Club, Player).


Mỗi Club có ít nhất 3 Player.


Mỗi Referee có ít nhất 2 lịch sử bắt.


3. Truy vấn


Liệt kê danh sách lịch sử bắt gồm: tên trọng tài, level, exp, tên giải đấu, tên đội 1, tên đội 2.


Liệt kê danh sách cầu thủ của một đội bóng bất kỳ (tham số đầu vào là tên hoặc id đội bóng).


Tìm danh sách trọng tài đã từng bắt cho một đội bóng cụ thể (tham số đầu vào là id đội bóng).


Liệt kê tổng số tiền lương mỗi đội bóng phải trả cho cầu thủ của mình.


Tìm đội bóng có tổng lương cầu thủ cao nhất.


4. VIEW


Tạo view vRefereeHistory hiển thị: tên trọng tài, level, exp, giải đấu, tên đội 1, tên đội 2, rate.


Tạo view vClubPlayers hiển thị: tên đội bóng, tên cầu thủ, ngày tham gia đội bóng.


Tạo view vClubSalary hiển thị: tên đội bóng, tổng lương cầu thủ.


5. STORED PROCEDURE / FUNCTION


Stored procedure ThemCauThu: thêm cầu thủ mới (tham số: tên, ngày sinh, lương, ngày bắt đầu).


Stored procedure DanhSachCauThuTheoDoiBong: trả về danh sách cầu thủ của một đội bóng (tham số: id_club).


Stored procedure LichSuTrongTaiTheoDoiBong: hiển thị lịch sử bắt của trọng tài cho một đội bóng (tham số: id_club).


Function TinhTongLuongCauThu(id_club): trả về tổng lương của toàn bộ cầu thủ trong một đội bóng.


Function TinhTongLuongTatCa(): trả về tổng lương cầu thủ của tất cả các đội bóng trong hệ thống.



Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó