Hệ quản trị Cơ sở dữ liệu (IT10) là môn học quan trọng trong chương trình đào tạo Công nghệ Thông tin tại Trường Đại học Mở Hà Nội (EHOU). Môn học này trang bị cho sinh viên kiến thức về các hệ quản trị cơ sở dữ liệu (DBMS), giúp họ hiểu rõ cách thiết kế, triển khai và quản lý các hệ thống cơ sở dữ liệu hiệu quả.
Trong quá trình học, sinh viên sẽ được tìm hiểu về các khái niệm cơ bản của hệ quản trị cơ sở dữ liệu, cấu trúc và thành phần của DBMS, cũng như các mô hình dữ liệu quan hệ. Đặc biệt, môn học tập trung vào hệ quản trị cơ sở dữ liệu SQL Server, cung cấp kiến thức về các thành phần, đối tượng và kiến trúc của hệ thống này. Sinh viên sẽ học cách thao tác và làm việc với SQL Server, bao gồm việc sử dụng ngôn ngữ truy vấn T-SQL để tạo, truy vấn và quản lý dữ liệu.
Mục tiêu của môn học là giúp sinh viên nắm vững các nguyên tắc thiết kế và quản trị cơ sở dữ liệu, hiểu được cách tổ chức và tối ưu hóa dữ liệu để đảm bảo hiệu suất và tính toàn vẹn. Ngoài ra, môn học còn giúp phát triển kỹ năng lập trình SQL và ứng dụng trong việc xây dựng các hệ thống quản lý dữ liệu trong doanh nghiệp.
Môn Hệ quản trị Cơ sở dữ liệu (IT10) không chỉ cung cấp kiến thức lý thuyết mà còn chú trọng đến việc ứng dụng thực tiễn, giúp sinh viên sẵn sàng đối mặt với các thách thức trong lĩnh vực quản lý và khai thác dữ liệu. Đây là nền tảng quan trọng cho các môn học chuyên sâu và các lĩnh vực nghề nghiệp liên quan đến cơ sở dữ liệu và hệ thống thông tin.
Mẹo Nhỏ Nên Đọc Qua
1. Để tìm kết quả nhanh thì nên sử dụng Máy Tính thay vì Điện Thoại.
2. Sau khi Sao chép (Copy) câu hỏi thì bấm “Ctrl + F” và Dán (Paste) câu hỏi vào ô tìm kiếm sẽ thấy câu cả lời. (Copy nguyên câu không ra thì thử vài từ để kiếm)
3. Trường hợp không tìm thấy câu hỏi. Lúc này vui lòng kéo xuống dưới cùng để đặt câu hỏi mục bình luận. Sẽ được trả lời sau ít phút.
4. Xem danh sách đáp án Trắc nghiệm EHOU
5. THAM GIA KHẢO SÁT VỀ CÂU HỎI (Khảo sát giúp chúng tôi biết sự trải nghiệm của Bạn, Bạn có thể đóng ý kiến giúp Chúng tôi tăng trải nghiệm của bạn. Đặc biệt chúng tôi chọn ra 1 người may mắn mỗi tuần để trao Mã Kích Hoạt LawPro 30 Miễn Phí)
6. Tham gia group Facebook Sinh Viên Luật để được hỗ trợ giải bài tập và Nhận Mã Kích hoạt tài khoản Pro Miễn Phí
7. Nếu đăng nhập mà không thấy đáp án thì làm như sau: Giữ Phím Ctrl sau đó bấm phím F5 trên bàn phím “Ctrl + F5” để trình duyệt xóa cache lúc chưa đăng nhập và tải lại nội dung.
Đáp Án Trắc Nghiệm Môn IT10 – EHOU
Chỉ Thành Viên MemberPro Mới xem được toàn bộ đáp án.
Click chọn vào hình ảnh để xem chi tiết gói MemberPro. Hoặc lựa chọn tùy chọn và cho vào giỏ hàng để mua ngay. Hoàn tiền 100% nếu không hài lòng.
MemberPro
Có thể mua gói Member Pro 100 ngày tương đương 1 kỳ học hoặc gói Member Pro 1000 ngày tương đương hết 3 năm học để xem và làm trắc nghiệm hết tất cả các môn, tải tài liệu về in ra với chi phí rẻ nhất và còn nhiều hỗ trợ cao cấp cho Member Pro .
Hoặc cũng có thể chỉ mua riêng lẻ môn này dưới đây
Môn IT10 EHOU
Xem được toàn bộ câu trắc nghiệm của môn này. Có 2 phiên bản là chỉ xem online và có thể tải tài liệu về để in ra
Mua xong xem đáp án Tại đây
Ðúng✅=> ĐÁP ÁN TRẮC NGHIỆM HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU IT_10_04 TÍN CHỈ – SOẠN NGÀY 15.05.2025 – THI VẤN ĐÁP TRỰC TUYẾN
Ghi chú là đáp án đúng
Câu 1: Allen muốn xoá thủ tục dbo.fx_order_cost. Lệnh nào được dùng để xoá thủ tục này?
Ðúng✅=> a. DROP
b. REMOVE
c. DELETE
d. EDIT
Câu 2: Bạn là nhà quản trị CSDL SQL. Bạn đang phát triển 1 ứng dụng DB cho phòng kế toán công ty của bạn. Ứng dụng này chứa nhiều modules được tích hợp nhau. Các user thuờng gặp phải deadlock bất kỳ lúc nào một người nào đó thực hiện 1 hàm mà nó cần tích hợp từ nhiều module. Làm thế nào đê giảm thiểu các deadlock này?
a. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa phù hợp với cách thực thi của công cụ query optimizer
Ðúng✅=> b. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng phải theo cùng 1 thứ tự
c. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng không theo cùng thứ tự
d. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng phải theo thứ tự ngược nhau
Câu 3: Các đặc điểm sau là của phương pháp sao lưu nào?
-Chỉ sao lưu những thay đổi trên dữ liệu kể từ lần full backup gần nhất
-Sử dụng ít tài nguyên hơn
-Không ảnh hưởng đến hiệu suất của hệ thống
-Sẽ vô nghĩa nếu không có bản sao lưu full backup
Ðúng✅=> a. Differential
b. Transaction log backup
c. Full backup
Câu 4: Các đặc điểm sau là của phương pháp sao lưu nào?
-Sao lưu bản đầy đủ của CSDL
-Quá trình được thực hiện mà không cần offline CSDL
-Chiếm lượng lớn tài nguyên hệ thống
– Ảnh hưởng thời gian đáp ứng các yêu cầu hệ thống
a. Differential
b. Transaction log backup
Ðúng✅=> c. Full backup
Câu 5: Các hàm nào không thể sử dụng với kiểu dữ liệu xâu?
a. MIN() và MAX()
b.Các đáp án đều sai
Ðúng✅=> c. SUM() và AVG()
d. COUNT()
Câu 6: Các phương pháp phân mảnh gồm:
a. Tất cả các phương án đều đúng
b. Phân mảnh ngang
c. Phân mảnh hỗn hợp
d. Phân mảnh dọc
Câu 7: Các trường hợp nào bắt buộc phải sử dụng trigger?
a. Khi có sự thay đổi dữ liệu ở 1 bảng và muốn dữ liệu trên một số bảng khác liên quan tự động thay đổi theo
b. Tất cả các phương án đều đúng
c. Các ràng buộc mà không thể mô tả khi định nghĩa bảng
Câu 8: Cảnh báo lỗi “…… .mdf cannot be overwritten. It is being used by database ‘…’” xảy ra khi thực hiện thao tác gì?
a. Khôi phục CSDL
b. Xuất (export) CSDL
c. Sao lưu CSDL
d. Nhập (import) CSDL
Câu 9: Cấu hình nào sau đây được Windows cung cấp sẵn, dùng làm kết nối trung gian giữa ứng dụng và các hệ quản trị CSDL?
a. Net-Library
b. Kết nối mạng trên Server
c. OLE DB
d. ODBC
Câu 10: Cấu trúc nào sau đây dùng để thực hiện công việc sau:
Tăng 25% lương của nhân viên sinh trước năm 1980
Tăng 10% lương của nhân viên sinh từ năm 1980 đến 1990
Không tăng lương của nhân viên sinh sau năm 1990
a. . IF… …ELSE
b. IF… …ELSIF…ELSE
c. WHILE
d. Không có đáp án đúng
Câu 11: Cho bảng tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL, sQuequan). Đâu là câu truy vấn để cho danh sách tên của các nhân có hệ số lương trên 3.66
a. Select
*From tblNHANVIEN
Where fHSL>3.66
b. Select sHoten
From tblNHANVIEN
c. Select sHoten, fHSL
From tblNHANVIEN
Where fHSL>3.66
d. Select sHoten
From tblNHANVIEN
Where fHSL>3.66
Câu 12: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để cho danh sách tên các sản phẩm có đơn giá từ 50000 đến 100000
a. Select sTenSP
From tblSANPHAM
Where fDongia between 50000 and 100000
b. Select sTenSP
From tblSANPHAM
Where fDongia>50000
c. Select sTenSP
From tblSANPHAM
Where fDongia>50000 and fDongia<100000
d. Select
*From tblSANPHAM
Where fDongia between 50000 and 100000
Câu 13: Cho CSDL gồm các bảng:
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX, TSLuongBan)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Để cho phép mỗi khi Khách hàng mua hàng với số lượng mua iSLM nào đó thì tổng số lượng hàng đã bán TSLuongBan của sản phẩm được cập nhật tự động thì tạo đối tượng gì trong CSDL tương ứng?
a. Proc
b. Table
c. View
d. Trigger
Câu 14: Có mấy kiểu xác thực trong SQL Server
a. 2
b. 5
c. 3
d. 4
Câu 15: Có mấy kỹ thuật sao lưu?
a. 2
b. 3
c. 4
d. 5
Câu 16: Có mấy loại trigger?
a. 3
b. 5
c. 4
d. 2
Câu 17: Có mấy phương pháp phân tán CSDL?
a. 2
b. 3
c. 5
d. 4
Câu 18: Cơ sở dữ liệu hệ thống Msdb dùng để?
a. Hoạch định các báo động và công việc cần làm (schedule alerts and jobs)
b. Lưu trữ các system objects
c. Lưu trữ các table và stored proceduce trong quá trình làm việc
d. Lưu trữ các thông tin cấp hệ thống
Câu 19: Có thể đặt mấy cột trong bảng làm khóa chính?
a. Chỉ trên cột ID
b. Trên 2 cột bất kỳ
c. Trên 1 cột bất kỳ
d. Trên nhiều cột
Câu 20: Cú pháp để truy xuất đến một bảng của CSDL khác trong cùng Server là:
a. [tableName]
[.database]
b. [database][.owner][.tableName]
c. [tableName]
[.database][.owner]
d. [database][.tableName]
Câu 21: Để cấp quyền cho người dùng “Test” được quyền xem dữ liệu của Bảng “tblNhanVien” thì câu lệnh là gì?
a. GRANT View
TO Test
b. GRANT All
ON tblNhanVien
TO Test
c. GRANT View
ON tblNhanVien
TO Test
d. GRANT Select
ON tblNhanVien
TO Test
Câu 22: Dịch vụ chuyển đổi dữ liệu DTS của SQL Server thực hiện chức năng gì?
a. Tìm kiếm
b. Nhân bản dữ liệu
c. Tra cứu dữ liệu
d. Chuyển dữ liệu giữa các Server
Câu 23: Độ lớn của một cột kiểu CHAR?
a. 1 byte
b. 8 bytes
c. 2 bytes
d. 4 bytes
Câu 24: 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á 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 cho mỗi mã vùng
b. Tạo 1 view cho mỗi mã vùng
c. 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
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
Câu 25: Giả sử, CSDL được lập lịch Full Database Backup vào ngày chủ nhật, Differential Database Backup vào ngày thứ ba và thứ năm, còn Log Database Backup cứ mỗi tiếng một lần vào các ngày từ thứ 2 đến thứ 6 trong tuần,
Trong trường hợp, ngày thứ sáu có sự cố với CSDL data file bị hỏng, để phục hồi dữ liệu và CSDL hoạt động bình thường, thứ tự các bước phục hồi thực hiện như thế nào?
a. + Khôi phục Full Database của ngày chủ nhật.
+ Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Transaction log backup ngày thứ năm.
b. + Khôi phục Transaction log backup ngày thứ năm.
+ Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Full Database của ngày chủ nhật.
c. + Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Transaction log backup ngày thứ năm.
+ Khôi phục Full Database của ngày chủ nhật.
d. + Khôi phục Full Database của ngày chủ nhật.
+ Khôi phục Transaction log backup ngày thứ năm.
+ Phục hồi Differential Database của ngày thứ năm.
Câu 26: Gợi ý nào được đề xuất khi thực hiện sao lưu dữ liệu?
a. Tất cả các phương án đều đúng
b. Thực hiện nhiều sao lưu Transaction trong ngày
c. Thực hiện nhiều sao lưu Differential trong ngày (định kỳ khoảng một vài tiếng một lần)
d. Thực hiện sao lưu Full một lần vào lúc bắt đầu ngày (chuẩn bị làm việc với CSDL)
Câu 27: Hàm nào trong SQL Server trả về ngày hiện tại của hệ thống?
a. Date()
b. Getdate()
c. currentdate()
d. now()
Câu 28: Hệ quản trị cơ sở dữ liệu SQL Server 2008 không hỗ trợ tính năng nào sau đây?
a. Định nghĩa dữ liệu
b. Khôi phục dữ liệu
c. Kết nối dữ liệu với các dịch vụ điện toán đám mây
d. Khai phá dữ liệu
Câu 29: Hỗ trợ kiến trúc Client/Server (Supports Client/Server model) là gì?
a. Truy cập dữ liệu được lưu trữ trên Server
b. Server có nhiệm vụ xử lý các yêu cầu và trả lại kết quả cho Client.
c. Tất cả các phương án đều đúng
d. Ứng dụng có thể chạy trên Client
Câu 30: Jack cần chèn 1 điểm dừng (save point) có tên là ’Returnback’ vào transaction của anh t Nên dùng lệnh nào sau đây:
a. INSERT SAVEPOINT Returnback
b. SAVE SAVEPOINT Returnback
c. SAVE TRANSACTION Returnback
d. INSERT TRANSACTION Returnback
Câu 31: Kết quả của POWER(6, 2) là bao nhiêu?
a. 3
b. 12
c. 64
d. 36
Câu 32: Khi xảy ra một sự kiện thao tác dữ liệu trong CSDL được lưu tạm vào bảng nào?
a. Inserted
b. Deleted và Inserted
c. Deleted
d. Updated
Câu 33: Kiểu dữ liệu nào sau đây KHÔNG có trong SQL Server ?
a. Text
b. Char
c. Nvarchar
d. Bool
Câu 34: Làm cách nào để trả về nhiều giá trị từ 1 procedure?
a. Sử dụng con trỏ.
b. Bạn không thể thực hiện đượ
c. Sử dụng các parameters IN.
d. Sử dụng các parameters OUT parameters.
Câu 35: Lệnh nào sau đây không thể rollback?
a. DELETE
b. Tất cả đều sai
c. DROP
d. INSERT
Câu 36: Lý do cần thiết phải thực hiện sao lưu dữ liệu?
a. Tất cả các phương án đều đúng
b. Do nguyên nhân bên ngoài, bị vô tình hay cố ý làm sai thông tin
c. Bị hack
d. ổ đĩa chứa tâp tin CSDL bị hỏng, Server bị hỏng
Câu 37: Mô hình phục hồi thực hiện: “Là mô hình phục hồi toàn bộ hoạt động giao dịch của dữ liệu (Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).”
a. Bulk-Logged Recovery Model
b. Full Recovery model
c. Simple Recovery Model
Câu 38: Mỗi cơ sở dữ liệu trong SQL Server gồm mấy tập tin?
a. 1
b. 3
c. 2
d. 4
Câu 39: Một câu lệnh IF… …ELSIF có thể có mấy mệnh đề ELSE?
0 64 1
a. 0 1
b. 1
c. 64
d. Không giới hạn
Câu 40: Một cơ sở dữ liệu chứa ít nhất là?
a. 1 file mdf và 1 file ndf
b. 1 file mdf, 1 file ndf và 1 file ldf
c. 1 file mdf
d. 1 file mdf và 1 file ldf
Câu 41: Nếu lưu giá trị 34567.2255 vào một cột có kiểu dữ liệu NUMBER(7,2), giá trị thực sự được lưu trữ là:
a. 34500
b. 34600
c. 34567.22
d. 34567.23
Câu 42: Người dùng duyệt Web bằng phần mềm gì?
a. Web Browser
b. Web Server
c. Web Site
d. Web Page
Câu 43: Paul thực hiện lệnh SQL sau:SELECT Customers.name, Customers.ord_id, Orders.ord_dateFROM Customers INNER JOIN OrdersWHERE Customers.cust_id = Orders.cust_idMỗ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. Stored Procedures
b. Triggers
c. Batches
d. View
Câu 44: Phần mềm nào sau đây không phải là một Web Browser?
a. File Zilla
b. Internet Explorer
c. Google Chrome
d. Opera
Câu 45: Phát biểu nào sau đây mô tả thuộc tính atomicity của 1 transaction ?
a. Mọi chỉnh sửa trong 1 transaction hoặc được thi hành hết hoặc không có 1 chỉnh sửa nào được thực hiện
b. Bất kỳ thay đổi dữ liệu được thực hiện bởi một transaction vẫn giữ nguyên hiệu quả sau khi transaction hoàn tất
c. Việc chỉnh sửa dữ liệu được làm bởi 1 transaction này thì độc lập với việc chỉnh sửa dữ liệu của 1 transaction khác
d. Mọi dữ liệu đều ở trạng thái không thay đổi sau khi transaction đã thực hiện thành công
Câu 46: Phiên bản cài đặt nào sau đầy đủ cho các doanh nghiệp vừa và nhỏ thực hiện tính năng thương mại điện tử?
a. Enterprise Edition
b. Standard Edition
c. Express Edition
d. Workgroup Edition
Câu 47: Phiên bản Enterprise của SQL Server chứa đầy đủ các đặc trưng của SQL Server và có thể chạy tốt trên hệ thống lên đến?
a. 16 CPUs và 32 GB RAM
b. 32 CPUs và 64 GB RAM
c. 4 CPU và 2 GB RAM
d. 64 CPUs và 128 GB RAM
Câu 48: Phiên bản Personal của SQL Server có thể cài đặt?
a. Windows 98
b. Trên hầu hết các phiên bản của windows, kể cả Windows 98.
c. Windows Server 2000
d. Windows XP
Câu 49: Phương pháp phân tán nào mà dữ liệu để tại một Server và các máy khách (Client) liên kết đến để khai thác?
a. Sao lặp dữ liệu
b. Phương thức lai
c. Tập trung dữ liệu
d. Chia nhỏ dữ liệu
Câu 50: Quy luật nào sau đây không đúng đối với một thủ tục (stored procedure).
a. Bạn có thể tham chiếu đến 1 đối tượng không nằm trong cùng 1 database với thủ tục của bạn
b. Bạn có thể tạo một bảng tạm riêng bên trong 1 thủ tục
c. Bạn có thể thực thi 1 thủ tục mà thủ tục này gọi 1 thủ tục khác. Thủ tục được gọi có thể truy xuất đến các đối tượng được tạo ra bởi thủ tục gọi
d. Bạn có thể tạo, tạo lại, hay xóa các đối tượng bên trong 1 thủ tục Các lệnh mà bạn có thể sử dụng là CREATE, DROP, và SELECT INTO trong thủ tục của bạn
Câu 51: Sự khác biệt cơ bản giữa dettach và xóa CSDL?
a. CSDL vẫn còn trong máy nhưng tạm thời bị tách khỏi Instance
b. CSDL xóa hẳn trong máy
c. CSDL xóa hẳn nhưng instance vẫn quản ly
Câu 52: Tập tin có phần mở rộng là .ndf được dùng để làm gì?
a. Chỉ dùng khi cơ sở dữ liệu được phân chia chứa trên nhiều đĩa
b. Chứa dữ liệu chính
c. Ghi lại các thay đổi dữ liệu giúp thực hiện rollback khi cần
Câu 53: Thành phần nào không phải đối tượng trong SQL Server?
a. Constraint
b. Replication
c. Table
d. Trigger
Câu 54: Thành phần nào sau đây của SQL Server cho phép người dùng quản lý các đối tượng cơ sở dữ liệu bằng đồ họa?
a. Books Online
b. SQL Server Configuration Manager
c. SQL Server Management Studi
Câu 55: Thành phần nào sau đây thuộc phía Server trong mô hình Client – Server?
a. Database
b. DB Library Application
c. OLE DB Application
d. Network
Câu 56: Thứ tự kiêm tra ràng buộc toàn vẹn dữ liệu là gì?
a. Trigger instead of -> Constraint -> Trigger For/After
b. Trigger For/After -> Trigger instead of -> Constraint
c. Constraint -> Trigger instead of ->Trigger For/After
d. Constraint -> Trigger instead of -> Trigger For/After
Câu 57: Thủ tục sp_addlinkedserver dùng để thực hiện gì?
a. Hủy bỏ liên kết đến Server khác
b. Kiểm tra việc tạo liên kết đến Server khác có thành công hay không
c. Thêm môt Linked Server (Cho phép liên kết đến Server khác)
d. Đăng nhập và kết nối đến Server khác
Câu 58: Thuộc tính nào sau đây không dùng để cấu hình cơ sở dữ liệu SQL Server?
a. Auto Read
b. Auto Shink
c. Read Only
d. Restrict Access
Câu 59: Trigger khác so với thủ tục lưu ở nội dung gì?
a. Tất cả các phương án đều đúng
b. Không cần gọi bằng lệnh EXEC mà tự động được kích hoạt khi dữ liệu trên bảng liên quan được cập nhật
c. Không có tham số và giá trị trả về
Câu 60: Trong cơ sở dữ liệu hệ thống, tập tin nào sau đây lưu trữ các thông tin login account?
a. Master
b. Tempdb
c. Msdb
d. Model
Câu 61: Trong table NHANVIEN, giá trị LUONG của nhân viên tên A (TenNV = ‘A’) trong T-SQL sau bằng mấy?
BEGIN
UPDATE NHANVIEN SET luong = 6000 WHERE TenNV = ‘A’
SAVE tran save_A
UPDATE NHANVIEN SET luong = 7500 WHERE TenNV = ‘A’
SAVE tran save_A
UPDATE NHANVIEN SET luong = 3000 WHERE TenNV = ‘A’
SAVE Tran save_A1
ROLLBACK tran save_A
END
COMMIT
a. 6000
b. 3000
c. Không phải các giá trị trên
d. 7500
Câu 62: Hãy tìm lỗi trong thủ tục sau:Create proc prc1ASDeclare @a smallintDeclare @b smallintSet @a = 1Set @b= 1While (@a <=10)BeginWhile (@a <5) AND (@b>1) or (@b<3)BeginSet @a= @a+@bSet @b=@b+1EndEndreturn
a. Vòng lặp không kết thúc
b. Tên thủ tục prc1 sai
c. Không có kiểu dữ liệu smallint
d. Không cho phép 2 vòng lăp while lồng nhau
Câu 63: Phương pháp phân mảnh thực hiện: Chia tách quan hệ ban đầu R thành các quan hệ Ri có số cột nhỏ hơn, (tập con của R) nhưng mỗi Ri đều phải chứa khóa chính của R
a. Không phải các phương pháp này
b. Phân mảnh dọc
c. Phân mảnh ngang
d. Phân mảnh hỗ hợp
Câu 64: Đoạn mã tạo trigger để cho phép chỉ nhập giá trị Nam hoặc Nữ khi thêm vào bảng NHANVIEN là?
a. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from NHANVIEN
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
b. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
c. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
d. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF DELETE
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
Câu 65: Cho đoạn mã tạo trigger:
CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
Cho biết ý nghĩa của dòng code “select @gt = GT from INSERTED”
a. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng INSERTED khi sửa với bảng NHÂN VIÊN
b. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng DELETED khi xóa với bảng NHÂN VIÊN
c. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng INSERTED khi thêm với bảng NHÂN VIÊN
d. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng DELETED khi thêm với bảng NHÂN VIÊN
Câu 66: Cho CSDL “QuanLyKH” cài đặt trên máy “Server2” có chứa bảng “KhachHang”. Tại máy “Server1” muốn lấy các thông tin trong bảng “KhachHang” thì câu lệnh thực hiện là:
a. SELECT *
FROM KhachHang
b. SELECT *
FROM QuanlyKH.dbo.KhachHang
c. SELECT *
FROM Server2.QuanlyKH.dbo.KhachHang
d. SELECT *
FROM Server2. KhachHang
Câu 67: Để khai thác đến một bảng của CSDL khác trong cùng Server cần phải xác định thông tin gì?
a. Tên người dùng
b. Tên bảng
c. Tất cả các thông tin
d. Tên CSDL
Câu 68: Câu lệnh sau thực hiện gì?
GRANT CREATE TABLE, CREATE VIEW
TO db_user
a. Cấp quyền được phép sửa bảng và sửa view đối với tất cả các tài khoản
b. Cấp quyền được phép tạo bảng và tạo view đối với tất cả các tài khoản
c. Cấp quyền được phép tạo bảng và tạo view đối với tài khoản db_user
d. Cấp quyền được phép xóa bảng và xóa view đối với tất cả các tài khoản
Câu 69: Để 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 OUTPUTASSELECT @ytd_sales = ytd_sales FROM titles WHERE title = @titleIF @@ROWCOUNT = 0RETURN(-1)ELSERETURN(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 intDECLARE @ytd int EXEC get_sales_for_title’Net Etiquette’, @ytd OUTPUTIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd)GO
b. DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ’Net Etiquette’, @ytdIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd)GO
c. DECLARE @retval int DECLARE @ytd int EXEC @retval = get_sales_for_title ’Net Etiquette’, @ytd OUTPUTIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd) GO
d. DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ’Net Etiquette’,@retval OUTPUTIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd)GO
Câu 70: Các lệnh nào sau đây bạn sẽ dùng để tạo thủ tục (procedure) mà nhận vào 1 ký tự và hiển thị các tiêu đề bắt đầu với ký tự đó:
a. Create procedure prcDispName @cValue char(1)asSelect * from titles Where title like @cValue%.
b. Create procedure prcDispName@cValue char(1)asSelect * from titles Where title like ’@cValue%’
c. Create procedure prcDispNameasDeclare @temp char(2)Select @temp=’A%’Select * from titles Where title like @temp
d. Create procedure prcDispName @cValue char(1)asDeclare @temp char(2)Select @temp=@cValue+ ’%’ Select * from titles Where title like @temp
Câu 71: Cho CSDL gồm 2 bảng:
DUAN ( MADA, TENDA, DIADIEM, NgayBD, MAPB)
PHANCONG MADA, MANV, SoGio, NgLamDA)
Viết trigger để kiểm soát ngày làm gia dự của nhân viên phải sau ngày dự án đó bắt đầu
a. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA
ON PHANCONG
AFTER UPDATE, INSERT
AS
IF UPDATE(NgayThamGia) –Kiểm tra việc cập nhật trên cột
BEGIN
declare @NgTG datetime, @NgBD datetime
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
WHERE DEAN.MaDA = INSERTED.MaDA)
IF ( @NgTG < @NgBD )
BEGIN
raiserror(N’Ngày Tham gia phải sau ngày Bắt đầu’,16,1)
END
END
b. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA
ON PHANCONG
AFTER UPDATE, INSERT
AS
IF UPDATE(NgayThamGia) –Kiểm tra việc cập nhật trên cột
BEGIN
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
WHERE DEAN.MaDA = INSERTED.MaDA)
IF ( @NgTG < @NgBD )
BEGIN
raiserror(N’Ngày Tham gia phải sau ngày Bắt đầu’,16,1)
END
END
c. Không có phương án nào đúng
d. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA
ON PHANCONG
AFTER UPDATE, INSERT
AS
IF UPDATE(NgayThamGia) –Kiểm tra việc cập nhật trên cột
BEGIN
declare @NgTG datetime, @NgBD datetime
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
END
END
Câu 72: Biến @a nhận giá trị nào khi khối lệnh sau được thực thi?
DECLARE @a int
BEGIN
select @a= @a + 1
END
select @a 1 0 Tất cả đều sai
a. 1
b. Tất cả đều sai
c. 0
d. NULL
Câu 73: Câu lệnh nào không được phép dùng trong khối lệnh T-SQL?
a. Update
b. Delete
c. Select colum1, column2,…
d. Create
Câu 74: Sự khác nhau cơ bản trong 2 trường hợp sau:
1. Sửa trigger bằng lệnh Alter trigger
2. Xóa trigger bằng lệnh drop trigger sau đó tạo lại bằng lệnh create trigger
a. Khi dùng lệnh Drop thì toàn bộ quyền cấp phát trên trigger bị mất và phải cấp phát lại
b. Khi dùng lệnh Alter trigger thì các quyền đã cấp phát cho trigger đó vẫn còn
c. Tất cả các phương án đều đúng
Câu 75: Cho CSDL “QLGV” với bảng tblNV phân mảnh dọc theo nguyên tắc sau:
-Server1 gồm các thông tin: MaNV, HoTen, GioiTinh
-Server2 gồm các thông tin: MaNV, DiaChi, DienThoai, Email
Đoạn code thiếu để chèn thêm một nhân viên mới vào bảng (thủ tục được viết trên Server2)
Create Proc spInsertNhanVien (@ma varchar(10), @HTnVarchar(20), @GT as nvarchar(3), @DC as nvarchar(20), @DT as nvarchar(20), @Email as nvarchar(20))@diachi nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into tblNV Values(@ma, @DC, @DT, @Email)
…..
print N’Thêm thành công’
End
a. Insert Into Server1.QLGV.dbo.tblNV Values(@ma,@DC, @DT, @Email)
b. Insert Into Server2.QLGV.dbo.tblNV Values(@ma,@HT, @GT)
c. Insert Into tblNV Values(@ma,@HT, @GT)
d. Insert Into Server1.QLGV.dbo.tblNV Values(@ma,@HT, @GT)
Câu 76: Điều kiện của của phân mảnh phải thoản mãn là gì khi thực hiện phân mảnh ngang
a. Cả hai điều kiện đều đúng
b. Các phân mảnh phải đảm bảo tách rời Ri ∩ Rj = ϕ
c. Cả hai điều kiện đều sai
d. Các phân mảnh không tách rời, phải có cùng thuộc tính khóa chính
Câu 77: Câu lệnh CREATE LOGIN <tên đăng nhập> FROM WINDOWS
[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ]
được dùng để làm gì?
a. Cả hai đáp án đều sai
b. Cả hai đáp án đều đúng
c. Tạo login với quyền đăng nhập Window
d. Tạo login với quyền đăng nhập SQL Server
Câu 78: Cho T-SQL block sau, dòng nào gây ra lỗi?
1. DECLARE
2. @V_DEPTNO INT
3. BEGIN
4. SET @V_DEPTNO = 20
5. SELECT ENAME, SALARY
FROM EMP WHERE DEPTNO = @V_DEPTNO
6. END
a. Dòng 4
b. Dòng 2
c. Dòng 5
d. Không có dòng nào gây lỗi.
Câu 79: Lệnh sửa đổi 1 thủ tục có tên là prcPrintStoreList như sau:ALTER PROCEDURE prcPrintStoreList @state char(15)ASBEGINIF EXISTS(SELECT * FROM Stores WHERE state=@state)BEGINPRINT ‘List of Stores’SELECT stor_id,stor_name, stor_address,cityFROM Stores WHERE state = stateReturn 0ENDELSEBEGINPRINT ‘No Records Found for given state’RETURN 1ENDENDHãy xác định kết quả sửa đổi này
a. 1
b. Lỗi khi chạy thủ tục (Run-time error )
c. Lỗi biên dịch ( Compile-time error )
Câu 80: Cho bảng NV(MaNV, …, MaPB), DA(MaDA, …., MaPB) và PB(MaPB, ….).
Viết trigger để khi xóa một PB thì các nhân viên và dự án của phòng ban đó cũng được xóa luôn.
a. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB = @MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
End
b. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB = @MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
c. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB = @MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
d. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
Câu 81: Cho T-SQL block sau:
DECLARE @X INT = 100
WHILE (@x<= 108 )
IF @x = 102
break
ELSE
BEGIN
Insert into NHANVIEN(manv) values (@X)
SET @X=@X+1
END
Bao nhiêu dòng được thêm vào bảng Nhanvien khi thực thi block?
a. 7
b. 9
c. 0
d. 2
Câu 82: 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 OUTPUTASSELECT @SalesAmount = SUM(SalesAmount)FROM SalesInformationWHERE @SalesPersonID = SalesPersonIDLệnh nào sau đây sẽ thực thi đúng thủ tục trên?
a. EXECUTE GetSalesPersonData @SalesPersonID=1, @RegionID=1, @SalesAmount=0
b. EXECUTE GetSalesPersonData 1,1, @SalesAmount OUTPUT
c. EXECUTE GetSalesPersonData 1, 1, NULL
d. EXECUTE GetSalesPersonData @SalesPersonID = 1, @RegionID= 1, @SalesAmount= NULL
Câu 83: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là thủ tục để cho tên sản phẩm theo một xuất sứ nào đó với xuất sứ là tham số truyền vào
a. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sXuatSu = N’Đức’
END
b. CREATE PROC spTenSP(nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sXuatSu = @xs
END
c. CREATE PROC spTenSP(nvarchar @xs)
As
BEGIN
Select *
From tblSANPHAM
Where sXuatSu = @xs
END
d. CREATE PROC spTenSP
As
BEGIN
Declare nvarchar @xs
Select sTenSP
From tblSANPHAM
Where sXuatSu = @xs
END
Câu 84: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho danh sách tên sản phẩm đã được bán trong một tháng của một năm nào đó?
a. CREATE PROC spTenSP(int @m, int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
b. CREATE PROC spTenSP
As
BEGIN
Declare int @m, int @y
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y and A.sMaSP = B.sMaSP
END
c. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where A.sMaSP = B.sMaSP
END
d. CREATE PROC spTenSP(int @m, int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y
END
Phản hồi
Đáp án đúng là: CREATE PROC spTenSP(int @m, int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
Vì:
Tham khảo:
là:
Câu 85: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(float @a, nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia > @a and sXuatSu = @xs
END
a. Cho danh sách thông tin đầy đủ các sản phẩm có đơn giá lớn hơn một số @a và xuất sứ @xs từ một nước nào đó, với số @a và xuất sứ @xs là tham số truyền vào
b. Cho danh sách tên sản phẩm có đơn giá lớn hơn một số @a, với số @a là tham số truyền vào
c. Cho danh sách tên sản phẩm có xuất sứ @xs nào đó, với @xs là tham số truyền vào
d. Cho danh sách tên sản phẩm có đơn giá lớn hơn một số @a và xuất sứ từ một nước @xs nào đó, với số @a và xuất sứ @xs là tham số truyền vào
Câu 86: Cho CSDL quản lý bán sản phẩm gồm các bảng:
tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL, sQuequan)
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX)
tblKHACHHANG(sSdtKH, sTenKH)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Đâu là thủ tục để cho danh sách tên các Nhân viên đã KHÔNG tham gia bán hàng trong một ngày nào đó
a. CREATE PROC spTenNV
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON)
END
b. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
c. CREATE PROC spTenNV
As
BEGIN
Declare datetime @d
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
d. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV not in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
Câu 87: Cho CSDL quản lý bán sản phẩm gồm các bảng:
tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL, sQuequan)
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX)
tblKHACHHANG(sSdtKH, sTenKH)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Đâu là thủ tục để cho danh sách tên các Nhân viên đã tham gia bán hàng trong một ngày nào đó
a. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV not in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
b. CREATE PROC spTenNV
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON)
END
c. CREATE PROC spTenNV
As
BEGIN
Declare datetime @d
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
d. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
Câu 88: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho danh sách tên sản phẩm KHÔNG được bán trong một năm nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Declare int @y
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
b. CREATE PROC spTenSP(int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sMaSP not in (Select sMaSP from tblCTHOADON as A, tblHOADON as B
Where year(dNgayLap) = @y and A.sMaHD = B.sMaHD)
END
c. CREATE PROC spTenSP
As
BEGIN
Declare int @y
Select sTenSP
From tblSANPHAM
Where sMaSP not in (Select sMaSP from tblCTHOADON as A, tblHOADON as B
Where year(dNgayLap) = @y and A.sMaHD = B.sMaHD)
END
d. CREATE PROC spTenSP(int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
Câu 89: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho danh sách tên sản phẩm đã được bán trong một hóa đơn nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Declare varchar(9) @mhd
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where dNgayLap = @d and A.sMaSP = B.sMaSP
END
b. CREATE PROC spTenSP(varchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where tblHOADON.sMaHD = @mhd END
c. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where and A.sMaSP = B.sMaSP
END
d. CREATE PROC spTenSP(varchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
Câu 90: Câu lệnh sau thực hiện công việc gì?
DENY SELECT, INSERT, UPDATE
ON TacGia
TO db_user1, db_user2
a. Từ chối quyền được phép xoa – chọn và sửa trên bảng TacGia với tài khoản db_user1 và db_user2
b. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia với tài khoản db_user1 và db_user2
c. Từ chối quyền được phép chọn sửa trên bảng TacGia với tài khoản db_user1 và db_user2
d. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia với tất cả các tài khoản
Câu 91: Cho bảng tblNHANVIEN(maNV, HoTen, QueQuan, HSL).
Câu lệnh để phân quyền được phép xem (lấy)và chỉnh sửa dữ liệu trên cột (HoTen, QueQuan) của bảng tblNHANVIEN cho tài khoản “nguoidung1” là gì?
a. GRANT VIEW, UPDAE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
b. GRANT UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
c. GRANT SELECT, UPDATE
ON tblNHANVIEN
TO nguoidung1
d. GRANT SELECT, UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
Câu 92: Để xoá tài khoản đăng nhập “Test” đã có trong hệ thống thì sử dụng câu lệnh là gì?
a. DELETE Test
b. DELETE LOGIN Test
c. DROP ACCOUNT Test
d. DROP LOGIN Test
Câu 93: Câu lệnh để hủy bỏ tất cả các quyền trên CSDL đối với tài khoản db_user1
a. REVOKE Select, Insert, Delete
FROM db_user
b. REVOKE
FROM db_user
c. REVOKE ALL
d. REVOKE ALL
FROM db_user1
Câu 94: Câu lệnh để thực hiện “Hủy bỏ quyền xem và cập nhất dữ liệu trên cột ‘Luong’ của bảng nhân viên đối với tài khoản có tên là ‘db_user1’ ” được viết như thế nào?
a. REVOKE SELECT, UPDATE
ON NHANVIEN( Luong )
FROM db_user1
b. REVOKE SELECT
ON NHANVIEN( Luong )
FROM db_user1
c. REVOKE SELECT, UPDATE
ON NHANVIEN
FROM db_user1
d. REVOKE SELECT, UPDATE
ON NHANVIEN
Câu 95: Cho đoạn mã sau.
DECLARE
@V_BONUS INT,
BEGIN
SELECT @V_SALARY = luong
FROM nhanvien
WHERE manv = 1
set @V_BONUS = @V_SALARY * 0.1;
END
select @V_BONUS
Nguyên nhân đoạn mã gây ra lỗi:
a. Biến V_BONUS chưa khởi tạo.
b. Câu lệnh SELECT có bí danh
c. Thiếu phần EXCEPTION
d. Chưa khai báo biến @V_SALARY
Câu 96: Declare
@a int = 5,
@b int = null,
@c int = 10
Begin
if @a > @b AND @a < @c set @a=@c*@a
select @a
End
Giá trị của a sẽ là?
a. 5
b. 50
c. Tất cả các đáp án đều sai
d. Null
Câu 97: Điều gì làm cho vòng lặp WHILE ngừng lặp?
a. Câu lệnh EXIT luôn luôn được sử dụng để kết thúc vòng lặp.
b. Khi điều kiện được đánh giá là TRUE
c. Khi điều kiện được đánh giá là FALSE
d. Khi điều kiện được đánh giá là NULL
Câu 98: Mục đích của câu lệnh ALTER TRIGGER là gì?
a. Sửa một trigger đã có
b. Xóa một trigger đã có
c. Tạo một trigger mới
d. Tất cả các phương án đều đúng
Câu hỏi 4
Điểm 1,00 ngoài khoảng 1,00
Không gắn cờĐánh dấu để làm sau
Câu lệnh để thực hiện Cấp phát cho tài khoản ‘db_user1’ được quyền xem và cập nhật dữ liệu trên cột ‘hoten, diachi, và Luong của bảng nhân viên’ được viết như thế nào?
a. GRANT UPDATE
ON NHANVIEN( hoten, diachi, luong)
b. GRANT SELECT, UPDATE
ON NHANVIEN
TO db_user1
c. GRANT SELECT
ON NHANVIEN
TO db_user1
d. GRANT SELECT, UPDATE
ON NHANVIEN( hoten, diachi, luong)
TO db_user1
Câu 99: Câu lệnh nào được phép dùng trong khối lệnh T-SQL?
a. DROP TABLE
b. ALTER TABLE
c. DELETE
d. CREATE VIEW
Câu 100: Cho bảng PHANCONG(MADA, MANV, SoGio)
Đoạn mã tạo trigger cho phép nhập số giờ của nhân viên chỉ là từ 5 đến 10 khi thêm phân công nhân viên thực hiện dự án
a. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 and @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
b. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF Delete
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from DELETED
if (@tg<5 or @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
c. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if not (@tg<5 and @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
d. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 or @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
Phản hồi
Đáp án đúng là:.
CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 or @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
Tham khảo: Slide bài giảng và tài liệu hướng dẫn học Bài 4 – phần Trigger
là:
Câu 101: Sự khác nhau cơ bản trong 2 trường hợp sau:
1. Sửa trigger bằng lệnh Alter trigger
2. Xóa trigger bằng lệnh drop trigger sau đó tạo lại bằng lệnh create trigger
a. Tất cả các phương án đều đúng
b. Khi dùng lệnh Alter trigger thì các quyền đã cấp phát cho trigger đó vẫn còn
c. Khi dùng lệnh Drop thì toàn bộ quyền cấp phát trên trigger bị mất và phải cấp phát lại
Câu 102: Cho CSDL “QLGV” với bảng tblNV phân mảnh dọc theo nguyên tắc sau:
-Server1 gồm các thông tin: MaNV, HoTen, GioiTinh
-Server2 gồm các thông tin: MaNV, DiaChi, DienThoai, Email
Câu lệnh còn thiếu để tạo view đầy đủ danh sách các GV lấy từ cả 2 server (view được viết trên Server2)
Create View DSNV
as
begin
Select tblNV.MaNV, Hoten, GioiTinh, DiaChi, DienThoai, Email
From tblNV, Server1.QLGV.dbo.tblNV
Where
…..
end
a. tblNV.MaNV = QLGV.dbo.tblNV.MaNV
b. tblNV.MaNV = Server1. tblNV.MaNV
c. MaNV = tblNV.MaNV
d. tblNV.MaNV = Server1.QLGV.dbo.tblNV.MaNV
Câu 103: Cho CSDL Quản lý nhân sự gồm các bảng:
NHANVIEN(MaNV, HoTen, HSL, PC, GioiTinh, MaPB)
PHONGBAN(MaPB, TenPB, DiaDiem)
Để tài khoản db_user1 được quyền lựa chọn – cập nhật trên thuộc tính HoTen, Hệ số lương của bảng NHANVIEN và trên thuộc tính tên phòng ban của bảng PHONGBAN thì câu lệnh phân quyền đầy đủ là gì?
a. REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN( TenPB )
FROM db_user1
b. REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
c. REVOKE SELECT, UPDATE
ON NHANVIEN
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN
FROM db_user1
d. REVOKE SELECT, UPDATE
ON PHONGBAN
FROM db_user1
Câu 104: Thay vì thực hiện truy vấn câu lệnh:
SELECT *
FROM Server2.QuanlyKH.dbo.KhachHang
Để thực hiện trong suốt dữ liệu với tên là “QLKH” thì câu lệnh đúng là gì?
a. Create synonym QLKH for QuanlyKH.dbo.KhachHang
Select * from QLKH
b. Create QLKH for Server2.QuanlyKH.dbo.KhachHang
Select * from QLKH
c. Create synonym QLKH for KhachHang
Select * from QLKH
d. Create synonym QLKH for Server2.QuanlyKH.dbo.KhachHang
Select * from QLKH
Câu 105: Một cột kiểu NCHAR(25) chiếm dung lượng là?
a. 100 byte
b. 50 byte
c. 2 byte
d. 25 byte
Câu 106: Phương pháp phân mảnh thực hiện: Chia quan hệ ban đầu R thành các mảnh (đoạn), mỗi mảnh chứa một số bộ giá trị của R thỏa mãn một tính chất nào đấy (điều kiện phân mảnh).
a. Phân mảnh hỗ hợp
b. Phân mảnh dọc
c. Không phải các phương pháp này
d. Phân mảnh ngang
Câu 107: Đặc điểm của trigger là gì?
a. Trigger có thể thực hiện nhiều công việc và được thực hiện bằng câu lệnh được gọi
b. Trigge chỉ có thể thực hiện một công việc và được thực hiện bằng câu lệnh được gọi
c. Trigger có thể thực hiện nhiều công việc và được thực hiện tự động thông qua sự kiện
d. Trigger chỉ có thể thực hiện một công việc và được thực hiện tự động thông qua sự kiện
Câu 108: Để liên kết đến server khác có những cách nào?
a. Sử dụng câu lệnh truy vấn
b. Tất cả các phương pháp đều đúng
c. Sử dụng câu lệnh truy vấn Thông qua của sổ Management Studio
Câu 109: Cho đoạn lệnh:
DECLARE
@V1 int
BEGIN
SELECT COUNT(*) FROM nhanvien
END
BEGIN
set @V1= @@ROWCount
END
Giá trị @V1 sẽ nhận là?
a. Tùy thuộc vào số lượng bản ghi của bảng Nhanvien
b. 1
c. NULL
d. 0
Câu 110: Câu hỏi 15
Câu trả lời không đúng
Điểm 0,00 ngoài khoảng 1,00
Không gắn cờĐánh dấu để làm sau
Cho các bảng
PHONGBAN ( MAPB, TENDV , MaTP, NgayBD, SoNV), NHANVIEN ( MANV, HOTen, NS, GT, HSL, DC, MAPB, NgayVL), DUAN ( MADA, TENDA, DIADIEM, NgBD, MAPB)
Viết trigger khi thay đổi mã cho một phòng thì các nhân viên và dự án thuộc phòng ban đó cũng phải thay đổi theo
a. CREATE TRIGGER UpdateMaPhong
ON PHONGBAN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaPhong )
BEGIN
DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from NHANVIEN Where MaPB= @MaPhgCu) )
UPDATE NHANVIEN SET MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
END
END
b. Tất cả các phương án đều đúng
c. CREATE TRIGGER UpdateMaPhong
ON PHONGBAN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaPhong )
BEGIN
DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from DUAN Where MaPB = @MaPhgCu) )
UPDATE DUAN set MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
END
END
d. CREATE TRIGGER UpdateMaPhong
ON PHONGBAN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaPhong )
BEGIN
DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from NHANVIEN Where MaPB= @MaPhgCu) )
UPDATE NHANVIEN SET MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
If ( EXISTS (select MaPB from DUAN Where MaPB = @MaPhgCu) )
UPDATE DUAN set MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
END
END
Câu 111: Cho bảng tblNHANVIEN(maNV, HoTen, QueQuan, HSL).
Câu lệnh để phân quyền được phép xem (lấy) dữ liệu trên bảng tblNHANVIEN cho tài khoản “nguoidung1” là gì?
a. GRANT ALL
ON tblNHANVIEN
TO nguoidung1
b. GRANT SELECT
ON tblNHANVIEN
TO nguoidung1
c. GRANT VIEW
ON tblNHANVIEN
TO nguoidung1
d. GRANT ALL
ON tblNHANVIEN
TO public
Câu 112: Câu lệnh sau đây thực hiện gì
CREATE LOGIN test
WITH PASSWORD = ‘12345’ MUST_CHANGE
a. Cho phép tạo tài khoản người dùng là Test với mật khẩu là 12345 để đăng nhập hệ thống
b. Cho phép tạo một tài khoản login mới với tên là “test” và mật khẩu là “12345”. Yêu cầu lần đầu sau khi đăng nhập của tài khoản phải đổi mật khẩu. Tài khoản đăng nhập với quyền xác thực SQL Server
c. Cho phép tạo một tài khoản login mới với tên là “test” và mật khẩu là “12345” để đăng nhập hệ thống, tài khoản xác thực chế độ SQL Server
d. Cho phép tạo một tài khoản login mới với tên là “test” và mật khẩu là “12345”. Yêu cầu lần đầu sau khi đăng nhập phải đổi mật khẩu. Tài khoản đăng nhập với quyền xác thực Window
Câu 113: Câu lệnh để thực hiện Cấp phát cho tài khoản ‘db_user1’ được quyền xem và cập nhật dữ liệu trên cột ‘hoten, diachi, và Luong của bảng nhân viên’ được viết như thế nào?
a. GRANT SELECT, UPDATE
ON NHANVIEN
TO db_user1
b. GRANT SELECT
ON NHANVIEN
TO db_user1
c. GRANT SELECT, UPDATE
ON NHANVIEN( hoten, diachi, luong)
TO db_user1
d. GRANT UPDATE
ON NHANVIEN( hoten, diachi, luong)
Câu 114: Có mấy phương pháp thực hiện phân mảnh dữ liệu
a. 2
b. 4
c. 5
d. 3
Câu 115: Khảo sát thủ tục sau:Create procedure prcTemp@tmp int outputAsSelect @tmp=ytd_sales from titlesReturnHãy xác định lệnh SQL được dùng để hiển thị giá trị của biến đầu ra khi thủ tục này được gọi :
a. Declare @tmp int Exec prcTemp @tmp Print @tmp
b. Declare @temp intExec prcTemp @tmp=@temp outputPrint @temp
c. Exec prcTemp @tmp output Print @tmp
d. Declare @temp int Exec prcTemp @tmp=@tempPrint @temp
Câu 116: Kết quả của câu truy vấn sau là gì?
SELECT (25%5) ,(8%2.5)
a. 5 và 4.5
b. 0 và 0.5
c. 0 và 2
d. Câu lệnh gây ra lỗi.
Câu 117: Cho đoạn mã tạo trigger:
CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
Cho biết ý nghĩa của đoạn mã
a. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN chỉ nhập từ Nam hoặc Nữ, nếu nhập sai đươc ra thông báo “Bạn nhập sai Giới tính”
b. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN không được nhập giá trị “Nam” hoặc”Nữ”
c. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN
d. Tất cả các phương án đều đúng
Câu 118: Cho CSDL quản lý sản phẩm với bảng tblSANPHAM gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sTenSP
From tblSANPHAM
Where fDonGia between 50,000 and 70,000
a.
b.
c.
d. (Đ)
Câu 119: Cho đoạn lệnh:
declare @IX int =100
while (@IX <=110)
begin print @IX
if @IX=105 break
set @IX = @IX +1
END
Mấy dòng dữ liệu được in ra
a. 0
b. 6
c. 1
d. 5
Câu 120: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để tính tổng số tiền của tất cả các sản phẩm đang có
a. Select sum(iSoluong*fDonGia)
From tblSANPHAM
Group by sXuatSu
b. Select sum(iSoluong)
From tblSANPHAM
c. Select sum(iSoluong*fDonGia)
From tblSANPHAM
d. Select sXuatSu, sum(iSoluong)
From tblSANPHAM
Câu 121: Câu lệnh để cấp phát tất cả các quyền cho tất cả các tài khoản được viết như thế nào?
a. GRANT all
TO all accounts
b. GRANT all
TO accounts
c. GRANT all
TO public
d. Không có đáp án nào đúng
Câu 122: Để cấp quyền cho người dùng “Test” được quyền xem dữ liệu của Bảng “tblNhanVien” thì câu lệnh được sử dụng là gì?
a. SELECT
b. GRANT
c. INVOKE
d. DENY
Câu 123: Cho CSDL Quản lý nhân sự gồm các bảng:
NHANVIEN(MaNV, HoTen, HSL, PC, GioiTinh, MaPB)
PHONGBAN(MaPB, TenPB, DiaDiem)
Tài khoản “db_user1” được thực hiện câu lệnh nào sau khi đoạn mã sau được thực hiện:
REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN( TenPB )
FROM db_user1
a. Select HoTen, HSL, TenPB
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
Update NHANVIEN
Set PC = PC + 1
Where GioiTinh = N’Nữ”
b. Select HoTen, HSL, TenPB, GioiTinh
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
c. Delete from NHANVIEN
Where GioiTinh = N’Giới tính”
d. Select HoTen, HSL, TenPB
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
Update NHANVIEN
Set HSL = HSL + 1
Where GioiTinh = N’Nữ”
Câu 124: Cho CSDL “QuanLyBH” được cài đặt tại ServerAo và ServerThat như sau:
*Tại ServerAo có chứa bảng tblNV2(MaNV, TrinhDo, ChuyenNganh, Nam)
*Tại ServerThat có bảng tblNV(MaNV, HoTen, NgaySinh)
Tại ServerThat câu lệnh truy vấn để cho danh sách đầy đủ thông tin gồm MaNV, HoTen, TrinhDo được viết như thế nào
a. Seclect tblNV.MaNV, HoTen, TrinhDo
From tblNV, QuanLyBH.tblNV2
Where tblNV.MaNV = QuanLyBH.tblNV2.MaNV
b. Seclect tblNV.MaNV, HoTen, TrinhDo
From tblNV, tblNV2
Where tblNV.MaNV = tblNV2.MaNV
c. Seclect MaNV, HoTen, TrinhDo
From tblNV, ServerAo.QuanLyBH.dbo.tblNV2
Where tblNV.MaNV = ServerAo.QuanLyBH.dbo.tblNV2.MaNV
d. Seclect tblNV.MaNV, HoTen, TrinhDo
From tblNV, ServerAo.QuanLyBH.dbo.tblNV2
Where tblNV.MaNV = ServerAo.QuanLyBH.dbo.tblNV2.MaNV
Câu 125: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM).
Đâu là thủ tục để cho danh sách tên các sản phẩm đã được mua hàng theo mã hóa đơn nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Declare nvarchar(9) @mhd
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
b. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblCTHOADON
Where sMaHD = @mhd
END
c. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
d. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblCTHOADON, tbSANPHAM
Where sMaHD = @mhd
END
Câu 126: @V_GRADE nhận giá trị ‘C’ thì @V_PRICE sẽ nhận giá trị thế nào?
IF @V_PRICE > 1000
Set @V_GRADE = ‘A’
ELSE
IF @V_PRICE > 900
Set @V_GRADE = ‘B’
ELSE
IF @V_PRICE > 800 Set
@V_GRADE = ‘C’
ELSE
IF @V_PRICE > 600 Set
@V_GRADE = ‘D’
ELSE Set
@V_GRADE = ‘E’
a. @V_PRICE lớn hơn 800
b. @V_PRICE trong khoảng 801 và 900 V_PRICE lớn hơn 1000
c. @V_PRICE lớn hơn 1000
d. @V_PRICE trong khoảng 601 và 800 V_PRICE lớn hơn 800
Câu 127: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho biết tên các sản phẩm đã được mua hàng trong một ngày nào đó
a. CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
b. CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblHOADON as C
Where dNgayLap = @d
END
c. CREATE PROC spTenSP
As
BEGIN
Declare datetime @d
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
d. CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON
Where dNgayLap = @d and A.sMaSP = B.sMaSP
END
Câu 128: Xác định ý nghĩa thủ tục sau:CREATE PROC get_playername @sport_id varchar(10)ASSELECT player_lname, player_fnameFROM 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 vận động viên (player) mà có Id 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 không 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 các môn thể thao mà có Id không bằng với tham số đầu vào
Câu 129: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where fHSL<3.33
a.
b. (Đ)
c.
d.
Câu 130: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where sGioitinh = N’Nam’
a.
b.
c.
d. (Đ)
Câu 131: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where sGioitinh = N’Nữ’
a.
b. (Đ)
c.
d.
Câu 132: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để cho danh sách tên các sản phẩm có đơn giá trên 50000 và có xuất sứ ở Pháp
a. Select sTenSP
From tblSANPHAM
Where fDonGia > 50000
b. Select *
From tblSANPHAM
Where fDonGia > 50000 and sXuatSu = N’Pháp’
c. Select sTenSP
From tblSANPHAM
Where sXuatSu = N’Pháp’
d. Select sTenSP
From tblSANPHAM
Where fDonGia > 50000 and sXuatSu = N’Pháp’
Câu 133: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để tính tổng số lượng sản phẩm của từng nước theo xuất sứ
a. Select sXuatSu, iSoluong
From tblSANPHAM
b. Select sXuatSu, sum(iSoluong)
From tblSANPHAM
c. Select sum(iSoluong)
From tblSANPHAM
d. Select sXuatSu, sum(iSoluong)
From tblSANPHAM
Group by sXuatSu
Câu 134: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where fHSL>3.33
a.
b. (Đ)
c.
d.
Câu 135: Cho CSDL quản lý sản phẩm với hai bảng blCTHOADON (sMaHD, sMaSP, iSLM) và tblSANPHAM(sMaSP, sTenSP, iSLBan, fDongia, sXuatSu).
Đâu là câu lệnh truy vấn để tính tổng số tiền hàng đã bán của từng sản phẩm theo tên Sản phẩm.
a. Select sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
Group by sMaHD
b. Select sTenSP, sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
c. Select sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Group by sTenSP
d. Select sTenSP, sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
Group by sTenSP
Câu 136: Cho CSDL quản lý sản phẩm với hai bảng blCTHOADON (sMaHD, sMaSP, iSLM) và tblSANPHAM(sMaSP, sTenSP, iSLBan, fDongia, sXuatSu).
Đâu là câu lệnh truy vấn để tính tổng số tiền hàng đã bán của từng hóa đơn
a. Select sMaHD, sum(iSLM *fDonGia)
From tblCTHOADON
Group by sMaHD
b. Select sum(iSLM*fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
c. Select sMaHD, sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
d. Select sMaHD, sum(iSLM*fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
Group by sMaHD
Câu 137: Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Câu lệnh để có được bảng đầy đủ danh sách các nhân viên (cả nam và nữ) từ Server 2 là gì?
a. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
b. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
c. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.QLNV.dbo.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
d. Select MaNV, TenNV, GioiTinh, DiaChi
from
tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From Server2.QLNV.dbo.tblNhanvien
Câu trả lời không đúng
Câu 138: Kết quả của đoạn T-SQL sau sẽ như thế nào?
DECLARE
@X VARCHAR(10) = ‘TITL’,
@Y VARCHAR(10) = ‘TITLE’
BEGIN
IF @X >= @Y
print(‘X is greater’)
IF @Y >= @X
print(‘Y is greater’)
END
a. Không in ra gì cả
b. “X is greater”
c. Cả “X is greater” và “Y is greater”
d. “Y is greater”
Câu 139: Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Đoạn code để chèn thêm một nhân viên mới vào bảng (thủ tục được viết trên Server2)
a. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End Câu trả lời không đúng
b. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
c. Không có đáp án đúng
d. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.QLNNV.dbo.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
Câu 140: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(float @a, float @b)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
a. Cho danh sách các sản phẩm có đơn giá trên @b và dưới @b, với @a và @b là tham số truyền vào
b. Cho danh sách tên các sản phẩm
c. Cho danh sách tên sản phẩm có đơn giá trong khoảng từ @a đến @b với @a và @b là tham số truyền vào
d. Cho danh sách thông tin đầy đủ tất cả các sản phẩm có giá trong khoảng từ @a đến @b
Câu 141: Cho hai bảng
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV, TongTien)
tblCTHOADON (sMaHD, sMaSP, iSL, fDG)
Để cho phép mỗi khi thêm một dòng mới vào bảng tblCTHOADON thì tổng tiền của HOADON được cập nhật theo thì viết trigger với lựa chọn biến cố nào?
a. Select
b. Delete
c. Update
d. Insert
Câu 142: Cho CSDL “QuanLyBH” được cài đặt tại ServerAo và ServerThat như sau:
*Tại ServerAo có chứa bảng tblNV(MaNV, HoTen, NgaySinh, TrinhDo, ChuyenNganh, Nam)
*Tại ServerThat có bảng tblNV(MaNV, HoTen, NgaySinh, TrinhDo, ChuyenNganh, Nam)
Tại ServerThat câu lệnh truy vấn để cho danh sách tất cả thông tin gồm (MaNV, HoTen, TrinhDo) được viết như thế nào?
a. Select MaNV, HoTen, TrinhDo
From tblNV
Union
Select MaNV, HoTen, TrinhDo
From ServerAo.tblNV
b. Select MaNV, HoTen, TrinhDo
From tblNV
Union
Select MaNV, HoTen, TrinhDo
From ServerAo.QuanLyBH.dbo.tblNV
c. Seclect *
From tblNV
Union
Seclect *
From ServerAo.tblNV
d. Seclect *
From tblNV
Union
Seclect *
From ServerAo.QuanLyBH.dbo.tblNV
Câu 143: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sXuatSu = @xs
END
a. Cho danh sách tên sản phẩm theo một xuất sứ nào đó với xuất sứ là tham số truyền vào
b. Cho danh sách thông tin đầy đủ các sản phẩm
c. Cho danh sách thông tin đầy đủ các sản phẩm theo một một xuất sứ nào đó với xuất sứ là tham số truyền vào
d. Cho danh sách tên các sản phẩm có xuất xứ nước ngoài
Câu 144: Xem xét thủ tục sau:
CREATE PROCEDURE INS_NV (@V_ID int, @V_NAME VARCHAR(20) = ‘NGUYEN’, @V_ADD VARCHAR(20))
AS
BEGIN
INSERT INTO Nhanvien (Manv, TenNV, Diachi)
VALUES (@v_id, @v_name, @v_ADD)
END
Để thực hiện đoạn thủ tục trên thì dùng lệnh?
a. EXECUTE INS_NV@V_ID = @V_NAME = ‘LONG’, V_ADD = ‘HAIPHONG’
b. Không lựa chọn nào đúng
c. EXECUTE INS_NV 3,’HA’,’HANOI’
d. EXECUTE INS_NV 3, ‘LONG’
Câu 145: Để thu hồi quyền được sửa của tài khoản người dùng Test với bảng tblNhanVien trên thuộc tính “QueQuan” và “HoTen” đã được cấp trước đó thì câu lệnh là gì?
a. REVOKE ALL
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
b. REVOKE SELECT, UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
c. GRANT UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
d. REVOKE UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO test
Câu 146: Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Đoạn code để chèn thêm một nhân viên mới vào bảng (thủ tục được viết trên Server2)
a. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
b. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.QLNNV.dbo.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
c. Không có đáp án đúng
d. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
Câu 147: Cho bảng tblCTHOADON (sMaHD, sMaSP, iSL, fDG, fThanhTien) và tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạn Trigger sau để thực hiện yêu cầu gì:
CREATE TRIGGER suaCTHD
ON tblCTHOADON
Instead of update
As
If update(iSL)
Begin
Declare int @sl, float @dg, nvarchar @soHD
Select @sl = iSL, @dg = fDG, @soHD = sMaHD
From insterted
Update tblHOADON
Set TongTien = TongTien + @sl * @dg
Where sMaHD = @soHD
End
a. Khi cập nhật giá trị tại cột đơn giá (fDG) của sản phẩm mua thì thành tiền tương ứng của mặt hàng đó trong Hóa đơn được tính toán lại tương ứng
b. Khi thêm một dòng mới vào bảng tblCTHOADON thì số tiền trong hóa đơn được cập nhật tương ứng
c. Khi cập nhật dữ liệu trong bảng tblCTHOASDON thì thành tiền tương ứng của mặt hàng đó được tính toán lại tương ứng
d. Khi cập nhật giá trị tại cột Số lượng (iSL) trong bảng tblCTHOADON thì thành tiền tương ứng của mặt hàng đó trong được tính toán lại tương ứng
Câu 148: Để tạo trigger phải xấc định những nội dung gì
a. Tất cả các nội dung được liệt kê
b. Lệnh nào sẽ kích hoạt trigger thực hiện
c. Tên và bảng chịu tác động
d. Trigger sẽ làm những thao tác gì khi được kích hoạt
Câu 149: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
a. Cho danh sách thông tin đầy đủ các sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
b. Cho biết tên sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
c. Cho biết tên sản phẩm đã được khách hàng thực hiện mua hàng
d. Cho danh sách tên các sản phẩm đã được khách hàng mua hàng trong một ngày nào đó, với ngày là tham số truyền vào
Câu 150: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM).
Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(nvarchar @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
Chọn một câu trả lời:
a. Cho danh sách tên các sản phẩm đã được khách hàng mua hàng trong một ngày nào đó
b. Cho biết tên sản phẩm đã được khách hàng thực hiện mua hàng
c. Cho biết tên sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
d. Cho danh sách thông tin đầy đủ các sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
Câu 151: Cho các bảng
LOP( malop, TenLop, NienKhoa, SiSo)
SINHVIEN ( MaSV, Hoten, NS, GT, maLop)
Viết trigger khi sưar một lớp nào đó thì các sinh viên thuộc lớp đó cũng sửa theo.
a. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
b. CREATE TRIGGER UpdateMaLop
ON SINHVIEN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
c. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
END
END
d. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
Câu 152: Cho máy thật có địa chỉ là 192.168.10.25. Để máy ảo kết nối phân tán được đến máy chủ thì địa chỉ máy áo phải là địa chỉ nào sau đây?
a. 192.168.11.25
b. 192.168.10.40
c. 192.169.10.25
d. 195.168.10.25
Câu 153: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là thủ tục để cho tên các sản phẩm có đơn giá trong một khoảng @a và @b nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between 30000 and 100000
END
b. CREATE PROC spTenSP(float @a)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia >@a
END
c. CREATE PROC spTenSP
As
BEGIN
Declare float @a, float @b
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
d. CREATE PROC spTenSP(float @a, float @b)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
Câu 154: Cú pháp để truy xuất đến một bảng của CSDL khác năm khác Server là:
a. [DatabaseName][.owner][.tableName] [.ServerName]
b. [ServerName][.tableName]
c. [ServerName][.DatabaseName][.owner][.tableName]
d. [ServerName][.owner][.tableName]
Câu 155: Ý nghĩa của đoạn mã sau là gì?
CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 and @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
a. Tất cả các phương án đều đúng
b. Tạo trigger khi nhập dữ liệu phân công có số giờ hoặc dưới 5 hoặc trên 10
c. Tạo trigger khi sửa phân công chỉ được nhận giá trị từ 5 đến 10
d. Đoạn mã tạo trigger cho phép nhập số giờ của nhân viên chỉ là từ 5 đến 10 khi thêm phân công nhân viên thực hiện dự án
Ðúng✅=> ĐÁP ÁN TRẮC NGHIỆM HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU IT_10_04 TÍN CHỈ – SOẠN NGÀY 15.05.2025 – THI VẤN ĐÁP TRỰC TUYẾN
Ghi chú là đáp án đúng
Câu 1: Allen muốn xoá thủ tục dbo.fx_order_cost. Lệnh nào được dùng để xoá thủ tục này?
Ðúng✅=> a. DROP
b. REMOVE
c. DELETE
d. EDIT
Câu 2: Bạn là nhà quản trị CSDL SQL. Bạn đang phát triển 1 ứng dụng DB cho phòng kế toán công ty của bạn. Ứng dụng này chứa nhiều modules được tích hợp nhau. Các user thuờng gặp phải deadlock bất kỳ lúc nào một người nào đó thực hiện 1 hàm mà nó cần tích hợp từ nhiều module. Làm thế nào đê giảm thiểu các deadlock này?
a. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa phù hợp với cách thực thi của công cụ query optimizer
Ðúng✅=> b. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng phải theo cùng 1 thứ tự
c. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng không theo cùng thứ tự
d. Bạn cần phải bảo đảm là tất cả các transaction chỉnh sửa dữ liệu các bảng phải theo thứ tự ngược nhau
Câu 3: Các đặc điểm sau là của phương pháp sao lưu nào?
-Chỉ sao lưu những thay đổi trên dữ liệu kể từ lần full backup gần nhất
-Sử dụng ít tài nguyên hơn
-Không ảnh hưởng đến hiệu suất của hệ thống
-Sẽ vô nghĩa nếu không có bản sao lưu full backup
Ðúng✅=> a. Differential
b. Transaction log backup
c. Full backup
Câu 4: Các đặc điểm sau là của phương pháp sao lưu nào?
-Sao lưu bản đầy đủ của CSDL
-Quá trình được thực hiện mà không cần offline CSDL
-Chiếm lượng lớn tài nguyên hệ thống
– Ảnh hưởng thời gian đáp ứng các yêu cầu hệ thống
a. Differential
b. Transaction log backup
Ðúng✅=> c. Full backup
Câu 5: Các hàm nào không thể sử dụng với kiểu dữ liệu xâu?
a. MIN() và MAX()
b.Các đáp án đều sai
Ðúng✅=> c. SUM() và AVG()
d. COUNT()
Câu 6: Các phương pháp phân mảnh gồm:
a. Tất cả các phương án đều đúng
b. Phân mảnh ngang
c. Phân mảnh hỗn hợp
d. Phân mảnh dọc
Câu 7: Các trường hợp nào bắt buộc phải sử dụng trigger?
a. Khi có sự thay đổi dữ liệu ở 1 bảng và muốn dữ liệu trên một số bảng khác liên quan tự động thay đổi theo
b. Tất cả các phương án đều đúng
c. Các ràng buộc mà không thể mô tả khi định nghĩa bảng
Câu 8: Cảnh báo lỗi “…… .mdf cannot be overwritten. It is being used by database ‘…’” xảy ra khi thực hiện thao tác gì?
a. Khôi phục CSDL
b. Xuất (export) CSDL
c. Sao lưu CSDL
d. Nhập (import) CSDL
Câu 9: Cấu hình nào sau đây được Windows cung cấp sẵn, dùng làm kết nối trung gian giữa ứng dụng và các hệ quản trị CSDL?
a. Net-Library
b. Kết nối mạng trên Server
c. OLE DB
d. ODBC
Câu 10: Cấu trúc nào sau đây dùng để thực hiện công việc sau:
Tăng 25% lương của nhân viên sinh trước năm 1980
Tăng 10% lương của nhân viên sinh từ năm 1980 đến 1990
Không tăng lương của nhân viên sinh sau năm 1990
a. . IF… …ELSE
b. IF… …ELSIF…ELSE
c. WHILE
d. Không có đáp án đúng
Câu 11: Cho bảng tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL, sQuequan). Đâu là câu truy vấn để cho danh sách tên của các nhân có hệ số lương trên 3.66
a. Select
*From tblNHANVIEN
Where fHSL>3.66
b. Select sHoten
From tblNHANVIEN
c. Select sHoten, fHSL
From tblNHANVIEN
Where fHSL>3.66
d. Select sHoten
From tblNHANVIEN
Where fHSL>3.66
Câu 12: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để cho danh sách tên các sản phẩm có đơn giá từ 50000 đến 100000
a. Select sTenSP
From tblSANPHAM
Where fDongia between 50000 and 100000
b. Select sTenSP
From tblSANPHAM
Where fDongia>50000
c. Select sTenSP
From tblSANPHAM
Where fDongia>50000 and fDongia<100000
d. Select
*From tblSANPHAM
Where fDongia between 50000 and 100000
Câu 13: Cho CSDL gồm các bảng:
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX, TSLuongBan)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Để cho phép mỗi khi Khách hàng mua hàng với số lượng mua iSLM nào đó thì tổng số lượng hàng đã bán TSLuongBan của sản phẩm được cập nhật tự động thì tạo đối tượng gì trong CSDL tương ứng?
a. Proc
b. Table
c. View
d. Trigger
Câu 14: Có mấy kiểu xác thực trong SQL Server
a. 2
b. 5
c. 3
d. 4
Câu 15: Có mấy kỹ thuật sao lưu?
a. 2
b. 3
c. 4
d. 5
Câu 16: Có mấy loại trigger?
a. 3
b. 5
c. 4
d. 2
Câu 17: Có mấy phương pháp phân tán CSDL?
a. 2
b. 3
c. 5
d. 4
Câu 18: Cơ sở dữ liệu hệ thống Msdb dùng để?
a. Hoạch định các báo động và công việc cần làm (schedule alerts and jobs)
b. Lưu trữ các system objects
c. Lưu trữ các table và stored proceduce trong quá trình làm việc
d. Lưu trữ các thông tin cấp hệ thống
Câu 19: Có thể đặt mấy cột trong bảng làm khóa chính?
a. Chỉ trên cột ID
b. Trên 2 cột bất kỳ
c. Trên 1 cột bất kỳ
d. Trên nhiều cột
Câu 20: Cú pháp để truy xuất đến một bảng của CSDL khác trong cùng Server là:
a. [tableName]
[.database]
b. [database][.owner][.tableName]
c. [tableName]
[.database][.owner]
d. [database][.tableName]
Câu 21: Để cấp quyền cho người dùng “Test” được quyền xem dữ liệu của Bảng “tblNhanVien” thì câu lệnh là gì?
a. GRANT View
TO Test
b. GRANT All
ON tblNhanVien
TO Test
c. GRANT View
ON tblNhanVien
TO Test
d. GRANT Select
ON tblNhanVien
TO Test
Câu 22: Dịch vụ chuyển đổi dữ liệu DTS của SQL Server thực hiện chức năng gì?
a. Tìm kiếm
b. Nhân bản dữ liệu
c. Tra cứu dữ liệu
d. Chuyển dữ liệu giữa các Server
Câu 23: Độ lớn của một cột kiểu CHAR?
a. 1 byte
b. 8 bytes
c. 2 bytes
d. 4 bytes
Câu 24: 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á 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 cho mỗi mã vùng
b. Tạo 1 view cho mỗi mã vùng
c. 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
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
Câu 25: Giả sử, CSDL được lập lịch Full Database Backup vào ngày chủ nhật, Differential Database Backup vào ngày thứ ba và thứ năm, còn Log Database Backup cứ mỗi tiếng một lần vào các ngày từ thứ 2 đến thứ 6 trong tuần,
Trong trường hợp, ngày thứ sáu có sự cố với CSDL data file bị hỏng, để phục hồi dữ liệu và CSDL hoạt động bình thường, thứ tự các bước phục hồi thực hiện như thế nào?
a. + Khôi phục Full Database của ngày chủ nhật.
+ Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Transaction log backup ngày thứ năm.
b. + Khôi phục Transaction log backup ngày thứ năm.
+ Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Full Database của ngày chủ nhật.
c. + Phục hồi Differential Database của ngày thứ năm.
+ Khôi phục Transaction log backup ngày thứ năm.
+ Khôi phục Full Database của ngày chủ nhật.
d. + Khôi phục Full Database của ngày chủ nhật.
+ Khôi phục Transaction log backup ngày thứ năm.
+ Phục hồi Differential Database của ngày thứ năm.
Câu 26: Gợi ý nào được đề xuất khi thực hiện sao lưu dữ liệu?
a. Tất cả các phương án đều đúng
b. Thực hiện nhiều sao lưu Transaction trong ngày
c. Thực hiện nhiều sao lưu Differential trong ngày (định kỳ khoảng một vài tiếng một lần)
d. Thực hiện sao lưu Full một lần vào lúc bắt đầu ngày (chuẩn bị làm việc với CSDL)
Câu 27: Hàm nào trong SQL Server trả về ngày hiện tại của hệ thống?
a. Date()
b. Getdate()
c. currentdate()
d. now()
Câu 28: Hệ quản trị cơ sở dữ liệu SQL Server 2008 không hỗ trợ tính năng nào sau đây?
a. Định nghĩa dữ liệu
b. Khôi phục dữ liệu
c. Kết nối dữ liệu với các dịch vụ điện toán đám mây
d. Khai phá dữ liệu
Câu 29: Hỗ trợ kiến trúc Client/Server (Supports Client/Server model) là gì?
a. Truy cập dữ liệu được lưu trữ trên Server
b. Server có nhiệm vụ xử lý các yêu cầu và trả lại kết quả cho Client.
c. Tất cả các phương án đều đúng
d. Ứng dụng có thể chạy trên Client
Câu 30: Jack cần chèn 1 điểm dừng (save point) có tên là ’Returnback’ vào transaction của anh t Nên dùng lệnh nào sau đây:
a. INSERT SAVEPOINT Returnback
b. SAVE SAVEPOINT Returnback
c. SAVE TRANSACTION Returnback
d. INSERT TRANSACTION Returnback
Câu 31: Kết quả của POWER(6, 2) là bao nhiêu?
a. 3
b. 12
c. 64
d. 36
Câu 32: Khi xảy ra một sự kiện thao tác dữ liệu trong CSDL được lưu tạm vào bảng nào?
a. Inserted
b. Deleted và Inserted
c. Deleted
d. Updated
Câu 33: Kiểu dữ liệu nào sau đây KHÔNG có trong SQL Server ?
a. Text
b. Char
c. Nvarchar
d. Bool
Câu 34: Làm cách nào để trả về nhiều giá trị từ 1 procedure?
a. Sử dụng con trỏ.
b. Bạn không thể thực hiện đượ
c. Sử dụng các parameters IN.
d. Sử dụng các parameters OUT parameters.
Câu 35: Lệnh nào sau đây không thể rollback?
a. DELETE
b. Tất cả đều sai
c. DROP
d. INSERT
Câu 36: Lý do cần thiết phải thực hiện sao lưu dữ liệu?
a. Tất cả các phương án đều đúng
b. Do nguyên nhân bên ngoài, bị vô tình hay cố ý làm sai thông tin
c. Bị hack
d. ổ đĩa chứa tâp tin CSDL bị hỏng, Server bị hỏng
Câu 37: Mô hình phục hồi thực hiện: “Là mô hình phục hồi toàn bộ hoạt động giao dịch của dữ liệu (Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).”
a. Bulk-Logged Recovery Model
b. Full Recovery model
c. Simple Recovery Model
Câu 38: Mỗi cơ sở dữ liệu trong SQL Server gồm mấy tập tin?
a. 1
b. 3
c. 2
d. 4
Câu 39: Một câu lệnh IF… …ELSIF có thể có mấy mệnh đề ELSE?
0 64 1
a. 0 1
b. 1
c. 64
d. Không giới hạn
Câu 40: Một cơ sở dữ liệu chứa ít nhất là?
a. 1 file mdf và 1 file ndf
b. 1 file mdf, 1 file ndf và 1 file ldf
c. 1 file mdf
d. 1 file mdf và 1 file ldf
Câu 41: Nếu lưu giá trị 34567.2255 vào một cột có kiểu dữ liệu NUMBER(7,2), giá trị thực sự được lưu trữ là:
a. 34500
b. 34600
c. 34567.22
d. 34567.23
Câu 42: Người dùng duyệt Web bằng phần mềm gì?
a. Web Browser
b. Web Server
c. Web Site
d. Web Page
Câu 43: Paul thực hiện lệnh SQL sau:SELECT Customers.name, Customers.ord_id, Orders.ord_dateFROM Customers INNER JOIN OrdersWHERE Customers.cust_id = Orders.cust_idMỗ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. Stored Procedures
b. Triggers
c. Batches
d. View
Câu 44: Phần mềm nào sau đây không phải là một Web Browser?
a. File Zilla
b. Internet Explorer
c. Google Chrome
d. Opera
Câu 45: Phát biểu nào sau đây mô tả thuộc tính atomicity của 1 transaction ?
a. Mọi chỉnh sửa trong 1 transaction hoặc được thi hành hết hoặc không có 1 chỉnh sửa nào được thực hiện
b. Bất kỳ thay đổi dữ liệu được thực hiện bởi một transaction vẫn giữ nguyên hiệu quả sau khi transaction hoàn tất
c. Việc chỉnh sửa dữ liệu được làm bởi 1 transaction này thì độc lập với việc chỉnh sửa dữ liệu của 1 transaction khác
d. Mọi dữ liệu đều ở trạng thái không thay đổi sau khi transaction đã thực hiện thành công
Câu 46: Phiên bản cài đặt nào sau đầy đủ cho các doanh nghiệp vừa và nhỏ thực hiện tính năng thương mại điện tử?
a. Enterprise Edition
b. Standard Edition
c. Express Edition
d. Workgroup Edition
Câu 47: Phiên bản Enterprise của SQL Server chứa đầy đủ các đặc trưng của SQL Server và có thể chạy tốt trên hệ thống lên đến?
a. 16 CPUs và 32 GB RAM
b. 32 CPUs và 64 GB RAM
c. 4 CPU và 2 GB RAM
d. 64 CPUs và 128 GB RAM
Câu 48: Phiên bản Personal của SQL Server có thể cài đặt?
a. Windows 98
b. Trên hầu hết các phiên bản của windows, kể cả Windows 98.
c. Windows Server 2000
d. Windows XP
Câu 49: Phương pháp phân tán nào mà dữ liệu để tại một Server và các máy khách (Client) liên kết đến để khai thác?
a. Sao lặp dữ liệu
b. Phương thức lai
c. Tập trung dữ liệu
d. Chia nhỏ dữ liệu
Câu 50: Quy luật nào sau đây không đúng đối với một thủ tục (stored procedure).
a. Bạn có thể tham chiếu đến 1 đối tượng không nằm trong cùng 1 database với thủ tục của bạn
b. Bạn có thể tạo một bảng tạm riêng bên trong 1 thủ tục
c. Bạn có thể thực thi 1 thủ tục mà thủ tục này gọi 1 thủ tục khác. Thủ tục được gọi có thể truy xuất đến các đối tượng được tạo ra bởi thủ tục gọi
d. Bạn có thể tạo, tạo lại, hay xóa các đối tượng bên trong 1 thủ tục Các lệnh mà bạn có thể sử dụng là CREATE, DROP, và SELECT INTO trong thủ tục của bạn
Câu 51: Sự khác biệt cơ bản giữa dettach và xóa CSDL?
a. CSDL vẫn còn trong máy nhưng tạm thời bị tách khỏi Instance
b. CSDL xóa hẳn trong máy
c. CSDL xóa hẳn nhưng instance vẫn quản ly
Câu 52: Tập tin có phần mở rộng là .ndf được dùng để làm gì?
a. Chỉ dùng khi cơ sở dữ liệu được phân chia chứa trên nhiều đĩa
b. Chứa dữ liệu chính
c. Ghi lại các thay đổi dữ liệu giúp thực hiện rollback khi cần
Câu 53: Thành phần nào không phải đối tượng trong SQL Server?
a. Constraint
b. Replication
c. Table
d. Trigger
Câu 54: Thành phần nào sau đây của SQL Server cho phép người dùng quản lý các đối tượng cơ sở dữ liệu bằng đồ họa?
a. Books Online
b. SQL Server Configuration Manager
c. SQL Server Management Studi
Câu 55: Thành phần nào sau đây thuộc phía Server trong mô hình Client – Server?
a. Database
b. DB Library Application
c. OLE DB Application
d. Network
Câu 56: Thứ tự kiêm tra ràng buộc toàn vẹn dữ liệu là gì?
a. Trigger instead of -> Constraint -> Trigger For/After
b. Trigger For/After -> Trigger instead of -> Constraint
c. Constraint -> Trigger instead of ->Trigger For/After
d. Constraint -> Trigger instead of -> Trigger For/After
Câu 57: Thủ tục sp_addlinkedserver dùng để thực hiện gì?
a. Hủy bỏ liên kết đến Server khác
b. Kiểm tra việc tạo liên kết đến Server khác có thành công hay không
c. Thêm môt Linked Server (Cho phép liên kết đến Server khác)
d. Đăng nhập và kết nối đến Server khác
Câu 58: Thuộc tính nào sau đây không dùng để cấu hình cơ sở dữ liệu SQL Server?
a. Auto Read
b. Auto Shink
c. Read Only
d. Restrict Access
Câu 59: Trigger khác so với thủ tục lưu ở nội dung gì?
a. Tất cả các phương án đều đúng
b. Không cần gọi bằng lệnh EXEC mà tự động được kích hoạt khi dữ liệu trên bảng liên quan được cập nhật
c. Không có tham số và giá trị trả về
Câu 60: Trong cơ sở dữ liệu hệ thống, tập tin nào sau đây lưu trữ các thông tin login account?
a. Master
b. Tempdb
c. Msdb
d. Model
Câu 61: Trong table NHANVIEN, giá trị LUONG của nhân viên tên A (TenNV = ‘A’) trong T-SQL sau bằng mấy?
BEGIN
UPDATE NHANVIEN SET luong = 6000 WHERE TenNV = ‘A’
SAVE tran save_A
UPDATE NHANVIEN SET luong = 7500 WHERE TenNV = ‘A’
SAVE tran save_A
UPDATE NHANVIEN SET luong = 3000 WHERE TenNV = ‘A’
SAVE Tran save_A1
ROLLBACK tran save_A
END
COMMIT
a. 6000
b. 3000
c. Không phải các giá trị trên
d. 7500
Câu 62: Hãy tìm lỗi trong thủ tục sau:Create proc prc1ASDeclare @a smallintDeclare @b smallintSet @a = 1Set @b= 1While (@a <=10)BeginWhile (@a <5) AND (@b>1) or (@b<3)BeginSet @a= @a+@bSet @b=@b+1EndEndreturn
a. Vòng lặp không kết thúc
b. Tên thủ tục prc1 sai
c. Không có kiểu dữ liệu smallint
d. Không cho phép 2 vòng lăp while lồng nhau
Câu 63: Phương pháp phân mảnh thực hiện: Chia tách quan hệ ban đầu R thành các quan hệ Ri có số cột nhỏ hơn, (tập con của R) nhưng mỗi Ri đều phải chứa khóa chính của R
a. Không phải các phương pháp này
b. Phân mảnh dọc
c. Phân mảnh ngang
d. Phân mảnh hỗ hợp
Câu 64: Đoạn mã tạo trigger để cho phép chỉ nhập giá trị Nam hoặc Nữ khi thêm vào bảng NHANVIEN là?
a. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from NHANVIEN
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
b. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
c. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
d. CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF DELETE
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
Câu 65: Cho đoạn mã tạo trigger:
CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
Cho biết ý nghĩa của dòng code “select @gt = GT from INSERTED”
a. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng INSERTED khi sửa với bảng NHÂN VIÊN
b. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng DELETED khi xóa với bảng NHÂN VIÊN
c. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng INSERTED khi thêm với bảng NHÂN VIÊN
d. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng DELETED khi thêm với bảng NHÂN VIÊN
Câu 66: Cho CSDL “QuanLyKH” cài đặt trên máy “Server2” có chứa bảng “KhachHang”. Tại máy “Server1” muốn lấy các thông tin trong bảng “KhachHang” thì câu lệnh thực hiện là:
a. SELECT *
FROM KhachHang
b. SELECT *
FROM QuanlyKH.dbo.KhachHang
c. SELECT *
FROM Server2.QuanlyKH.dbo.KhachHang
d. SELECT *
FROM Server2. KhachHang
Câu 67: Để khai thác đến một bảng của CSDL khác trong cùng Server cần phải xác định thông tin gì?
a. Tên người dùng
b. Tên bảng
c. Tất cả các thông tin
d. Tên CSDL
Câu 68: Câu lệnh sau thực hiện gì?
GRANT CREATE TABLE, CREATE VIEW
TO db_user
a. Cấp quyền được phép sửa bảng và sửa view đối với tất cả các tài khoản
b. Cấp quyền được phép tạo bảng và tạo view đối với tất cả các tài khoản
c. Cấp quyền được phép tạo bảng và tạo view đối với tài khoản db_user
d. Cấp quyền được phép xóa bảng và xóa view đối với tất cả các tài khoản
Câu 69: Để 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 OUTPUTASSELECT @ytd_sales = ytd_sales FROM titles WHERE title = @titleIF @@ROWCOUNT = 0RETURN(-1)ELSERETURN(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 intDECLARE @ytd int EXEC get_sales_for_title’Net Etiquette’, @ytd OUTPUTIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd)GO
b. DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ’Net Etiquette’, @ytdIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd)GO
c. DECLARE @retval int DECLARE @ytd int EXEC @retval = get_sales_for_title ’Net Etiquette’, @ytd OUTPUTIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd) GO
d. DECLARE @retval int DECLARE @ytd int EXEC get_sales_for_title ’Net Etiquette’,@retval OUTPUTIF @retval < 0PRINT ’No sales found’ELSEPRINT ’Year to date sales: ’ + STR (@ytd)GO
Câu 70: Các lệnh nào sau đây bạn sẽ dùng để tạo thủ tục (procedure) mà nhận vào 1 ký tự và hiển thị các tiêu đề bắt đầu với ký tự đó:
a. Create procedure prcDispName @cValue char(1)asSelect * from titles Where title like @cValue%.
b. Create procedure prcDispName@cValue char(1)asSelect * from titles Where title like ’@cValue%’
c. Create procedure prcDispNameasDeclare @temp char(2)Select @temp=’A%’Select * from titles Where title like @temp
d. Create procedure prcDispName @cValue char(1)asDeclare @temp char(2)Select @temp=@cValue+ ’%’ Select * from titles Where title like @temp
Câu 71: Cho CSDL gồm 2 bảng:
DUAN ( MADA, TENDA, DIADIEM, NgayBD, MAPB)
PHANCONG MADA, MANV, SoGio, NgLamDA)
Viết trigger để kiểm soát ngày làm gia dự của nhân viên phải sau ngày dự án đó bắt đầu
a. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA
ON PHANCONG
AFTER UPDATE, INSERT
AS
IF UPDATE(NgayThamGia) –Kiểm tra việc cập nhật trên cột
BEGIN
declare @NgTG datetime, @NgBD datetime
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
WHERE DEAN.MaDA = INSERTED.MaDA)
IF ( @NgTG < @NgBD )
BEGIN
raiserror(N’Ngày Tham gia phải sau ngày Bắt đầu’,16,1)
END
END
b. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA
ON PHANCONG
AFTER UPDATE, INSERT
AS
IF UPDATE(NgayThamGia) –Kiểm tra việc cập nhật trên cột
BEGIN
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
WHERE DEAN.MaDA = INSERTED.MaDA)
IF ( @NgTG < @NgBD )
BEGIN
raiserror(N’Ngày Tham gia phải sau ngày Bắt đầu’,16,1)
END
END
c. Không có phương án nào đúng
d. CREATE TRIGGER CHECK_NGAY_THAM_GIA_DA
ON PHANCONG
AFTER UPDATE, INSERT
AS
IF UPDATE(NgayThamGia) –Kiểm tra việc cập nhật trên cột
BEGIN
declare @NgTG datetime, @NgBD datetime
SET @NgTG = (SELECT NgLamDA FROM INSERTED)
SET @NgBD = (SELECT NgayBD FROM DEAN, INSERTED
END
END
Câu 72: Biến @a nhận giá trị nào khi khối lệnh sau được thực thi?
DECLARE @a int
BEGIN
select @a= @a + 1
END
select @a 1 0 Tất cả đều sai
a. 1
b. Tất cả đều sai
c. 0
d. NULL
Câu 73: Câu lệnh nào không được phép dùng trong khối lệnh T-SQL?
a. Update
b. Delete
c. Select colum1, column2,…
d. Create
Câu 74: Sự khác nhau cơ bản trong 2 trường hợp sau:
1. Sửa trigger bằng lệnh Alter trigger
2. Xóa trigger bằng lệnh drop trigger sau đó tạo lại bằng lệnh create trigger
a. Khi dùng lệnh Drop thì toàn bộ quyền cấp phát trên trigger bị mất và phải cấp phát lại
b. Khi dùng lệnh Alter trigger thì các quyền đã cấp phát cho trigger đó vẫn còn
c. Tất cả các phương án đều đúng
Câu 75: Cho CSDL “QLGV” với bảng tblNV phân mảnh dọc theo nguyên tắc sau:
-Server1 gồm các thông tin: MaNV, HoTen, GioiTinh
-Server2 gồm các thông tin: MaNV, DiaChi, DienThoai, Email
Đoạn code thiếu để chèn thêm một nhân viên mới vào bảng (thủ tục được viết trên Server2)
Create Proc spInsertNhanVien (@ma varchar(10), @HTnVarchar(20), @GT as nvarchar(3), @DC as nvarchar(20), @DT as nvarchar(20), @Email as nvarchar(20))@diachi nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into tblNV Values(@ma, @DC, @DT, @Email)
…..
print N’Thêm thành công’
End
a. Insert Into Server1.QLGV.dbo.tblNV Values(@ma,@DC, @DT, @Email)
b. Insert Into Server2.QLGV.dbo.tblNV Values(@ma,@HT, @GT)
c. Insert Into tblNV Values(@ma,@HT, @GT)
d. Insert Into Server1.QLGV.dbo.tblNV Values(@ma,@HT, @GT)
Câu 76: Điều kiện của của phân mảnh phải thoản mãn là gì khi thực hiện phân mảnh ngang
a. Cả hai điều kiện đều đúng
b. Các phân mảnh phải đảm bảo tách rời Ri ∩ Rj = ϕ
c. Cả hai điều kiện đều sai
d. Các phân mảnh không tách rời, phải có cùng thuộc tính khóa chính
Câu 77: Câu lệnh CREATE LOGIN <tên đăng nhập> FROM WINDOWS
[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ]
được dùng để làm gì?
a. Cả hai đáp án đều sai
b. Cả hai đáp án đều đúng
c. Tạo login với quyền đăng nhập Window
d. Tạo login với quyền đăng nhập SQL Server
Câu 78: Cho T-SQL block sau, dòng nào gây ra lỗi?
1. DECLARE
2. @V_DEPTNO INT
3. BEGIN
4. SET @V_DEPTNO = 20
5. SELECT ENAME, SALARY
FROM EMP WHERE DEPTNO = @V_DEPTNO
6. END
a. Dòng 4
b. Dòng 2
c. Dòng 5
d. Không có dòng nào gây lỗi.
Câu 79: Lệnh sửa đổi 1 thủ tục có tên là prcPrintStoreList như sau:ALTER PROCEDURE prcPrintStoreList @state char(15)ASBEGINIF EXISTS(SELECT * FROM Stores WHERE state=@state)BEGINPRINT ‘List of Stores’SELECT stor_id,stor_name, stor_address,cityFROM Stores WHERE state = stateReturn 0ENDELSEBEGINPRINT ‘No Records Found for given state’RETURN 1ENDENDHãy xác định kết quả sửa đổi này
a. 1
b. Lỗi khi chạy thủ tục (Run-time error )
c. Lỗi biên dịch ( Compile-time error )
Câu 80: Cho bảng NV(MaNV, …, MaPB), DA(MaDA, …., MaPB) và PB(MaPB, ….).
Viết trigger để khi xóa một PB thì các nhân viên và dự án của phòng ban đó cũng được xóa luôn.
a. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB = @MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
End
b. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB = @MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
c. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
IF EXISTS(SELECT * FROM NHANVIEN WHERE MaPB = @MaPhg)
DELETE FROM NHANVIEN WHERE MaPB = @MaPhg
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
d. CREATE TRIGGER XoaPB
ON PHONGBAN
AFTER Delete
AS
Begin
DECLARE @MaPhg nvarchar(9)
SELECT @MaPhg = MaPB FROM DELETED
IF EXISTS(SELECT * FROM DEAN WHERE MaPB = @MaPhg)
DELETE FROM DEAN WHERE MaPB = @MaPhg
End
Câu 81: Cho T-SQL block sau:
DECLARE @X INT = 100
WHILE (@x<= 108 )
IF @x = 102
break
ELSE
BEGIN
Insert into NHANVIEN(manv) values (@X)
SET @X=@X+1
END
Bao nhiêu dòng được thêm vào bảng Nhanvien khi thực thi block?
a. 7
b. 9
c. 0
d. 2
Câu 82: 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 OUTPUTASSELECT @SalesAmount = SUM(SalesAmount)FROM SalesInformationWHERE @SalesPersonID = SalesPersonIDLệnh nào sau đây sẽ thực thi đúng thủ tục trên?
a. EXECUTE GetSalesPersonData @SalesPersonID=1, @RegionID=1, @SalesAmount=0
b. EXECUTE GetSalesPersonData 1,1, @SalesAmount OUTPUT
c. EXECUTE GetSalesPersonData 1, 1, NULL
d. EXECUTE GetSalesPersonData @SalesPersonID = 1, @RegionID= 1, @SalesAmount= NULL
Câu 83: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là thủ tục để cho tên sản phẩm theo một xuất sứ nào đó với xuất sứ là tham số truyền vào
a. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sXuatSu = N’Đức’
END
b. CREATE PROC spTenSP(nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sXuatSu = @xs
END
c. CREATE PROC spTenSP(nvarchar @xs)
As
BEGIN
Select *
From tblSANPHAM
Where sXuatSu = @xs
END
d. CREATE PROC spTenSP
As
BEGIN
Declare nvarchar @xs
Select sTenSP
From tblSANPHAM
Where sXuatSu = @xs
END
Câu 84: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho danh sách tên sản phẩm đã được bán trong một tháng của một năm nào đó?
a. CREATE PROC spTenSP(int @m, int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
b. CREATE PROC spTenSP
As
BEGIN
Declare int @m, int @y
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y and A.sMaSP = B.sMaSP
END
c. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where A.sMaSP = B.sMaSP
END
d. CREATE PROC spTenSP(int @m, int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y
END
Phản hồi
Đáp án đúng là: CREATE PROC spTenSP(int @m, int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where month(dNgayLap) = @m and year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
Vì:
Tham khảo:
là:
Câu 85: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(float @a, nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia > @a and sXuatSu = @xs
END
a. Cho danh sách thông tin đầy đủ các sản phẩm có đơn giá lớn hơn một số @a và xuất sứ @xs từ một nước nào đó, với số @a và xuất sứ @xs là tham số truyền vào
b. Cho danh sách tên sản phẩm có đơn giá lớn hơn một số @a, với số @a là tham số truyền vào
c. Cho danh sách tên sản phẩm có xuất sứ @xs nào đó, với @xs là tham số truyền vào
d. Cho danh sách tên sản phẩm có đơn giá lớn hơn một số @a và xuất sứ từ một nước @xs nào đó, với số @a và xuất sứ @xs là tham số truyền vào
Câu 86: Cho CSDL quản lý bán sản phẩm gồm các bảng:
tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL, sQuequan)
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX)
tblKHACHHANG(sSdtKH, sTenKH)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Đâu là thủ tục để cho danh sách tên các Nhân viên đã KHÔNG tham gia bán hàng trong một ngày nào đó
a. CREATE PROC spTenNV
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON)
END
b. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
c. CREATE PROC spTenNV
As
BEGIN
Declare datetime @d
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
d. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV not in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
Câu 87: Cho CSDL quản lý bán sản phẩm gồm các bảng:
tblNHANVIEN(sMaNV, sHoten, sGioitinh, fHSL, sQuequan)
tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongiaban, sNhaSX)
tblKHACHHANG(sSdtKH, sTenKH)
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
tblCTHOADON (sMaHD, sMaSP, iSLM)
Đâu là thủ tục để cho danh sách tên các Nhân viên đã tham gia bán hàng trong một ngày nào đó
a. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV not in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
b. CREATE PROC spTenNV
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON)
END
c. CREATE PROC spTenNV
As
BEGIN
Declare datetime @d
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
d. CREATE PROC spTenNV(datetime @d)
As
BEGIN
Select sHoten
From tblNHANVIEN
Where sMaNV in (Select sMaNV from tblHOADON
Where dNgayLap = @d)
END
Câu 88: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho danh sách tên sản phẩm KHÔNG được bán trong một năm nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Declare int @y
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
b. CREATE PROC spTenSP(int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sMaSP not in (Select sMaSP from tblCTHOADON as A, tblHOADON as B
Where year(dNgayLap) = @y and A.sMaHD = B.sMaHD)
END
c. CREATE PROC spTenSP
As
BEGIN
Declare int @y
Select sTenSP
From tblSANPHAM
Where sMaSP not in (Select sMaSP from tblCTHOADON as A, tblHOADON as B
Where year(dNgayLap) = @y and A.sMaHD = B.sMaHD)
END
d. CREATE PROC spTenSP(int @y)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where year(dNgayLap) = @y and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
Câu 89: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho danh sách tên sản phẩm đã được bán trong một hóa đơn nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Declare varchar(9) @mhd
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where dNgayLap = @d and A.sMaSP = B.sMaSP
END
b. CREATE PROC spTenSP(varchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where tblHOADON.sMaHD = @mhd END
c. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where and A.sMaSP = B.sMaSP
END
d. CREATE PROC spTenSP(varchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
Câu 90: Câu lệnh sau thực hiện công việc gì?
DENY SELECT, INSERT, UPDATE
ON TacGia
TO db_user1, db_user2
a. Từ chối quyền được phép xoa – chọn và sửa trên bảng TacGia với tài khoản db_user1 và db_user2
b. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia với tài khoản db_user1 và db_user2
c. Từ chối quyền được phép chọn sửa trên bảng TacGia với tài khoản db_user1 và db_user2
d. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia với tất cả các tài khoản
Câu 91: Cho bảng tblNHANVIEN(maNV, HoTen, QueQuan, HSL).
Câu lệnh để phân quyền được phép xem (lấy)và chỉnh sửa dữ liệu trên cột (HoTen, QueQuan) của bảng tblNHANVIEN cho tài khoản “nguoidung1” là gì?
a. GRANT VIEW, UPDAE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
b. GRANT UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
c. GRANT SELECT, UPDATE
ON tblNHANVIEN
TO nguoidung1
d. GRANT SELECT, UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
Câu 92: Để xoá tài khoản đăng nhập “Test” đã có trong hệ thống thì sử dụng câu lệnh là gì?
a. DELETE Test
b. DELETE LOGIN Test
c. DROP ACCOUNT Test
d. DROP LOGIN Test
Câu 93: Câu lệnh để hủy bỏ tất cả các quyền trên CSDL đối với tài khoản db_user1
a. REVOKE Select, Insert, Delete
FROM db_user
b. REVOKE
FROM db_user
c. REVOKE ALL
d. REVOKE ALL
FROM db_user1
Câu 94: Câu lệnh để thực hiện “Hủy bỏ quyền xem và cập nhất dữ liệu trên cột ‘Luong’ của bảng nhân viên đối với tài khoản có tên là ‘db_user1’ ” được viết như thế nào?
a. REVOKE SELECT, UPDATE
ON NHANVIEN( Luong )
FROM db_user1
b. REVOKE SELECT
ON NHANVIEN( Luong )
FROM db_user1
c. REVOKE SELECT, UPDATE
ON NHANVIEN
FROM db_user1
d. REVOKE SELECT, UPDATE
ON NHANVIEN
Câu 95: Cho đoạn mã sau.
DECLARE
@V_BONUS INT,
BEGIN
SELECT @V_SALARY = luong
FROM nhanvien
WHERE manv = 1
set @V_BONUS = @V_SALARY * 0.1;
END
select @V_BONUS
Nguyên nhân đoạn mã gây ra lỗi:
a. Biến V_BONUS chưa khởi tạo.
b. Câu lệnh SELECT có bí danh
c. Thiếu phần EXCEPTION
d. Chưa khai báo biến @V_SALARY
Câu 96: Declare
@a int = 5,
@b int = null,
@c int = 10
Begin
if @a > @b AND @a < @c set @a=@c*@a
select @a
End
Giá trị của a sẽ là?
a. 5
b. 50
c. Tất cả các đáp án đều sai
d. Null
Câu 97: Điều gì làm cho vòng lặp WHILE ngừng lặp?
a. Câu lệnh EXIT luôn luôn được sử dụng để kết thúc vòng lặp.
b. Khi điều kiện được đánh giá là TRUE
c. Khi điều kiện được đánh giá là FALSE
d. Khi điều kiện được đánh giá là NULL
Câu 98: Mục đích của câu lệnh ALTER TRIGGER là gì?
a. Sửa một trigger đã có
b. Xóa một trigger đã có
c. Tạo một trigger mới
d. Tất cả các phương án đều đúng
Câu hỏi 4
Điểm 1,00 ngoài khoảng 1,00
Không gắn cờĐánh dấu để làm sau
Câu lệnh để thực hiện Cấp phát cho tài khoản ‘db_user1’ được quyền xem và cập nhật dữ liệu trên cột ‘hoten, diachi, và Luong của bảng nhân viên’ được viết như thế nào?
a. GRANT UPDATE
ON NHANVIEN( hoten, diachi, luong)
b. GRANT SELECT, UPDATE
ON NHANVIEN
TO db_user1
c. GRANT SELECT
ON NHANVIEN
TO db_user1
d. GRANT SELECT, UPDATE
ON NHANVIEN( hoten, diachi, luong)
TO db_user1
Câu 99: Câu lệnh nào được phép dùng trong khối lệnh T-SQL?
a. DROP TABLE
b. ALTER TABLE
c. DELETE
d. CREATE VIEW
Câu 100: Cho bảng PHANCONG(MADA, MANV, SoGio)
Đoạn mã tạo trigger cho phép nhập số giờ của nhân viên chỉ là từ 5 đến 10 khi thêm phân công nhân viên thực hiện dự án
a. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 and @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
b. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF Delete
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from DELETED
if (@tg<5 or @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
c. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if not (@tg<5 and @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
d. CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 or @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
Phản hồi
Đáp án đúng là:.
CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 or @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
Tham khảo: Slide bài giảng và tài liệu hướng dẫn học Bài 4 – phần Trigger
là:
Câu 101: Sự khác nhau cơ bản trong 2 trường hợp sau:
1. Sửa trigger bằng lệnh Alter trigger
2. Xóa trigger bằng lệnh drop trigger sau đó tạo lại bằng lệnh create trigger
a. Tất cả các phương án đều đúng
b. Khi dùng lệnh Alter trigger thì các quyền đã cấp phát cho trigger đó vẫn còn
c. Khi dùng lệnh Drop thì toàn bộ quyền cấp phát trên trigger bị mất và phải cấp phát lại
Câu 102: Cho CSDL “QLGV” với bảng tblNV phân mảnh dọc theo nguyên tắc sau:
-Server1 gồm các thông tin: MaNV, HoTen, GioiTinh
-Server2 gồm các thông tin: MaNV, DiaChi, DienThoai, Email
Câu lệnh còn thiếu để tạo view đầy đủ danh sách các GV lấy từ cả 2 server (view được viết trên Server2)
Create View DSNV
as
begin
Select tblNV.MaNV, Hoten, GioiTinh, DiaChi, DienThoai, Email
From tblNV, Server1.QLGV.dbo.tblNV
Where
…..
end
a. tblNV.MaNV = QLGV.dbo.tblNV.MaNV
b. tblNV.MaNV = Server1. tblNV.MaNV
c. MaNV = tblNV.MaNV
d. tblNV.MaNV = Server1.QLGV.dbo.tblNV.MaNV
Câu 103: Cho CSDL Quản lý nhân sự gồm các bảng:
NHANVIEN(MaNV, HoTen, HSL, PC, GioiTinh, MaPB)
PHONGBAN(MaPB, TenPB, DiaDiem)
Để tài khoản db_user1 được quyền lựa chọn – cập nhật trên thuộc tính HoTen, Hệ số lương của bảng NHANVIEN và trên thuộc tính tên phòng ban của bảng PHONGBAN thì câu lệnh phân quyền đầy đủ là gì?
a. REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN( TenPB )
FROM db_user1
b. REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
c. REVOKE SELECT, UPDATE
ON NHANVIEN
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN
FROM db_user1
d. REVOKE SELECT, UPDATE
ON PHONGBAN
FROM db_user1
Câu 104: Thay vì thực hiện truy vấn câu lệnh:
SELECT *
FROM Server2.QuanlyKH.dbo.KhachHang
Để thực hiện trong suốt dữ liệu với tên là “QLKH” thì câu lệnh đúng là gì?
a. Create synonym QLKH for QuanlyKH.dbo.KhachHang
Select * from QLKH
b. Create QLKH for Server2.QuanlyKH.dbo.KhachHang
Select * from QLKH
c. Create synonym QLKH for KhachHang
Select * from QLKH
d. Create synonym QLKH for Server2.QuanlyKH.dbo.KhachHang
Select * from QLKH
Câu 105: Một cột kiểu NCHAR(25) chiếm dung lượng là?
a. 100 byte
b. 50 byte
c. 2 byte
d. 25 byte
Câu 106: Phương pháp phân mảnh thực hiện: Chia quan hệ ban đầu R thành các mảnh (đoạn), mỗi mảnh chứa một số bộ giá trị của R thỏa mãn một tính chất nào đấy (điều kiện phân mảnh).
a. Phân mảnh hỗ hợp
b. Phân mảnh dọc
c. Không phải các phương pháp này
d. Phân mảnh ngang
Câu 107: Đặc điểm của trigger là gì?
a. Trigger có thể thực hiện nhiều công việc và được thực hiện bằng câu lệnh được gọi
b. Trigge chỉ có thể thực hiện một công việc và được thực hiện bằng câu lệnh được gọi
c. Trigger có thể thực hiện nhiều công việc và được thực hiện tự động thông qua sự kiện
d. Trigger chỉ có thể thực hiện một công việc và được thực hiện tự động thông qua sự kiện
Câu 108: Để liên kết đến server khác có những cách nào?
a. Sử dụng câu lệnh truy vấn
b. Tất cả các phương pháp đều đúng
c. Sử dụng câu lệnh truy vấn Thông qua của sổ Management Studio
Câu 109: Cho đoạn lệnh:
DECLARE
@V1 int
BEGIN
SELECT COUNT(*) FROM nhanvien
END
BEGIN
set @V1= @@ROWCount
END
Giá trị @V1 sẽ nhận là?
a. Tùy thuộc vào số lượng bản ghi của bảng Nhanvien
b. 1
c. NULL
d. 0
Câu 110: Câu hỏi 15
Câu trả lời không đúng
Điểm 0,00 ngoài khoảng 1,00
Không gắn cờĐánh dấu để làm sau
Cho các bảng
PHONGBAN ( MAPB, TENDV , MaTP, NgayBD, SoNV), NHANVIEN ( MANV, HOTen, NS, GT, HSL, DC, MAPB, NgayVL), DUAN ( MADA, TENDA, DIADIEM, NgBD, MAPB)
Viết trigger khi thay đổi mã cho một phòng thì các nhân viên và dự án thuộc phòng ban đó cũng phải thay đổi theo
a. CREATE TRIGGER UpdateMaPhong
ON PHONGBAN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaPhong )
BEGIN
DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from NHANVIEN Where MaPB= @MaPhgCu) )
UPDATE NHANVIEN SET MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
END
END
b. Tất cả các phương án đều đúng
c. CREATE TRIGGER UpdateMaPhong
ON PHONGBAN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaPhong )
BEGIN
DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from DUAN Where MaPB = @MaPhgCu) )
UPDATE DUAN set MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
END
END
d. CREATE TRIGGER UpdateMaPhong
ON PHONGBAN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaPhong )
BEGIN
DECLARE @MaPhgCu nvarchar(9), @MaPhgMoi nvarchar(9)
SELECT @MaPhgCu = MaPB FROM DELETED
SELECT @MaPhgMoi = MaPB FROM INSERTED
If ( EXISTS (select MaPB from NHANVIEN Where MaPB= @MaPhgCu) )
UPDATE NHANVIEN SET MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
If ( EXISTS (select MaPB from DUAN Where MaPB = @MaPhgCu) )
UPDATE DUAN set MaPB = @MaPhgMoi
WHERE MaPB = @MaPhgCu
END
END
Câu 111: Cho bảng tblNHANVIEN(maNV, HoTen, QueQuan, HSL).
Câu lệnh để phân quyền được phép xem (lấy) dữ liệu trên bảng tblNHANVIEN cho tài khoản “nguoidung1” là gì?
a. GRANT ALL
ON tblNHANVIEN
TO nguoidung1
b. GRANT SELECT
ON tblNHANVIEN
TO nguoidung1
c. GRANT VIEW
ON tblNHANVIEN
TO nguoidung1
d. GRANT ALL
ON tblNHANVIEN
TO public
Câu 112: Câu lệnh sau đây thực hiện gì
CREATE LOGIN test
WITH PASSWORD = ‘12345’ MUST_CHANGE
a. Cho phép tạo tài khoản người dùng là Test với mật khẩu là 12345 để đăng nhập hệ thống
b. Cho phép tạo một tài khoản login mới với tên là “test” và mật khẩu là “12345”. Yêu cầu lần đầu sau khi đăng nhập của tài khoản phải đổi mật khẩu. Tài khoản đăng nhập với quyền xác thực SQL Server
c. Cho phép tạo một tài khoản login mới với tên là “test” và mật khẩu là “12345” để đăng nhập hệ thống, tài khoản xác thực chế độ SQL Server
d. Cho phép tạo một tài khoản login mới với tên là “test” và mật khẩu là “12345”. Yêu cầu lần đầu sau khi đăng nhập phải đổi mật khẩu. Tài khoản đăng nhập với quyền xác thực Window
Câu 113: Câu lệnh để thực hiện Cấp phát cho tài khoản ‘db_user1’ được quyền xem và cập nhật dữ liệu trên cột ‘hoten, diachi, và Luong của bảng nhân viên’ được viết như thế nào?
a. GRANT SELECT, UPDATE
ON NHANVIEN
TO db_user1
b. GRANT SELECT
ON NHANVIEN
TO db_user1
c. GRANT SELECT, UPDATE
ON NHANVIEN( hoten, diachi, luong)
TO db_user1
d. GRANT UPDATE
ON NHANVIEN( hoten, diachi, luong)
Câu 114: Có mấy phương pháp thực hiện phân mảnh dữ liệu
a. 2
b. 4
c. 5
d. 3
Câu 115: Khảo sát thủ tục sau:Create procedure prcTemp@tmp int outputAsSelect @tmp=ytd_sales from titlesReturnHãy xác định lệnh SQL được dùng để hiển thị giá trị của biến đầu ra khi thủ tục này được gọi :
a. Declare @tmp int Exec prcTemp @tmp Print @tmp
b. Declare @temp intExec prcTemp @tmp=@temp outputPrint @temp
c. Exec prcTemp @tmp output Print @tmp
d. Declare @temp int Exec prcTemp @tmp=@tempPrint @temp
Câu 116: Kết quả của câu truy vấn sau là gì?
SELECT (25%5) ,(8%2.5)
a. 5 và 4.5
b. 0 và 0.5
c. 0 và 2
d. Câu lệnh gây ra lỗi.
Câu 117: Cho đoạn mã tạo trigger:
CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in (‘Nam’, N’Nữ’) )
Raiserror(‘Ban nhap sai Gioi tinh’,16,10)
END
Cho biết ý nghĩa của đoạn mã
a. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN chỉ nhập từ Nam hoặc Nữ, nếu nhập sai đươc ra thông báo “Bạn nhập sai Giới tính”
b. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN không được nhập giá trị “Nam” hoặc”Nữ”
c. Tạo trigger kiểm tra giới tính nhập vào cho bảng NHANVIEN
d. Tất cả các phương án đều đúng
Câu 118: Cho CSDL quản lý sản phẩm với bảng tblSANPHAM gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sTenSP
From tblSANPHAM
Where fDonGia between 50,000 and 70,000
a.
b.
c.
d. (Đ)
Câu 119: Cho đoạn lệnh:
declare @IX int =100
while (@IX <=110)
begin print @IX
if @IX=105 break
set @IX = @IX +1
END
Mấy dòng dữ liệu được in ra
a. 0
b. 6
c. 1
d. 5
Câu 120: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để tính tổng số tiền của tất cả các sản phẩm đang có
a. Select sum(iSoluong*fDonGia)
From tblSANPHAM
Group by sXuatSu
b. Select sum(iSoluong)
From tblSANPHAM
c. Select sum(iSoluong*fDonGia)
From tblSANPHAM
d. Select sXuatSu, sum(iSoluong)
From tblSANPHAM
Câu 121: Câu lệnh để cấp phát tất cả các quyền cho tất cả các tài khoản được viết như thế nào?
a. GRANT all
TO all accounts
b. GRANT all
TO accounts
c. GRANT all
TO public
d. Không có đáp án nào đúng
Câu 122: Để cấp quyền cho người dùng “Test” được quyền xem dữ liệu của Bảng “tblNhanVien” thì câu lệnh được sử dụng là gì?
a. SELECT
b. GRANT
c. INVOKE
d. DENY
Câu 123: Cho CSDL Quản lý nhân sự gồm các bảng:
NHANVIEN(MaNV, HoTen, HSL, PC, GioiTinh, MaPB)
PHONGBAN(MaPB, TenPB, DiaDiem)
Tài khoản “db_user1” được thực hiện câu lệnh nào sau khi đoạn mã sau được thực hiện:
REVOKE SELECT, UPDATE
ON NHANVIEN( HoTen, HSL )
FROM db_user1
REVOKE SELECT, UPDATE
ON PHONGBAN( TenPB )
FROM db_user1
a. Select HoTen, HSL, TenPB
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
Update NHANVIEN
Set PC = PC + 1
Where GioiTinh = N’Nữ”
b. Select HoTen, HSL, TenPB, GioiTinh
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
c. Delete from NHANVIEN
Where GioiTinh = N’Giới tính”
d. Select HoTen, HSL, TenPB
From NHANVIEN, PHONGBAN
Where NHANVIEN.MaPB = PHONGBAN.MaPB
Update NHANVIEN
Set HSL = HSL + 1
Where GioiTinh = N’Nữ”
Câu 124: Cho CSDL “QuanLyBH” được cài đặt tại ServerAo và ServerThat như sau:
*Tại ServerAo có chứa bảng tblNV2(MaNV, TrinhDo, ChuyenNganh, Nam)
*Tại ServerThat có bảng tblNV(MaNV, HoTen, NgaySinh)
Tại ServerThat câu lệnh truy vấn để cho danh sách đầy đủ thông tin gồm MaNV, HoTen, TrinhDo được viết như thế nào
a. Seclect tblNV.MaNV, HoTen, TrinhDo
From tblNV, QuanLyBH.tblNV2
Where tblNV.MaNV = QuanLyBH.tblNV2.MaNV
b. Seclect tblNV.MaNV, HoTen, TrinhDo
From tblNV, tblNV2
Where tblNV.MaNV = tblNV2.MaNV
c. Seclect MaNV, HoTen, TrinhDo
From tblNV, ServerAo.QuanLyBH.dbo.tblNV2
Where tblNV.MaNV = ServerAo.QuanLyBH.dbo.tblNV2.MaNV
d. Seclect tblNV.MaNV, HoTen, TrinhDo
From tblNV, ServerAo.QuanLyBH.dbo.tblNV2
Where tblNV.MaNV = ServerAo.QuanLyBH.dbo.tblNV2.MaNV
Câu 125: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM).
Đâu là thủ tục để cho danh sách tên các sản phẩm đã được mua hàng theo mã hóa đơn nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Declare nvarchar(9) @mhd
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
b. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblCTHOADON
Where sMaHD = @mhd
END
c. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
d. CREATE PROC spTenSP(nvarchar(9) @mhd)
As
BEGIN
Select sTenSP
From tblCTHOADON, tbSANPHAM
Where sMaHD = @mhd
END
Câu 126: @V_GRADE nhận giá trị ‘C’ thì @V_PRICE sẽ nhận giá trị thế nào?
IF @V_PRICE > 1000
Set @V_GRADE = ‘A’
ELSE
IF @V_PRICE > 900
Set @V_GRADE = ‘B’
ELSE
IF @V_PRICE > 800 Set
@V_GRADE = ‘C’
ELSE
IF @V_PRICE > 600 Set
@V_GRADE = ‘D’
ELSE Set
@V_GRADE = ‘E’
a. @V_PRICE lớn hơn 800
b. @V_PRICE trong khoảng 801 và 900 V_PRICE lớn hơn 1000
c. @V_PRICE lớn hơn 1000
d. @V_PRICE trong khoảng 601 và 800 V_PRICE lớn hơn 800
Câu 127: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đâu là thủ tục để cho biết tên các sản phẩm đã được mua hàng trong một ngày nào đó
a. CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
b. CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblHOADON as C
Where dNgayLap = @d
END
c. CREATE PROC spTenSP
As
BEGIN
Declare datetime @d
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
d. CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON
Where dNgayLap = @d and A.sMaSP = B.sMaSP
END
Câu 128: Xác định ý nghĩa thủ tục sau:CREATE PROC get_playername @sport_id varchar(10)ASSELECT player_lname, player_fnameFROM 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 vận động viên (player) mà có Id 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 không 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 các môn thể thao mà có Id không bằng với tham số đầu vào
Câu 129: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where fHSL<3.33
a.
b. (Đ)
c.
d.
Câu 130: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where sGioitinh = N’Nam’
a.
b.
c.
d. (Đ)
Câu 131: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where sGioitinh = N’Nữ’
a.
b. (Đ)
c.
d.
Câu 132: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để cho danh sách tên các sản phẩm có đơn giá trên 50000 và có xuất sứ ở Pháp
a. Select sTenSP
From tblSANPHAM
Where fDonGia > 50000
b. Select *
From tblSANPHAM
Where fDonGia > 50000 and sXuatSu = N’Pháp’
c. Select sTenSP
From tblSANPHAM
Where sXuatSu = N’Pháp’
d. Select sTenSP
From tblSANPHAM
Where fDonGia > 50000 and sXuatSu = N’Pháp’
Câu 133: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là câu truy vấn để tính tổng số lượng sản phẩm của từng nước theo xuất sứ
a. Select sXuatSu, iSoluong
From tblSANPHAM
b. Select sXuatSu, sum(iSoluong)
From tblSANPHAM
c. Select sum(iSoluong)
From tblSANPHAM
d. Select sXuatSu, sum(iSoluong)
From tblSANPHAM
Group by sXuatSu
Câu 134: Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where fHSL>3.33
a.
b. (Đ)
c.
d.
Câu 135: Cho CSDL quản lý sản phẩm với hai bảng blCTHOADON (sMaHD, sMaSP, iSLM) và tblSANPHAM(sMaSP, sTenSP, iSLBan, fDongia, sXuatSu).
Đâu là câu lệnh truy vấn để tính tổng số tiền hàng đã bán của từng sản phẩm theo tên Sản phẩm.
a. Select sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
Group by sMaHD
b. Select sTenSP, sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
c. Select sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Group by sTenSP
d. Select sTenSP, sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
Group by sTenSP
Câu 136: Cho CSDL quản lý sản phẩm với hai bảng blCTHOADON (sMaHD, sMaSP, iSLM) và tblSANPHAM(sMaSP, sTenSP, iSLBan, fDongia, sXuatSu).
Đâu là câu lệnh truy vấn để tính tổng số tiền hàng đã bán của từng hóa đơn
a. Select sMaHD, sum(iSLM *fDonGia)
From tblCTHOADON
Group by sMaHD
b. Select sum(iSLM*fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
c. Select sMaHD, sum(iSLM *fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
d. Select sMaHD, sum(iSLM*fDonGia)
From tblCTHOADON, tblSANPHAM
Where tblCTHOADON.sMaSP=tblSANPHAM.sMaSP
Group by sMaHD
Câu 137: Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Câu lệnh để có được bảng đầy đủ danh sách các nhân viên (cả nam và nữ) từ Server 2 là gì?
a. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
b. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
c. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.QLNV.dbo.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
d. Select MaNV, TenNV, GioiTinh, DiaChi
from
tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From Server2.QLNV.dbo.tblNhanvien
Câu trả lời không đúng
Câu 138: Kết quả của đoạn T-SQL sau sẽ như thế nào?
DECLARE
@X VARCHAR(10) = ‘TITL’,
@Y VARCHAR(10) = ‘TITLE’
BEGIN
IF @X >= @Y
print(‘X is greater’)
IF @Y >= @X
print(‘Y is greater’)
END
a. Không in ra gì cả
b. “X is greater”
c. Cả “X is greater” và “Y is greater”
d. “Y is greater”
Câu 139: Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Đoạn code để chèn thêm một nhân viên mới vào bảng (thủ tục được viết trên Server2)
a. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End Câu trả lời không đúng
b. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
c. Không có đáp án đúng
d. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.QLNNV.dbo.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
Câu 140: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(float @a, float @b)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
a. Cho danh sách các sản phẩm có đơn giá trên @b và dưới @b, với @a và @b là tham số truyền vào
b. Cho danh sách tên các sản phẩm
c. Cho danh sách tên sản phẩm có đơn giá trong khoảng từ @a đến @b với @a và @b là tham số truyền vào
d. Cho danh sách thông tin đầy đủ tất cả các sản phẩm có giá trong khoảng từ @a đến @b
Câu 141: Cho hai bảng
tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV, TongTien)
tblCTHOADON (sMaHD, sMaSP, iSL, fDG)
Để cho phép mỗi khi thêm một dòng mới vào bảng tblCTHOADON thì tổng tiền của HOADON được cập nhật theo thì viết trigger với lựa chọn biến cố nào?
a. Select
b. Delete
c. Update
d. Insert
Câu 142: Cho CSDL “QuanLyBH” được cài đặt tại ServerAo và ServerThat như sau:
*Tại ServerAo có chứa bảng tblNV(MaNV, HoTen, NgaySinh, TrinhDo, ChuyenNganh, Nam)
*Tại ServerThat có bảng tblNV(MaNV, HoTen, NgaySinh, TrinhDo, ChuyenNganh, Nam)
Tại ServerThat câu lệnh truy vấn để cho danh sách tất cả thông tin gồm (MaNV, HoTen, TrinhDo) được viết như thế nào?
a. Select MaNV, HoTen, TrinhDo
From tblNV
Union
Select MaNV, HoTen, TrinhDo
From ServerAo.tblNV
b. Select MaNV, HoTen, TrinhDo
From tblNV
Union
Select MaNV, HoTen, TrinhDo
From ServerAo.QuanLyBH.dbo.tblNV
c. Seclect *
From tblNV
Union
Seclect *
From ServerAo.tblNV
d. Seclect *
From tblNV
Union
Seclect *
From ServerAo.QuanLyBH.dbo.tblNV
Câu 143: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(nvarchar @xs)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where sXuatSu = @xs
END
a. Cho danh sách tên sản phẩm theo một xuất sứ nào đó với xuất sứ là tham số truyền vào
b. Cho danh sách thông tin đầy đủ các sản phẩm
c. Cho danh sách thông tin đầy đủ các sản phẩm theo một một xuất sứ nào đó với xuất sứ là tham số truyền vào
d. Cho danh sách tên các sản phẩm có xuất xứ nước ngoài
Câu 144: Xem xét thủ tục sau:
CREATE PROCEDURE INS_NV (@V_ID int, @V_NAME VARCHAR(20) = ‘NGUYEN’, @V_ADD VARCHAR(20))
AS
BEGIN
INSERT INTO Nhanvien (Manv, TenNV, Diachi)
VALUES (@v_id, @v_name, @v_ADD)
END
Để thực hiện đoạn thủ tục trên thì dùng lệnh?
a. EXECUTE INS_NV@V_ID = @V_NAME = ‘LONG’, V_ADD = ‘HAIPHONG’
b. Không lựa chọn nào đúng
c. EXECUTE INS_NV 3,’HA’,’HANOI’
d. EXECUTE INS_NV 3, ‘LONG’
Câu 145: Để thu hồi quyền được sửa của tài khoản người dùng Test với bảng tblNhanVien trên thuộc tính “QueQuan” và “HoTen” đã được cấp trước đó thì câu lệnh là gì?
a. REVOKE ALL
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
b. REVOKE SELECT, UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
c. GRANT UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO nguoidung1
d. REVOKE UPDATE
ON tblNHANVIEN(HoTen, QueQuan)
TO test
Câu 146: Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Đoạn code để chèn thêm một nhân viên mới vào bảng (thủ tục được viết trên Server2)
a. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
b. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into Server1.QLNNV.dbo.tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
c. Không có đáp án đúng
d. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30))
as
Begin
If @gioitinh = ‘Nam’
Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi)
Else
Insert Into tblNhanvien
Values(@ma,@ten,@gioitinh,@diachi)
print N’Thêm thành công’
End
Câu 147: Cho bảng tblCTHOADON (sMaHD, sMaSP, iSL, fDG, fThanhTien) và tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạn Trigger sau để thực hiện yêu cầu gì:
CREATE TRIGGER suaCTHD
ON tblCTHOADON
Instead of update
As
If update(iSL)
Begin
Declare int @sl, float @dg, nvarchar @soHD
Select @sl = iSL, @dg = fDG, @soHD = sMaHD
From insterted
Update tblHOADON
Set TongTien = TongTien + @sl * @dg
Where sMaHD = @soHD
End
a. Khi cập nhật giá trị tại cột đơn giá (fDG) của sản phẩm mua thì thành tiền tương ứng của mặt hàng đó trong Hóa đơn được tính toán lại tương ứng
b. Khi thêm một dòng mới vào bảng tblCTHOADON thì số tiền trong hóa đơn được cập nhật tương ứng
c. Khi cập nhật dữ liệu trong bảng tblCTHOASDON thì thành tiền tương ứng của mặt hàng đó được tính toán lại tương ứng
d. Khi cập nhật giá trị tại cột Số lượng (iSL) trong bảng tblCTHOADON thì thành tiền tương ứng của mặt hàng đó trong được tính toán lại tương ứng
Câu 148: Để tạo trigger phải xấc định những nội dung gì
a. Tất cả các nội dung được liệt kê
b. Lệnh nào sẽ kích hoạt trigger thực hiện
c. Tên và bảng chịu tác động
d. Trigger sẽ làm những thao tác gì khi được kích hoạt
Câu 149: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM), tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(datetime @d)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B, tblHOADON as C
Where dNgayLap = @d and A.sMaSP = B.sMaSP and B.sMaHD = C.sMaHD
END
a. Cho danh sách thông tin đầy đủ các sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
b. Cho biết tên sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
c. Cho biết tên sản phẩm đã được khách hàng thực hiện mua hàng
d. Cho danh sách tên các sản phẩm đã được khách hàng mua hàng trong một ngày nào đó, với ngày là tham số truyền vào
Câu 150: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu) và tblCTHOADON (sMaHD, sMaSP, iSLM).
Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(nvarchar @mhd)
As
BEGIN
Select sTenSP
From tblSANPHAM as A, tblCTHOADON as B
Where sMaHD = @mhd and A.sMaSP = B.sMaSP
END
Chọn một câu trả lời:
a. Cho danh sách tên các sản phẩm đã được khách hàng mua hàng trong một ngày nào đó
b. Cho biết tên sản phẩm đã được khách hàng thực hiện mua hàng
c. Cho biết tên sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
d. Cho danh sách thông tin đầy đủ các sản phẩm đã được mua hàng của một hóa đơn nào đó với mã hóa đơn là tham số truyền vào
Câu 151: Cho các bảng
LOP( malop, TenLop, NienKhoa, SiSo)
SINHVIEN ( MaSV, Hoten, NS, GT, maLop)
Viết trigger khi sưar một lớp nào đó thì các sinh viên thuộc lớp đó cũng sửa theo.
a. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
b. CREATE TRIGGER UpdateMaLop
ON SINHVIEN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
c. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
END
END
d. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
Câu 152: Cho máy thật có địa chỉ là 192.168.10.25. Để máy ảo kết nối phân tán được đến máy chủ thì địa chỉ máy áo phải là địa chỉ nào sau đây?
a. 192.168.11.25
b. 192.168.10.40
c. 192.169.10.25
d. 195.168.10.25
Câu 153: Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đâu là thủ tục để cho tên các sản phẩm có đơn giá trong một khoảng @a và @b nào đó?
a. CREATE PROC spTenSP
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between 30000 and 100000
END
b. CREATE PROC spTenSP(float @a)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia >@a
END
c. CREATE PROC spTenSP
As
BEGIN
Declare float @a, float @b
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
d. CREATE PROC spTenSP(float @a, float @b)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
Câu 154: Cú pháp để truy xuất đến một bảng của CSDL khác năm khác Server là:
a. [DatabaseName][.owner][.tableName] [.ServerName]
b. [ServerName][.tableName]
c. [ServerName][.DatabaseName][.owner][.tableName]
d. [ServerName][.owner][.tableName]
Câu 155: Ý nghĩa của đoạn mã sau là gì?
CREATE TRIGGER TG_PC
ON PHANCONG
INSTEAD OF insert
AS
BEGIN
declare @tg as float
SELECT @tg = SoGio from INSERTED
if (@tg<5 and @tg>10)
Raiserror(‘Thoi gian chi nhap tu 5 den 10’, 16,1)
END
a. Tất cả các phương án đều đúng
b. Tạo trigger khi nhập dữ liệu phân công có số giờ hoặc dưới 5 hoặc trên 10
c. Tạo trigger khi sửa phân công chỉ được nhận giá trị từ 5 đến 10
d. Đoạn mã tạo trigger cho phép nhập số giờ của nhân viên chỉ là từ 5 đến 10 khi thêm phân công nhân viên thực hiện dự án