Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

772676869.

docx 1

MSSV:
Họ tên SV:

Filename: Lab08_HoTen_MSSV.docx
Lab 04
Truy vấn Queries
Dựa trên lược đồ CSDL và tập dữ liệu Company (BT trước)
772676869.docx 2

A. Truy vấn (Queries)


Thực hiện các lệnh truy vấn với ngôn ngữ truy vấn SQL (nếu không có kết quả thì giả lập dữ
liệu thêm vào để minh họa)
1. Liệt kê cú pháp ở dạng đầy đủ có thể của lệnh SELECT trong SQL Server?
***Câu hỏi phụ: vì sao các từ khóa ALL!Distinct … được đặc trong ngoặc vuông?
Result:

2. Liệt kê thông tin nhân viên gồm họ tên, ID (SSN) và địa chỉ của nhân viên mà có ngày
sinh (Bdate) hoặc SupperSSN không xác định (null). Gợi ý: truy vấn dữ liệu trên 1 bảng
Nhân viên (Employee).
SQL:

Result:
3. Liệt kê thông tin đầy đủ của những nhân viên có lương (Salary) từ 30000 đến 50000 và
hiển thị kết quả theo lương giảm dần.
SQL:

Result:
4. Hiển thị Mã dự án đã có nhân viên tham gia. Lưu ý, không hiển thị trùng mã dự án, gợi
ý: sử dụng distinct.
SQL:

Result:

5. Hiển thị 3 nhân viên lương cao nhất công ty. Gợi ý: sử dụng Top n.
SQL:

Result:

6. Liệt kê thông tin nhân viên gồm Họ tên, SSN và địa chỉ của nhân viên có ngày sinh 'Jul-
31-1972'.
SQL:
772676869.docx 3

Result:

7. Liệt kê đầy đủ thông tin nhân viên có Tên (Fname) có kí tự đầu là nguyên âm: U,E,O,A,I
giới tính là nữ và có lương dưới 30000.
SQL:

Result:

8. Liệt kê đầy đủ thông tin nhân viên có Tên đệm (Minit) là nguyên âm: U,E,O,A,I giới tính
là nữ và có lương từ 30000 trở lên làm việc trong phòng ban 4 hoặc 5.
SQL1:

Result:

9. Viết câu truy vấn tìm Họ, Tên, Địa Chỉ, Ngày Sinh của nhân viên có ngày sinh từ
01/06/1959 đến 31/12/1959.
SQL:
772676869.docx 4

Result:

10. Viết câu truy vấn tìm Họ Tên, Địa Chỉ, Ngày Sinh của nhân viên sinh từ sau năm 1945.
Biết rằng Họ tên (Fullname) là chuỗi nối gồm 3 trường: Fname, Minit, Lname ví dụ:
John B Smith. Gợi ý: sử dụng hàm ngày tháng như: Datepart ( datepart,date) hoặc
Year(date).
SQL1:

Result:

11. Viết câu lệnh cho biết lương cao nhất, lương thấp nhất, lương bình quân và số lượng
nhân viên công ty với các bí danh (aliases) lần lượt là 'sal_max', 'sal_min', 'sal_avg',
'emp_qty'. Lưu ý, sinh viên đặt bí danh (aliases) theo 3 cách mà SQL cung cấp.
SQL:

Result:

12. Cho biết lương trung bình của các nhân viên nữ.
SQL1:
772676869.docx 5

Result:

13. Cho biết Tên phòng ban, Số lượng nhân viên và Lương trung bình của mỗi phòng ban.
Gợi ý: truy vấn dữ liệu từ 2 bảng: Department, Employee.
SQL:

Result:

14. Ứng với mỗi dự án, cho biết tên dự án và tổng số giờ/tuần của dự án đó.
SQL:
772676869.docx 6

Result:

15. Cho biết mã phòng ban, tên phòng ban mà có số lượng nhân viên lớn hơn 3. Kết quả
hiển thị nên sắp xếp giảm dần theo số lượng nhân viên. Gợi ý: sử dụng Having.
SQL:

Result:

16. Liệt kê các mã số dự án trong bảng Project hoặc trong bảng Works_on.
Gợi ý: sử dụng Union.
SQL:
772676869.docx 7

