


Preview text:
CÂU HỎI ÔN TẬP TỰ LUẬN SQL SERVER 
SỬ DỤNG CƠ SỞ DỮ LIỆU ADVERTUREWORDKS 
1. Viết câu truy vấn liệt kê những nhân viên (EmployeeID) thuộc mã quản lý (Managerid) 
tương ứng. Sắp xếp tăng dần theo mã quản lý. 
2. Viết câu truy vấn cho biết tổng số lượng nhân viên thuộc người quản lý (Managerid)  tương ứng. 
3. Viết câu truy vấn cho biết thông tin người quản lý (Managerid)đã quản lý với số lượng  nhân viên đông nhất. 
4. Sinh viên A muốn tăng tốc độ thực thi câu truy vấn bên dưới. Bạn hãy giúp sinh viên A 
viết index để tăng tốc? và cho biết khoảng thời gian thực thi câu lệnh truy vấn này lúc 
trước và sau khi tạo index. 
SELECT * FROM Production.Product 
WHERE ProductNumber = 'RA-2345' 
5. Tạo 1 view hiện thị thông tin mã nhân viên (EmployeeID), tên (FirstName), họ nhân viên 
(LastName), chức vụ và hiển thị tên (title), tên (FirstName) , họ nhân viên (LastName) 
mã người quản lý (Managerid) đã quản lý nhân viên này. Gợi ý: dựa trên bảng 
HumanResources.Employee và bảng Person.Contact 
6. Viết hàm (function) trả về ngày giao hàng (Shipdate) theo mã đơn hàng(SalesOrderID) 
tương ứng. Lưu ý, nếu mã đơn hàng nào không có ngày giao hàng thì không hiển thị ngày  ngao hàng. 
7. Viết hàm (function)/thủ tục (store procedure) hiển thị những mã đơn hàng(SalesOrderID) 
trả bằng thẻ tín dụng (CardNumber) tương ứng. Lưu ý, nếu mã đơn hàng nào không trả 
bằng thẻ tính dụng thì không hiển thị. 
8. Viết hàm (function)/thủ tục (store procedure) tìm thông tin liên quan của nhân viên 
(Employee) theo mã nhân viên (EmployeeID) chỉ định. Nếu tìm thấy hệ thống hiển thị kết 
quả gồm Mã nhân viên (EmployeeID) , tên nhân viên (FirstName), chức vụ (Title) và số 
lượng nhân viên mà anh ta quản lý dựa theo mã quản lý (Managerid). Ngược lại, tìm 
không thấy thì hiển thị thông điệp “Hệ thống không tìm thấy nhân viên này!”. Gợi ý: 
Thông tin tìm kiếm dựa trên các bảng nhân viên (HumanResources.Employee), bảng  nguoilienhe (Person.Contact). 
9. Dựa vào cấu trúc tạo bảng sau:  CREATE TABLE Temp  (  ProductID int,  Name nvarchar(50),  ImpQuality int,  EnColor nvarchar(20),  Size nvarchar (20),  PurchasePrice money,  SalesPrice money,  Importdate datetime,  Cmt nvarchar(200)  ) 
10. Tạo 1 ràng buộc sao cho ngày nhập sản phẩm (Importdate) phải được mặc định là ngày 
hiện tại ngay khi người dùng nhập dữ liệu. 
11. Tạo 1 ràng buộc sao cho số lượng nhập (ImpQuality) phải được mặc định là kiểu số và có 
giá trị là 100 ngay khi người dùng nhập dữ liệu. 
12. Tạo 1 qui tắc nhập liệu hay 1 ràng buộc sao cho chỉ được nhập các màu sau: Black, 
White, Gray, Blue, Silver, Pink, Yellow cho cột EnColor. 
13. Tạo 1 qui tắc nhập liệu hay 1 ràng buộc sao cho chỉ được nhập các kích cở sau: Small, 
Medium, Large, Extra Large, Double Extra cho cột Size 
14. Viết 1 trigger cho bảng ‘Temp’ để thực hiện tính giá bán (SalesPrice) gấp 5 lần giá mua 
PurchasePrice, số lượng và giá không được nhỏ hơn 0. 
15. Tạo bảng mới với tên New_Temp có cấu trúc giống bảng Temp 
16. Thực hiện viết trigger ràng buộc nhập, sửa dữ liệu cho cột Size phải trong các kích cở 
của câu lệnh ràng buộc được viết cho bảng Temp. 
17. Viết câu truy vấn có thêm cột tên “Diễn giải chi tiết kích cở (Size) sang ngôn ngữ Việt 
Nam” ngay sau cột ProductID, Name, Size nếu:  Small thì ghi là nhỏ  Medium thì ghi là vừa  Large thì ghi là lớn 
Extra Large thì ghi là rất lớn 
Double Extra thì ghi là rất rất lớn 
Gợi ý: sinh viên có thể dùng: iif; when hoặc union 
18. Tạo 1 full text search cho phép người dùng thực hiện tìm kiếm dữ liệu sử dụng các từ 
khóa “contains” dựa trên tập kết quả hiển thị câu lệnh truy vấn sau. Gợi ý: Tìm từ ‘Santa’ 
gần từ ‘drive’ chứa trong AddressLine1 từ bảng Person.Address 
SELECT * FROM Person.Address WHERE CONTAINS (AddressLine1, 'Santa NEAR  drive') 
19. Hãy cho biết mục đích của các câu truy vấn bên dưới 
a. SELECT * FROM sys.dm_exec_sessions 
b. SELECT * FROM sys.dm_db_file_space_usage 
c. SELECT * FROM sys.dm_tran_current_transaction 
d. SELECT * FROM sys.dm_exec_connections 
20. Hãy cho biết mục đích của view tên vwEmployee bên dưới Create view vwEmployee 
as select e.EmployeeID as 'Employee ID', 
h.FirstName as 'Employee Name', g.Name as 'Department Name', 
e.HireDate as 'Date of Joining', j.AddressLine1 as 'Employee Address' 
from HumanResources.Employee as e 
join HumanResources.EmployeeDepartmentHistory as f on 
e.EmployeeID = f.EmployeeID join 
HumanResources.Department as g on f.DepartmentID = 
g.DepartmentID join Person.Contact as h on e.ContactID = 
h.ContactID join HumanResources.EmployeeAddress as i on 
e.EmployeeID = i.EmployeeID join Person.Address 
as j on i.AddressID = j.AddressID  HẾT 
PHẦN VIẾT ĐÁP ÁN TRẢ LỜI Ở ĐÂY  2 
Downloaded by mai khanh (Vj9@gmail.com)