You dont have javascript enabled! Please enable it! Hệ quản trị cơ sở dữ liệu - IT10 - EHOU - VNCOUNT

HỖ TRỢ!

Chúng tôi rất sẵn lòng để hỗ trợ bạn 100/100 điểm

Hệ quản trị cơ sở dữ liệu – IT10 – EHOU

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

Môn IT10 EHOU

20.00040.000

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

SKU: IT10
Danh mục:
Thẻ:

Ðú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

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Giỏ hàng
Lên đầu trang