Result:

17. Liệt kê các mã số dự án có trong cả hai bảng Project, Works_on. Gợi ý: sử dụng
Intersect.
SQL:

Result:

18. Liệt kê các mã số dự án có trong bảng Project nhưng chưa triển khai thực hiện trong
Works_on. Gợi ý: sử dụng Except.
SQL:

Result:

19. Liệt kê thông tin dự án có trong bảng Project nhưng nếu chưa triển khai thực hiện trong
Works_on thì hiển thị null. Gợi ý: sử dụng Left Outer join.
772676869.docx 8

SQL:

Result:

20. Liệt kê thông tin dự án có trong bảng Project nhưng nếu chưa triển khai thực hiện trong
Works_on thì hiển thị null. Gợi ý: sử dụng Right Outer join.
SQL:

Result:

21. Cho biết Họ Tên (FName Minit LName) các nhân viên thuộc phòng số 5 có tham gia dự
án ProductX với thời gian trên 10 giờ/tuần. Gợi ý: truy vấn dữ liệu từ 4 bảng:
employee, department, project, workson và sử dụng Inner join, Groub by, Having.
SQL:

Result:

22. Cho biết Họ Tên (FName Minit LName) các nhân viên thuộc sự giám sát (Directly
Supervised) bời nhân viên có tên là ‘Franklin Wong’. Gợi ý: sử dụng Self join.
SQL:
772676869.docx 9

Result:

23. Cho biết Họ Tên (FName Minit LName) các nhân viên viên có thân nhân trùng tên.
Lưu ý: các nhân viên khác mã nv nhưng đặt tên con giống nhau.
Gợi ý: sử dụng Self join.
SQL:

Result:

24. Cho biết Họ Tên (FName Minit LName) các nhân viên tham gia tất cả các dự án.
Gợi ý: sử dụng Subquery và hàm Count.
772676869.docx 10

SQL:

Result:

25. Cho biết Họ Tên (FName Minit LName) các nhân viên không tham gia dự án nào.
Gợi ý: sử dụng Subquery.
SQL:

Result:
26. Cho biết Họ Tên (FName Minit LName) và địa chỉ tham gia ít nhất một dự án tại
Houston nhưng phòng ban của họ không có địa chỉ tại Houston. Gợi ý: sử dụng
Subquery.
SQL:

Result:

27. Cho biết Họ Tên (FName Minit LName) người quản lý (trưởng phòng) không có thân
nhân. Gợi ý: sử dụng Subquery.
SQL:

Result:

28. Viết câu lệnh cập nhật tăng lương 10% cho tất cả nhân viên phòng ban 'Research'.
Gợi ý: sử dụng Update và Subquery.
SQL:

Result:

29. Viết câu lệnh tạo bảng employee_Backup mà cấu trúc tạo bảng và dữ liệu của bảng
này thuộc bảng Employee. Gợi ý: sử dụng Select … into.
SQL:

Result:
772676869.docx 11

30. Liệt kê họ tên những nhân viên nữ có lương từ 30000 đến 50000, hiển thị kết quả theo
lương tăng dần. Lưu ý, định dạng tiền lương theo kiểu 1,000.0.
Gợi ý: sử dụng hàm Format([salary],'#,##0.0').
SQL:S

Result:

31. Liệt kê họ tên, ID, Ngày sinh 1 nhân viên nữ có lương cao nhất. Lưu ý, định dạng ngày
sinh theo kiểu dd-mm-yyyy. Gợi ý: sử dụng hàm convert(varchar,[BDate],103).
SQL:

Result:

32. Liệt kê 5 hàm aggregate - tổng hợp thường dùng để thống kê dữ liệu và thường sử
dụng cùng với Group by. Gợi ý: Sum(*),…
Result:

33. Liệt kê 10 hàm làm việc với text/string và mô tả công dụng của hàm. Gợi ý: Len(‘text’),

Result:

34. Liệt kê trên 5 hàm làm việc với ngày tháng. Gợi ý: Day(date),…
Result:

35. Liệt kê trên 2 hàm chuyển kiểu dữ liệu thường dùng.


Result:

END

You might also like