SQL Server: Practical 6

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

1. Tạo một file có tên: họ_và_tên_Lab6.sql (ví dụ: DangTranLong_Lab6.sql).

2. Tạo một Cơ sở dữ liệu có tên họ_và_tên_Lab6 (ví dụ: DangTranLong_Lab6).

3. Tạo ba bảng và chèn dữ liệu như sau:

Students (chứa danh sách Sinh viên).

StudentID (int)

Name (VarChar(50))

Age (tinyint)

stGender (bit)

1

Joe Hart

25

1

2

Colin Doyle

20

1

3

Paul Robinson

16

Null

4

Luis Garcia Paulson

17

0

5

Ben Foster

30

1

Projects (chứa danh sách dự án).

PID(int)

PName (Varchar (50))

Cost (float)

Type (Varchar(10))

1

NewYork Bridge

100

Null

2

Tenda Road

60

Null

3

Google Road

200

Null

4

The Star Bridge

50

Null

StudentProject (chứa danh sách Sinh viên làm việc cho các Dự án). Ví dụ: hàng đầu tiên của bảng dưới đây thể hiện rằng ‘Joe Hart’ (có mã 1 ở bảng Students) làm việc cho dự án ‘The Star Bridge’ (có mã là 4 ở bảng Projects) từ ngày ‘15/05/09’ và làm việc trong 3 tháng.

StudentID (int)

PID (int)

WorkDate (date)

Duration (int)

1

4

15/05/09

3

2

2

14/05/09

5

2

3

20/05/09

6

2

1

16/05/09

4

3

1

16/05/09

6

3

4

19/05/09

7

4

4

21/05/09

8

4. Các ràng buộc cần tạo:

a. Ràng buộc Check trên cột Age của bảng Students để kiểm tra độ tuổi nhập vào phải nằm trong khoảng (Age > 15 và Age < 33).

b. Ràng buộc khóa chính trên các cột: StudentID của bảng Students, PID của bảng Projects, (StudentID,PID) của bảng StudentProject.

c. Ràng buộc Default trên cột Duration của bảng StudentProject với giá trị mặc định là 0.

d. Ràng buộc khóa ngoại trên các cột: StudentID của bảng StudentProject tham chiếu đến bảng Students, PID của bảng StudentProject tham chiếu đến bảng Projects.

5. Cập nhật giá trị trên cột Type của bảng Projects như sau:

- Type=’Education’ nếu Cost < 80.

- Type=’Normal’ nếu Cost >= 80 và Cost <= 150.

- Type=’Government’ nếu Cost > 150.

6. Hiển thị những Sinh viên làm việc cho hơn một Dự án.

7. Hiển thị những Sinh viên có tổng số thời gian làm việc cho các dự án là lớn nhất (gợi ý: dựa vào cột Duration).

8. Hiển thị những Sinh viên có tên chứa cụm từ ‘Paul’ làm việc cho Dự án ‘The Star Bridge’.

9. Hiển thị những Sinh viên không làm việc cho dự án nào.

10. Tạo View có tên ‘vwStudentProject’ để hiển thị thông tin như sau (lưu ý phải sắp xếp dữ liệu tăng dần theo tên sinh viên): Tên sinh viên, tên dự án, workdate và duration.

11.Tạo Index có tên ‘ixStudentName’ trên hai cột [Student Name]  và [Project Name] của View ‘vwStudentProject’.

12. Tạo thủ tục lưu trữ có tên ‘spWorkin’ có một tham số, tham số này nhận vào tên của Sinh viên.

- Nếu tên này có trong bảng Students thì hiển thị thông tin về Sinh viên tương ứng và những Dự án mà Sinh viên đó đã làm việc.

- Nếu tham số nhận vào chuỗi ‘any’ thì hiển thị tên của tất cả các Sinh viên cùng những Dự án mà họ đã làm.

13. Tạo Trigger có tên ‘tgUpdateTrig’ trên bảng Students, trigger này có nhiệm vụ như sau: nếu sửa giá trị trên cột StudentID của bảng Students thì giá trị tương ứng trên cột StudentID của bảng StudentProject củng phải được sửa theo.

14. Tạo thủ tục lưu trữ có tên ‘spDropOut’ có một tham số, tham số này nhận vào tên của Dự án. Nếu tên này có trong bảng Projects thì sẽ xóa tất cả thông tin liên quan đến dự án đó trong tất cả các bảng liên quan của Cơ sở dữ liệu.

Xem thêm

» Tiếp: Practical 7
« Trước: Practical 5
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!