Bài 1: Tạo database Test, kiểm tra xem nó có tồn tại hay không, nếu tồn tại thì xóa nó trước khi tạo mới.
USE master
IF EXISTS(select * from sys.databases where name='Test')
DROP DATABASE Test
GO
CREATE DATABASE Test
Bài 2: Sử dụng database Test đã tạo ở trên tạo ra hai bảng, Clubs và Players, thể hiện mối quan hệ sau.
Một câu lạc bộ (Clubs) có nhiều cầu thủ (Players).
Các cột của Clubs
Id: Khóa chính, tự tăng.
Tên CLB: ràng buộc duy nhất, không cho phép NULL.
Năm thành lập: nếu người dùng không nhập vào năm thành lập, mặc định sẽ là ngày 01-01-1980.
Các cột của Players.
Id: khóa chính, tự tăng.
Tên cầu thủ: không cho phép null
Năm sinh: không cho phép null, mặc định là ngày 01-01-1985.
Khóa ngoại đến bảng CLB.
Lưu ý: đây là quan hệ một nhiều, một CLB có nhiều cầu thủ, do vậy bạn phải đặt khóa ngoại ở bảng Players
Bài 3: Insert data vào bảng CLB 3 CLB có tên là MU, Real Madrid, Barca
Dùng vòng lặp để insert data vào CLB, sao cho mỗi CLB có trên 20 cầu thủ.
INSERT INTO Clubs (Name) VALUES ('MU')
INSERT INTO Clubs (Name) VALUES ('Barca')
INSERT INTO Clubs (Name) VALUES ('Real Madrid')
DECLARE @i int;
SET @i = 0;
WHILE @i < 21
BEGIN
SET @i = @i + 1;
--Insert Player vào clb MU, lệnh Cast(@i AS VARCHAR(2) dùng để ép kiểu int sang VARCHAR
--Sở dĩ phải ép kiểu vì @i đang kiểu int, ta insert nó vào trường có kiểu VARCHAR sẽ không được.
INSERT INTO Players
(Name,
ClubId)
VALUES ('Player MU ' + Cast(@i AS VARCHAR(2)),
1)
--Insert Player vào CLB Barca
INSERT INTO Players
(Name,
ClubId)
VALUES (N'Cầu Thủ Barca ' + Cast(@i + 22 AS VARCHAR(2)),
2)
--Insert Player vào CLB Real Madrid
INSERT INTO Players
(Name,
ClubId)
VALUES (N'Real Madrid Player ' + Cast(@i + 44 AS VARCHAR(2)),
3)
END
Bài 4: Dùng câu lệnh JOIN hai bảng đã tạo ở bài trước, cho biết CLB ứng với từng cầu thủ.
SELECT Players.Name,
Clubs.Name
FROM Players
JOIN Clubs
ON Players.ClubId = Clubs.Id
Bài 5: Sắp xếp kết quả trả về ở bài trước theo tên CLB.
SELECT Players.Name,
Clubs.Name
FROM Players
JOIN Clubs
ON Players.ClubId = Clubs.Id
ORDER BY Clubs.Name
Bài 6: Chỉ ra tất cả các cầu thủ thuộc CLB MU.
SELECT Players.Name,
Clubs.Name
FROM Players
JOIN Clubs
ON Players.ClubId = Clubs.Id
WHERE Clubs.Name = 'MU'
Bài 7: Đếm xem ở CLUB Real Madrid có bao nhiêu cầu thủ.
SELECT COUNT (*)
FROM Players
JOIN Clubs
ON Players.ClubId = Clubs.Id
WHERE Clubs.Name = 'Real Madrid'
Bài 8: Tìm cầu thủ lớn tuổi nhất đội Barca.
Gợi ý: SELECT TOP 1 và Order theo tuổi của cầu thủ.
INSERT INTO Players VALUES ('Name Player Test','1980-01-01',2)
SELECT TOP 1 Players.Name,
Players.Birthdate,
Clubs.Name
FROM Players
JOIN Clubs
ON Players.ClubId = Clubs.Id
WHERE Clubs.Name = 'Barca'
ORDER BY Players.Birthdate
Ở bài trên, ta thêm một Players thuộc đội Barca, có năm sinh là 1980 để đảm bảo đây là cầu thủ lớn tuổi nhất. Vì các cầu thủ trước được tạo ra mặc định là 1985
Bài 9: Tìm tất cả cầu thủ có tên chứa chữ a.
SELECT Players.Name
FROM Players
WHERE Name LIKE '%a%'
Bài 10: Tìm tất cả cầu thủ tên bắt đầu bằng chữ P
SELECT Players.Name
FROM Players
WHERE Name LIKE 'P%'