MySQL: Practical 11
I. Tạo một Cơ sở dữ liệu có tên 'BookStore'.
II. Tạo 4 bảng và chèn dữ liệu như sau:
Bảng Students:
StudentID (int, primary key, identity) |
Name (VarChar (50)) |
Age (tinyint) |
stGender (bit) |
---|---|---|---|
1 |
Henry |
25 |
1 |
2 |
Britney |
20 |
0 |
3 |
Beckham |
16 |
Null |
4 |
Madona |
17 |
0 |
5 |
Effenberg |
30 |
1 |
Bảng Books:
BookID (int, primary key, identity) |
Name (Varchar (50)) |
TotalPage (int) |
Type (Varchar(10)) |
Quantity (int) |
---|---|---|---|---|
1 |
Access 2K |
100 |
Null |
3 |
2 |
Logic C |
60 |
Null |
4 |
3 |
HTML |
200 |
Null |
2 |
4 |
Core Java |
50 |
Null |
1 |
5 |
SQL 2K |
1000 |
Null |
6 |
Bảng Borrows:
BorrowID (int) |
StudentID (int) |
BookID (int) |
BorrowDate (datetime) |
---|---|---|---|
1 |
1 |
5 |
15/09/07 |
2 |
2 |
2 |
14/09/07 |
3 |
2 |
3 |
20/09/07 |
4 |
2 |
1 |
16/09/07 |
5 |
2 |
1 |
16/09/07 |
6 |
3 |
4 |
19/09/07 |
7 |
4 |
4 |
21/09/07 |
Bảng ReturnBooks:
ReturnID (int) |
StudentID (int) |
BookID (int) |
BorrowDate (datetime) |
ReturnDate (datetime) |
---|---|---|---|---|
|
|
|
|
|
Các ràng buộc:
a. Ràng buộc Check cho cột TotalPage của bảng Books với yêu cầu TotalPage phải lớn hơn 0.
b. Ràng buộc khóa chính cho các cột StrudentID, BookID, BorrowID và ReturnID của các bảng tương ứng.
c. Ràng buộc Indetity(1,1) cho cột ReturnID của bảng ReturnBooks.
Các yêu cầu truy vấn:
- Cập nhật trường Type trong bảng Books theo tiêu chí:
- Type='Thin' nếu TotalPage < 100
- Type='Normal' nếu TotalPage nằm trong đoạn 100 đến 1000
- Type='Thick' nếu TotalPage > 1000
- Hiển thị danh sách sinh viên (danh sách này phải sắp xếp theo trường Age).
- Hiển thị tên của sinh viên nhiều tuổi nhất.
- Hiển thị tổng số sách trong kho.
- Hiển thị tên của những sinh viên có stGender là Null.
- Hiển thị tên của những sinh viên có ký tự đầu tiên là 'B'.
- Hiển thị bookID, borrowDate của những quyển sách được mượn hơn 10 ngày tính đến thời điểm hiện tại.
- Hiển thị ½ tổng số sách.
- Viết câu lệnh SQL mô tả hành động: quyển sách 'Access 2K' được trả bởi 'Britney'.
- Viết câu lệnh SQL mô tả hành động: quyển sách 'SQL2K' được trả bởi 'Henry'.
- Viết câu lệnh SQL mô tả hành động: Madona mượn quyển sách 'SQL2K' vào ngày 28/01/2016.
- Viết câu lệnh SQL mô tả hành động: Madona trả quyển sách 'SQL2K' vào ngày 28/03/2016.
- Hiển thị bookID, borrowDate của những quyển sách được mượn hơn 10 ngày tính từ lúc mượn đến lúc trả.