Paul thực hiện lệnh SQL sau: SELECT Customers.name, Customers.ord_id, Orders.ord_date FROM Customers INNER JOIN Orders WHERE Customers.cust_id = Orders.cust_id Mỗi bảng trong lệnh trên đều chứa 10000 hàng, do đó phải mất nhiều thời gian để thực hiện Để cải thiện việc thực thi truy vấn này, nên dùng đối tượng nào sau đây:
A -
Triggers
B -
Stored Procedures
C -
View
D -
Batches
2-
Thủ tục GetSalesPersonData được tạo ra trả về số tiền bán được của nhân viên: CREATE PROCEDURE GetSalesPersonData @SalesPersonID int, @RegionID int, @SalesAmount money OUTPUT AS SELECT @SalesAmount = SUM(SalesAmount) FROM SalesInformation WHERE @SalesPersonID = SalesPersonID Lệnh nào sau đây sẽ thực thi đúng thủ tục trên?
Xác định ý nghĩa thủ tục sau: CREATE PROC get_playername @sport_id varchar(10) AS SELECT layer_lname, player_fname FROM sports WHERE sport_id = sport_id
A -
Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên các môn thể thao mà có Id bằng với tham số đầu vào
B -
Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên các môn thể thao mà có Id không bằng với tham số đầu vào
C -
Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên vận động viên (player) mà có Id bằng với tham số đầu vào
D -
Thủ tục có 1 tham số vào là sport_id và sẽ hiển thị tên vận động viên (player) mà có Id không bằng với tham số đầu vào
4-
Joly được giao nhiệm vụ cải thiện việc thực thi cho truy vấn có liên quan đến 2 bảng, student và marks. Sau khi phân tích, cô ta nhận thấy rằng bảng student hiếm khi bị cập nhật, còn bảng marks thì có rất nhiều transaction. Vì vậy cô ta quyết định tạo các chỉ mục cho các bảng này. Tổ hợp nào sau đây mà cô ta nên dùng để tối ưu hoá việc thực thi truy vấn?
A -
Bảng Student :tạo chỉ mục unique clustered trên trường roll_number
Bảng Marks : tạo chỉ mục nonclustered trên trường roll_number
B -
Bảng Student :tạo chỉ mục unique nonclustered trên trường roll_number
Bảng Marks : tạo chỉ mục nonclustered trên trường roll_number
C -
Bảng Student :tạo chỉ mục unique clustered trên trường roll_number
Bảng Marks : tạo chỉ mục clustered trên trường roll_number
D -
Bảng Student : tạo chỉ mục clustered trên trường roll_number
Bảng Marks : tạo chỉ mục nonclustered trên trường roll_number
5-
Lệnh sửa đổi 1 thủ tục có tên là prcPrintStoreList như sau: ALTER PROCEDURE prcPrintStoreList @state char(15) AS BEGIN IF EXISTS(SELECT * FROM Stores WHERE state=@state) BEGIN PRINT 'List of Stores' SELECT stor_id,stor_name, stor_address,city FROM Stores WHERE state = state Return 0 END ELSE BEGIN PRINT 'No Records Found for given state' RETURN 1 END END Hãy xác định kết quả sửa đổi này:
A -
Lỗi biên dịch ( Compile-time error )
B -
Lỗi khi chạy thủ tục (Run-time error )
C -
0
D -
1
6-
Bảng Marks có các trường sau: Rno, Subject, Marks. Lệnh nào sau đây để hiển thị báo cáo sinh viên chứa tên đầy đủ của các môn học. Danh sách các môn viết tắt như sau: ENG là viết tắt của English MTH là viết tắt của Maths Sc là viết tắt của Science Comp là viết tắt của Computers
A -
Select subject= Case subject When ENG Then English When MTH Then Maths When Sc Then Science When Comp Then Computer from Marks
B -
Select rno, marks, subject= Case subject When ENG Then English When MTH Then Maths When Sc Then Science When Comp Then Computer from Marks Order by rno
C -
Select rno, marks, subject= Case When ENG Then English When MTH Then Maths When Sc Then Science When Comp Then Computer end from Marks
D -
Select rno, marks, subject= Case subject When ENG Then English When MTH Then Maths When Sc Then Science When Comp Then Computer end from Marks
7-
Giả sử có 1 CSDL chứa thông tin của các công ty cùng với mã vùng (zip code). Hiện tại CSDL chỉ mới chứa dữ liệu của các công ty với 5 mã vùng khác nhau. Số công ty trong mỗi mã vùng có thể từ 10 đến 5000. Trong tương lai sẽ có thêm nhiều công ty với các mã vùng mới khác.
Bạn cần tạo 1 truy vấn để xem thông tin từ CSDL. Việc thực thi truy vấn không được ảnh hưởng đến số công ty được trả về. Truy vấn được tạo ra cần thông nhất và làm tối thiểu việc phải bảo trì sửa đổi truy vấn này trong tương lai. Bạn nên làm gi?
A -
Tạo 1 thủ tục (stored procedure) yêu cầu mã vùng như tham số đầu vào, bao gồm tuỳ chọn WITH RECOMPILE khi tạo thủ tục
B -
Tạo 1 thủ tục cho mỗi mã vùng
C -
Tạo 1 view cho mỗi mã vùng
D -
Chia bảng thành nhiều bảng, mỗi bảng chứa 1 mã vùng. Sau đó xây dựng 1 view kết các bảng này lại sao cho dữ liệu có thể vẫn được xem như chỉ từ 1 bảng
8-
Hãy tìm lỗi trong thủ tục sau: Create proc prc1 AS Declare @a smallint Declare @b smallint Set @a = 1 Set @b= 1 While (@a <=10) Begin While (@a <5) AND (@b>1) or (@b<3) Begin Set @a= @a+@b Set @b=@b+1 End End return
A -
Tên thủ tục prc1 sai
B -
Không có kiểu dữ liệu smallint
C -
Không cho phép 2 vòng lăp while lồng nhau
D -
Vòng lặp không kết thúc
9-
Để báo cáo số lượng bán được theo từng năm của 1 đầu sách (title) nào đó, người ta đã tạo 1 thủ tục với nội dung như sau: CREATE PROCEDURE get_sales_for_title @title varchar(80), @ytd_sales int OUTPUT AS SELECT @ytd_sales = ytd_sales FROM titles WHERE title = @title IF @@ROWCOUNT = 0 RETURN(-1) ELSE RETURN(0) Biến hệ thống @@ROWCOUNT luôn trả về số bản ghi của lệnh SQL vừa được thực hiện trước đó. Bạn cần tạo 1 script để gọi thủ tục trên. Nếu thủ tục chạy thành công, nó sẽ báo cáo số luợng bán được, ngược lại thì hiển thị thông báo "No Sales Found". Script này được tạo như thế nào?
A -
DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title Net Etiquette, @ytd IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
B -
DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title Net Etiquette, @ytd OUTPUT IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
C -
DECLARE @retval int DECLARE @ytd int EXEC @retval = get_sales_for_title Net Etiquette, @ytd OUTPUT IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
D -
DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title Net Etiquette,@retval OUTPUT IF @retval < 0 PRINT No sales found ELSE PRINT Year to date sales: + STR (@ytd) GO
10-
Paul thực hiện lệnh SQL sau: SELECT Customers.name, Customers.ord_id, Orders.ord_date FROM Customers INNER JOIN Orders WHERE Customers.cust_id = Orders.cust_id Cả hai bảng đều có 10000 hàng. Truy vấn này mất nhiều thời gian để thực hiện, Để cải thiện việc thực thi truy vấn ta nên dùng đối tượng nào sau đây: