---
# System prepended metadata

title: TRẮC NGHIỆM HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
tags: [KMA]

---

**INTRO**
Câu 1: Đâu không phải là hệ quản trị CSDL:
* A. Microsoft outlook
B. MySQL
C. PostgreSQL
D. DB2
Câu 2: Chức năng chính của một HQTCSDL là:
A. Cung cấp công cụ kiểm soát, điều khiển và truy cập vào CSDL
B. Cung cấp môi trường tạo lập và khai thác dữ liệu
C. Cũng cấp môi trường tạo lập dữ liệu
* D. Tất cả phương án trên
Câu 3: Phát biểu nào sau đây là *chưa chính xác*:
A. Trong hệ quản trị CSDL quan hệ, tính ACID của một Transaction được đảm bảo
B. Hệ quản trị CSDL quan hệ sử dụng ngôn ngữ truy vấn là SQL
C. Hệ quản trị CSDL dùng để tạo lập, cập nhật, khai thác cơ sở dữ liệu quan hệ gọi là 
Hệ quản trị CSDL quan hệ
* D. Hệ quản trị CSDL quan hệ bao gồm: SQL Server, MySQL, MongoDB,…
Câu 4: RDBMS là viết tắt của …?
* A. Relational Database management System
B. Real Database Management System
C. Read Database Master System
Câu 5: Phiên bản đầu tiên của Microsoft SQL Server
* A. 1989
B. 1990
C. 1991
D. 1988
Câu 6: Từ phiên bản bao nhiêu của Microsoft SQL Server đánh dấu lần đầu tiên nó hiện 
diện chính thức cho Linux
* A. SQL Server 2017
B. SQL Server 2016
C. SQL Server 2015
D. Chưa bao giờ Microsoft SQL Server được viết cho Linux
Câu 7: Giả sử dữ liệu được lưu trữ ở nhiều nơi như trong: Oracle, SQL Server, DB2, 
Microsoft Access, … cho phép di chuyển dữ liệu giữa các server này, không chỉ thế còn 
có thể định dạng (format) nó trước khi lưu vào database khác. Trong dấu … là:
* A. Integration Services
B. Reporting Services
C. Analysis Services
D. DataBase Engine
Câu 8: Có mấy cơ sở dữ liệu hệ thống trong SQL Server
A. 3
B. 2
C. 5
* D. 4
Câu 9: SQL là từ viết tắt của từ nào dưới đây:
A. Structred Question Language
* B. Structured Query Language
C. Strong Query Language
D. Strong Question Language
Câu 10: Ngôn ngữ nào được dùng riêng cho SQL Server:
* A. T – SQL
B. SQL
C. PL/SQL
Câu 11: Ngôn ngữ nào được dùng riêng cho Oracle
A. T – SQL
* B. PL/SQL
C. SQL
Câu 12: Ngôn ngữ định nghĩa dữ liệu bao gồm các lệnh:
A. Create, Alter, Delete
* B. Create, Alter, Drop
C. Create, Select, Drop
D. Create, Alter, Drop, Delete
Câu 13: Phát biểu nào sau đây là *chưa chính xác*:
A. Trong các câu lệnh T – SQL có thể thêm các ký hiệu đặc biệt như +, *, …
B. Câu lệnh T – SQL có thể kết thúc bằng dấu chấm phẩy hoặc không
C. Các câu lệnh T – SQL có thể trải trên nhiều dòng
* D. Các câu lệnh T – SQL phân biệt viết hoa, viết thường
Câu 14: Phát biểu nào sau đây là chính xác nhất khi nói về kiểu dữ liệu trong SQL
* A. Nchar là kiểu ký tự, có hỗ trợ Unicode nên viết được tiếng Việt. Bộ nhớ cấp phát 
tĩnh
B. Nvarchar là kiểu ký tự, không hỗ trợ Unicode. Bộ nhớ cấp phát động
C. Varchar là kiểu ký tự, không hỗ trợ Unicode. Bộ nhớ cấp phát tĩnh
Câu 15: Một database trong SQL Server được lưu trữ dưới dạng
* A. Tệp tin lưu trữ dữ liệu chính (*.mdf) chứa các dữ liệu khởi đầu, các tập tin dữ liệu 
thứ cấp (*.ndf), tập tin chứa nhật ký thao tác (*.ldf)
B. Tập tin lưu trữ dữ liệu chính (*.mdf) và tập tin chứa nhật ký thao tác (*.ldf)
C. Tập tin dữ liệu thứ cấp (*.ndf) và tập tin chứa nhật ký thao tác (*.ldf)
D. Tập tin lưu trữ dữ liệu chính (*.mdf) và các tập tin dữ liệu thứ cấp (*.ndf)
Câu 16: Câu lệnh nào trong SQL Server dùng để xoá hoàn toàn một cơ sở dữ liệu
*A. Drop
B. Remove
C. Delete
Câu 17: Lựa chọn phương án chính xác nhất:
A. Khi thực hiện lệnh CREATE TABLE cũng là lúc dữ liệu được đưa vào bảng
* B. Khi thực hiện lệnh CREATE TABLE cũng là lúc tên bảng được đặt
C. Lệnh CREATE TABLE dùng để tạo một cơ sở dữ liệu mới
D. Lệnh CREATE TABLE có thể tạo cùng một lúc một hoặc nhiều bảng
Câu 18: Câu lệnh dùng để chèn dữ liệu vào bảng:
A. ADD
* B. INSERT INTO
C. INSERT
D. ADD INTO
Câu 19: Cho bảng Sinhvien (MaSV, HotenSV, Ngaysinh, Quequan, Gioitinh, Lop). Cho 
biết lệnh xoá toàn bộ dữ liệu trong bảng sinh viên
A. INSERT INTO Sinhvien
* B. DELETE FROM Sinhvien
C. DROP TABLE Sinhvien
D. UPDATE Sinhvien SET MaSV = Null
Câu 20: Câu lệnh UPDATE Sinhvien SET Lop = ‘AT17A’ WHERE MaSV = ‘AT170101’ 
thực hiện công việc:
* A. Sửa thông tin lớp của sinh viên có mã là AT170101 thành AT17A
B. Thêm vào lớp AT17A một sinh viên có mã là AT170101
C. Sửa thông tin của sinh viên có mã là AT170101 học lớp AT17A
D. Thêm một sinh viên có mã là AT170101 và học lớp AT17A vào bảng Sinh viên
Câu 21: Loại ràng buộc nào không có ở mức bảng:
A. UNIQUE
B. PRIMARY KEY
C. FOREIGN KEY
* D. NOT NULL
Câu 22: Phát biểu nào sau đây là đúng khi nói về các loại ràng buộc toàn vẹn
A. Ràng buộc CHECK dùng để giới hạn hay kiểm soát giá trị được phép chèn vào một 
hàng
B. Ràng buộc NOT NULL sử dụng để đảm bảo dữ liệu của cột không được nhận giá 
trị bằng 0
* C. Nếu một cột được chọn là UNIQUE thì giá trị của bản ghi trong cột đó vẫn có thể
nhận giá trị NULL
D. Nếu khi tạo, chúng ta không đặt tên cho ràng buộc thì cũng sẽ không thể xoá được 
ràng buộc đó.
Câu 23: Loại ràng buộc nào dùng để tạo tham chiếu giữa các bảng trong một cơ sở dữ liệu
* A. FOREIGN KEY
B. DEFAULT
C. UNIQUE
D. PRIMARY KEY
Câu 24: Phát biểu nào sau đây là *chưa chính xác* khi nói về ràng buộc toàn vẹn (RBTV)
A. Khi tạo RBTV, không bắt buộc phải đặt tên cho ràng buộc đó
B. RBTV giúp ngăn chặn dữ liệu không hợp lệ và chỉ cho phép dữ liệu hợp lệ được lưu 
vào database
* C. RBTV là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan 
trong CSDL đều phải thoả mãn ở một số thời điểm
D. RBTV có thể chia làm 2 loại: Ràng buộc ở mức cột và ràng buộc ở mức bảng
Câu 25: Nếu có khai báo IDENTITY(1,100) thì có nghĩa là:
A. Giá trị của cột có thuộc tính IDENTITY sẽ bắt đầu từ 100 và sau mỗi lần tăng 1
* B. Giá trị của cột có thuộc tính IDENTITY sẽ bắt đầu từ 1 và sau mỗi lần tăng 100
C. Giá trị của cột có thuộc tính IDENTITY sẽ bắt đầu từ 1 và kết thúc là 100
D. Giá trị của cột có thuộc tính IDENTITY sẽ bắt đầu từ 100 và giảm dần cho đến 1
Câu 26: Giả sử bảng Sinh viên có 11 bản ghi. Lệnh ‘Select TOP 40 PERCENT * from 
Sinhvien trả ra bao nhiêu bản ghi.
A. 3
* B. 5
C. 4
D. 4.4
Câu 27: Câu lệnh Select nằm trong nhóm
* A. DML
B. DDL
C. DCL
Câu 28: Hàm nào dưới đây không phải là hàm tập hợp trong T – SQL
* A. LEN
B. AVG
C. COUNT
D. MAX
Câu 29: Mệnh đề GROUP BY … HAVING dùng để:
A. Phân hoạch các bộ của một quan hệ thành các nhóm riêng biệt
* B. Phân hoạch các bộ của một quan hệ thành các nhóm riêng biệt và áp dụng các phép 
toán gộp nhóm
C. Tách các quan hệ thành các quan hệ con mà không tổn thất thông tin
D. Áp dụng các phép toán gộp nhóm
Câu 30: Trong T – SQL mệnh đề nào được dùng để lấy ra 
* A. BETWEEN … AND
B. BETWEEN … TO
Câu 31: Mệnh đề nào dùng để sắp xếp dữ liệu trong T – SQL 
A. SORT
B. ORDER
* C. ORDER BY
D. SORT BY
Câu 32: Trong T – SQL, mệnh đề nào được sử dụng để tìm kiếm giá trị theo mẫu nhất 
định?
A. GET
B. HAVING
C. ORDER BY
* D. LIKE
Câu 33: Trong một phát biểu SELECT, người ta thấy có mệnh đề WHERE TenBD LIKE 
N‘Lê%’. Họ tên nào sau đây có trong kết quả.
A. Hoàng Thị Lê
* B. Lê Hoàng Mai Phương
C. Nguyễn
D. Nguyễn
Câu 34: Phát biểu nào sau đây là đúng khi nói về hàm COUNT (cột) trong SQL Server:
* A. Nó trả về số các dòng bỏ qua các dòng mà cột được chọn có chứa giá trị null
B. Nó trả về các bản ghi trong bảng được truy vấn
C. Nó trả về số các dòng kể cả dòng có chứa giá trị null
D. Nó trả về số các dòng khác nhau
Câu 35: Khi muốn lấy n bản ghi đầu tiên từ cơ sở dữ liệu, người ta sử dụng từ khoá
A. PERCENT
B. LIKE
C. DISTINCT
* D. TOP
Câu 36: Phát biểu nào sau đây *chưa chính xác* khi nói về truy vấn con trong SQL:
* A. Khi truy vấn con nằm trong mệnh đề FROM, không bắt buộc cần đặt tên cho truy 
vấn con đó
B. Truy vấn con có thể nằm trong mệnh đề SELECT, FROM, WHERE
C. Khi người ta muốn sử dụng kết quả của một câu truy vấn này làm bước đệm để thực 
hiện một câu truy vấn khác, thì khi đó có thể sử dụng truy vấn con
D. Một truy vấn con có thể được lồng trong một truy vấn con khác. SQL Server hỗ trợ
tối đa 32 cấp độ lồng nhau
Câu 37: Lựa chọn phương án chính xác nhất:
A. UNION sẽ loại bỏ những kết quả trùng lắp của hai bảng. Dữ liệu được sắp xếp theo 
thứ tự
* B. Tất cả các phương án đều chính xác
C. UNION hay UNION ALL đều dùng để ghép nối các kết quả của hai hay nhiều câu 
lệnh SELECT lại với nhau thành một tập kết quả duy nhất
D. UNION ALL sẽ không loại bỏ những kết quả trùng lắp của hai bảng. Dữ liệu không 
được sắp xếp theo thứ tự
Câu 38: Lựa chọn phương án chính xác nhất:
A. Nếu cho A INTERSECT B thì kết quả sẽ là những cái mà A có và B không có
B. Nếu cho A EXCEPT B thì kết quả sẽ là sự trùng khớp của A và B
C. Nếu cho A UNION B thì kết quả sẽ là những cái chung của A và B
* D. Tất cả các phương án trên đều sai
Câu 39: Phát biểu nào sau đây *chưa thực sự chính xác*:
A. CROSS JOIN dùng để kết nối các bảng nhưng không có điều kiện kết nối
B. Có thể dùng LEFT JOIN và RIGHT JOIN thay thế cho nhau
C. SELF JOIN là phép kết nối với chính nó, sử dụng khi muốn trích xuất những dòng 
dữ liệu có mối quan hệ hoặc tương tự với các dòng dữ liệu khác trong cùng một 
bảng
* D. Về mặt bản chất thì INNER JOIN giống với WHERE nhưng WHERE tường minh 
hơn INNER JOIN
Câu 40: Khi làm việc với truy vấn con, cần lưu ý:
A. Truy vấn con có thể nằm trong cặp dấu ngoặc đơn hoặc không
* B. Sử dụng các toán tử một dòng với các truy vấn con trả về một dòng và sử dụng các 
toán tử nhiều dòng với các truy vấn con trả về nhiều dòng
C. Truy vấn con có thể bao quanh trực tiếp bởi một hàm tập hợp như SUM, COUNT,…
D. Truy vấn con phải nằm bên trái điều kiện so sánh
Câu 41: Trong CSDL QLSV gồm có 
Sinhvien (MaSV, HotenSV, Gioitinh, Quequan, Ngaysinh). 
Monhoc (MaMH, TenMH, DVHP).
Ketqua (MaSV, MaMH, Diem).
1. Viết câu truy vấn đưa ra danh sách MaSV của các sinh viên *chưa thi môn nào*:
* Select * from Ketqua where MaSV not in (select distinct MaSV from Ketqua)
2. Viết truy vấn đưa ra thông tin các sinh viên đã thi cả 2 môn tên là Toán cao cấp và 
vật lý đại cương
* SELECT SV.MaSV, SV.HotenSV
FROM Sinhvien SV
WHERE SV.MaSV IN (
    SELECT KQ.MaSV
    FROM Ketqua KQ
    WHERE KQ.MaMH = N'Toán cao cấp'
    
    INTERSECT
    
    SELECT KQ.MaSV
    FROM Ketqua KQ
    WHERE KQ.MaMH = N'Vật lý đại cương'
);

Câu 42: Nhược điểm của View là:
A. Tất cả phương án đều đúng
* B. Dữ liệu bị phụ thuộc vào bảng gốc
C. Gây khó khăn cho người dùng truy vấn dữ liệu từ các bảng khác nhau
D. Hạn...
Câu 43: Để có thể insert dữ liệu vào view, một trong những điều kiện cần đó là:
A. Không thể insert dữ liệu vào trong View trong bất cứ trường hợp nào
* B. View được tạo ra phải chứa tất cả các cột Not null của bảng chính
C. View...
D. View...
Câu 44: View là:
* A. Bảng ảo, có nội dung được định nghĩa thông qua một câu lệnh SELECT
B. Bảng ảo, có nội dung được định nghĩa thông qua một câu lệnh INSERT
C. Bảng ảo, có nội dung được định nghĩa thông qua một câu lệnh INSERT và bên trong
D. Bảng
Câu 45: Khi tạo View, mục đích của WITH CHECK OPTION là:
A. Bảo đảm rằng tất cả DELETE thoả mãn điều kiện định nghĩa trong VIEW
B. Bảo đảm rằng tất cả UPDATE và INSERT không thoả mãn các điều kiện trong định 
nghĩa VIEW
* C. Bảo đảm rằng tất cả UPDATE và INSERT thoả mãn các điều kiện trong định 
D. Bảo đảm...
Câu 46: Phát biểu nào sau đây là *chưa chính xác*: 
A. Dùng View giúp bảo mật dữ liệu
* B. Dữ liệu sau khi đã tạo VIEW không phụ thuộc vào TABLE gốc
C. Dữ liệu trong VIEW chỉ để đọc
D. VIEW...
Câu 47: Phát biểu nào sau đây là *chưa chính xác*:
A. Hàm sau khi được tạo vẫn có thể sửa hoặc xoá
* B. Hàm luôn phải có tham số truyền vào
C. Hàm tương tự như thủ tục nhưng hàm có giá trị trả về
D. Hàm có hàm do người dùng tự định nghĩa và hàm hệ thống
Câu 48: Biến hệ thống:
* A. Tất cả các phương án đều đúng
B. Là biến được khai báo bắt đầu bằng @@
C. Là biến cung cấp thông tin của hệ thống
D. Là biến do hệ thống định nghĩa
Câu 49: Giả sử đã có một thủ tục lưu trữ tên là “DiemsoSV”. Muốn gọi thủ tục đó với 
tham số truyền vào là “AT17A” thì phải gọi theo cú pháp:
* A. DiemsoSV ‘AT17A’
B. Select‘DiemsoSV’, ‘AT17A’
C. Select * from DiemsoSV where lop = ‘AT17A’
Câu 50: Cú pháp câu lệnh khai báo biến là:
A. @<tên biến><kiểu dữ liệu>
* B. declare@<tên biến><kiểu dữ liệu>
C. var@<tên biến><kiểu dữ liệu>
D. var<tên biến><kiểu dữ liệu>
Câu 51: Viết hàm đưa ra ngày hiện tại của hệ thống:
*CREATE FUNCTION LayNgayHienTai()
RETURNS DATE
AS
BEGIN
    RETURN CAST(GETDATE() AS DATE);
END;
Câu 52: Giả sử đã có một hàm có tên là “DiemsoSV”. Muốn hàm đó với tham số truyền 
vào là “AT17A” thì phải gọi theo cú pháp:
A. ‘DiemsoSV’, ‘AT17A’
B. DiemsoSV‘AT17A’
* C. Select * from DiemsoSV (‘AT17A’)
D. Select * from DiemsoSV where lop = ‘AT17A’
Câu 53:
Câu 54: Phát biểu nào sau đây là *chưa chính xác*:
A. Bên trong thủ tục có thể sử dụng các biến như trong ngôn ngữ lập trình
B. Khi gọi thủ tục lưu trữ, thứ tự các đối số có thể không cần tuân theo thứ tự của các 
tham số như khi định nghĩa nhưng phải chỉ ra rõ ràng @tên_tham_số = giá_trị
* C. Các câu lệnh trong thủ tục phải nằm giữa cặp từ khóa BEGIN…END
D. Trong một thủ tục lưu trữ có thể truyền nhiều tham số
**GIỮA KỲ**
Câu 1: Chọn câu đúng?
A. Truy vấn con có thể nằm trong cặp dấu ngoặc đơn hoặc không
* B. Sử dụng các toán tử một dòng với các truy vấn con trả về một dòng và sử dụng các 
toán tử nhiều dòng với các truy vấn con trả về nhiều dòng
C. Truy vấn con có thể bao quanh trực tiếp bởi một hàm tập hợp như SUM, COUNT,…
D. Truy vấn con phải nằm bên trái điều kiện so sánh
Câu 2: Bảng Hanghoa có các thuộc tính sau: maHang, tenHang, dongia, soluong. Câu lệnh 
nào dùng để chèn dữ liệu vào bảng Hanghoa?
A. Insert into Hanghoa values (‘KDR’, N‘Kem đánh răng’, 100).
* B. Insert into Hanghoa (maHang, tenHang, dongia, soluong) values (‘KDR’, N‘Kem đánh 
răng’,50, 100).
C. Save into Hanghoa (maHang, tenHang, dongia, soluong) values (‘KDR’, N‘Kem 
đánh răng’,50, 100).
D. Save Hanghoa values (‘KDR’, N‘Kem đánh răng’,50, 100).
Câu 3: Các cơ sở dữ liệu hệ thống trong SQL Server gồm:
A. Master, Temp, Modeldb, Msdb.
B. Master, Temp, Model
C. Master, Temp, Msdb
* D. Master, Temp, Model, Msdb.
Câu 4: Câu lệnh “UPDATE Sinhvien SET gioitinh = ‘Nam’, Quequan = N‘Hà Nội’ 
WHERE masv = ‘AT080101’ dùng để:
* A. Sửa thông tin sinh viên có mã là AT080101 thành có giới tính là Nam và quê ở Hà 
Nội
B. Thêm tất cả các sinh viên là nam quê ở Hà Nội vào bảng Sinh viên
C. Thêm một số sinh viên nam có mã là AT080101, quê ở Hà Nội vào bảng Sinh viên
D. Sửa thông tin sinh viên nam, quê ở Hà Nội thành có mã sinh viên là AT080101
Câu 5: Cho bảng Nhà cung cấp và bảng Cung cấp như sau: NCC(maNCC, tenNCC, …) 
và CC(maNCC, maHang, soluong, dongia). Câu truy vấn nào dùng để đưa ra thông tin các 
nhà cung cấp đã cung cấp hàng hoá có tổng số tiền từ 5000 trở lên?
A. Select maNCC, tenNCC, maHang from NCC, CC where NCC.maNCC = 
CC.maNCC and sum(soluong*dongia) <= 5000 group by maNCC, tenNCC
* B. Select maNCC, tenNCC from NCC, CC where NCC.maNCC = CCmaNCC and 
sum(soluong*dongia) >= 5000 group by maNCC, tenNCC
C. Select maNCC, tenNCC, maHang from NCC, CC where NCC.maNCC = 
CCmaNCC and sum(soluong*dongia) => 5000 group by maNCC, tenNCC, 
maHang
D. Select maNCC, tenNCC from NCC, CC where NCC.maNCC = CCmaNCC and 
count(soluong*dongia) > = 5000 group by maNCC, tenNCC
Câu 6: Giả sử trong bảng Sinh viên có một cột đã được khai báo là “Gioitinh nvarchar(20)”. 
Vậy sau khi tạo xong bảng Sinh viên, làm thế nào để thêm ràng buộc mặc định là “Chưa 
xác định” vào cột Gioitinh đó?
A. Alter table Sinhvien add Gioitinh nvarchar(10) defatult N‘Chưa xác định’
* B. Alter table Sinhvien add constraint Def_SV defatult N‘Chưa xác định’ for Gioitinh
C. Alter table Sinhvien add column Gioitinh nvarchar(10) defatult N‘Chưa xác định’
D. Alter table Sinhvien add Gioitinh Def_SV defatult N‘Chưa xác định’
Câu 7: Trong các phát biểu sau, phát biểu nào sai khi nói về index:
* A. Trong một table, có thể tạo nhiều Clustered index và một Nonclustered index
B. Trong một table, chỉ có thể tạo một Clustered index và nhiều Nonclustered index
C. Một chỉ mục được tự động tạo trên cột làm khoá chính khi thực hiện lệnh tạo table
D. Có hai loại chỉ mục là Clustered index và Nonclustered index
Câu 8: Khi muốn lấy n bản ghi đầu tiên từ cơ sở dữ liệu, người ta sử dụng từ khoá:
A. LIKE
B. PERCENT
C. DISTINCT
* D. TOP
Câu 9: Trong một phát biểu SELECT, người ta thấy có mệnh đề “WHERE HotenBD LIKE 
N‘LÊ%’. Họ tên nào sau đây có trong kết quả:
A. Hoàng Lan Mai Duyên
B. Nguyễn Lê Hoàng Anh
* C. Lê Vũ Nguyên Hương
D. Nguyễn Lê Tùng Anh
Câu 10: Phát biểu nào sau đây là *chưa chính xác*:
A. Dùng VIEW giúp bảo mật dữ liệu
B. Dữ liệu sau khi đã tạo VIEW không phụ thuộc vào TABLE gốc
C. Dữ liệu trong VIEW chỉ để đọc
D. VIEW giúp đơn giản hoá các thao tác truy vấn dữ liệu
Câu 11: Lựa chọn phương án chính xác nhất?
A. Khi chạy lệnh DELETE thì SQL sẽ log lại từng dòng đã xoá vào transaction log, vì 
thế nên khi tạo 1 record mới giá trị của id sẽ không bắt đầu từ 1 mà sẽ có giá trị n + 
1 với n là giá trị của record cuối cùng được tạo
* B. Cả 3 phương án đều chính xác
C. Khi chạy lệnh TRUNCATE thì SQL sẽ xoá hết dữ liệu của bảng và reset transaction 
log, vì thế khi tạo 1 record mới, giá trị của id sẽ bắt đầu từ 1
D. Chúng ta dùng TRUNCATE cho bảng chứ không thể dùng cho từng record.
Câu 12: Giả sử có bảng DuAn(MaDA, tenDA, diadiemDA, maDV). Tạo hàm cho biết 
danh sách dự án mà một đơn vị nào đó đang quản lý với tham số đầu vào là mã đơn vị quản 
lý (maDV)?
A. Create function DSDA (maDA char(10) return table as returns (select * from DUAN 
where maDV = @maDV)
B. Create function DSDA (@maDA char(10) returns int as return (select * from DUAN 
where maDV = @maDV)
* C. Create function DSDA (@maDA char(10) returns table as return (select * from 
DUAN where maDV = @maDV)
D. Create function DSDA (@maDA char(10) return table as returns (select * from 
DUAN where maDV = @maDV)
Câu 13: Phát biểu nào sau đây là chính xác:
A. Dữ liệu bị xoá bởi DELETE hay TRUNCATE đều có thể phục hồi được
B. DELETE, DROP và TRUNCATE đều dùng để xoá dữ liệu theo dòng hoặc cả bảng
C. DELETE chỉ có thể xoá một vài record trong bảng
* D. Khi cần xoá một bảng lớn với nhiều record nên sử dụng TRUNCATE thay vì 
DELETE
Câu 14: Giả sử bảng ‘Sinhvien’ có 15 bản ghi. Vậy câu lệnh ‘select top 30 percent * from 
Sinhvien’ sẽ cho ra kết quả là mấy bản ghi?
A. 6 bản ghi
* B. 5 bản ghi
C. 4 bản ghi
D. 4.5 bản ghi
Câu 15: Mệnh đề GROUP BY … HAVING dùng để:
A. Phân hoạch các bộ của một quan hệ thành các nhóm riêng biệt
B. Áp dụng các phép toán gộp nhóm
C. Tác các quan hệ thành các quan hệ con mà không tổn thất thông tin
* D. Phân hoạch các bộ của một quan hệ thành các nhóm riêng biệt và áp dụng các phép 
toán gộp nhóm
Câu 16: Câu lệnh T – SQL nào sau đây viết đúng cú pháp?
A. Select * from Table where Column = = 10
* . Select * from Table where Column >= 5 and Column <= 10
C. Select * from Table where Column between 5 to 10
D. Select * from Table where Column >= 10
Câu 17: Giả sử dữ liệu được lưu trữ ở nhiều nơi khác nhau như trong: Oracle, SQL Server, 
DB2, Microsoft Access, … cho phép di chuyển dữ liệu giữa các server này, không chỉ thế
còn có thể định dạng (format) nó trước khi lưu vào database khác. Trong dấu … là:
A. Reporting Services
B. Analysis Serverces
* C. Integration Serverces
D. Database Engine
Câu 18: Câu lệnh sau: “CREATE VIEW Diemthi AS SELECT SV.MaSV, MaMH, Diem 
FROM Sinhvien SV, Ketqua KQ WHERE SV.MaSV = KQ.MaSV” trả ra kết quả là:
A. Câu lệnh tạo một View hiển thị Danh sách sinh viên đã thi tất cả các môn
B. Câu lệnh tạo một View hiển thị Danh sách sinh viên *chưa thi môn nào*
C. Câu lệnh không thể thực hiện được
* D. Câu lệnh tạo ra một View hiển thị Danh sách sinh viên đã thi ít nhất là một môn
Câu 19: Giả sử đã có một hàm có tên là ‘DiemsoSV’. Muốn gọi hàm đó với tham số truyền 
vào là ‘AT17A’ thì phải gọi theo cú pháp:
* A. Select * from DiemsoSV (‘AT17A’)
B. ‘DiemsoSV’, ‘AT17A’
C. Select * from DiemsoSV where lop = ‘AT17A’
D. DiemsoSV ‘AT17A’
Câu 20: Muốn xem toàn bộ dữ liệu trong bảng Detai cần thực hiện:
A. Select from Detai
B. Sp_help Detai
C. Help Detai
* D. Select * from Detai
Câu 21: Muốn thêm cột Email vào bảng Bandoc cần thực hiện?
A. Alter table Bandoc add column Email int(20)
B. Alter table Bandoc add Email int(20)
C. Alter table Bandoc add column Email varchar(30)
* D. Alter table Bandoc add Email varchar(30)
Câu 22: Trong cơ sở dữ liệu “Quản lý máy bay” có bảng Chuyenbay (maCB, gadi, gaden, 
khoangcach,…) và bảng Maybay (MaMB, tenMB, tamxa). Tạo thủ tục cho biết thông tin 
các máy bay có thể thực hiện được chuyến bay có mã nhập vào từ bàn phím.
A. Create proc DSMB (@maCB varchar(10)) as select maMB, tenMB from Chuyenbay, 
Maybay where tamxa <= khoangcach and maCB = @maCB
B. Create proc DSMB (@maCB varchar(10)) as select maMB, tenMB from Chuyenbay, 
Maybay where tamxa >= khoangcach and tamxa = @maCB
C. Create proc DSMB (@maCB varchar(10)) as select maMB, tenMB from Chuyenbay, 
Maybay where tamxa >= khoangcach and @maCB = maCB
* D. Create proc DSMB (@maCB varchar(10)) as select maMB, tenMB from Chuyenbay, 
Maybay where tamxa >= khoangcach and maCB = @maCB
Câu 23: Muốn lấy ra 40% số bản ghi đầu tiên trong bảng Đơn vị, cần thực hiện:
A. Select 40 percent * from Donvi
B. Select percent 40 from Donvi
C. Select top 40 from Donvi
* D. Select top 40 percent * from Donvi
Câu 24: Tìm câu lệnh T – SQL được viết đúng cú pháp:
A. Select SV.maSV, hotenSV, count(maMH) from Sinhvien SV, Ketqua KQ order by 
SV.maSV, hotenSV where SV.maSV = KQ.maSV
B. Select SV.maSV, hotenSV, count(maMH) from Sinhvien SV, Ketqua KQ where 
SV.maSV = KQ.maSV order by SV.maSV, hotenSV 
* C. Select SV.maSV, hotenSV, count(maMH) from Sinhvien SV, Ketqua KQ where 
SV.maSV = KQ.maSV group by SV.maSV, hotenSV 
D. Select SV.maSV, hotenSV, count(maMH) from Sinhvien SV, Ketqua KQ group by 
SV.maSV, hotenSV where SV.maSV = KQ.maSV 
Câu 25: Cho hai bảng Sinhvien (maSV, tenSV) và bảng LuanAn (maLA, tenLA, 
maSV,…) Câu truy vấn nào dùng để đưa ra số lượng sinh viên *chưa nhận bất kỳ đề tài luận*
văn?
A. Select count(maSV) from Sinhvien except select count(maSV) from LuanAn
B. Select count(maSV) from Sinhvien – (select count(maSV) from LuanAn)
C. Select count(maSV) – (select count(maSV) from LuanAn) from Sinhvien
D. Select count(maSV) from Sinhvien intersect select count(maSV) from LuanAn
**CÂU NÀY theo tôi
nghĩ thì là C**
Câu 26: Bảng Hanghoa có các thuộc tính sau: maHang, tenHang, dongia, soluong. Câu 
lệnh nào dùng để lấy ra thông tin các loại hàng có số lượng từ 100 trở lên và sắp xếp 
tenHang theo chiều tăng dần?
A. Select * from Hanghoa where soluong >= 100 group by tenHang
B. Select * from Hanghoa where soluong >= 100 order tenHang asc
C. Select * from Hanghoa where soluong >= 100 order by tenHang desc
* D. Select * from Hanghoa where soluong >= 100 order by tenHang
Câu 27: Tạo hàm cho biết tuổi của một người nào đó với tham số đầu vào là Ngaysinh của 
người đó?
* A. Create function Tuoi (@Ngaysinh date) returns int as begin return (year(getdate()) 
– year@ngaysinh)) end
B. Create function Tuoi (@Ngaysinh date) returns int as return (year(getdate()) –
year@ngaysinh))
C. Create function Tuoi (@Ngaysinh date) returns int as return (year@ngaysinh) -
year(getdate()))
D. Create function Tuoi (@Ngaysinh date) returns int as begin return (year@ngaysinh) 
- year(getdate())) end.
Câu 28: Câu lệnh sau: “CREATE VIEW Diemthi AS SELECT * FROM Sinhvien SV, 
Ketqua KQ WHERE SV.MaSV = KQ.MaSV” trả ra kết quả là:
A. Câu lệnh tạo một View hiển thị Danh sách sinh viên đã thi tất cả các môn
B. Câu lệnh tạo một View hiển thị Danh sách sinh viên chưa thi môn nào
C. Câu lệnh không thể thực hiện được
* D. Câu lệnh tạo ra một View hiển thị Danh sách sinh viên đã thi ít nhất là một môn
Câu 29: Phát biểu nào sau đây là *chưa chính xác* khi nói về Trigger trong SQL?
A. Trigger không có tham số truyền vào
B. Instead of Trigger là bỏ qua các sự kiện Insert/Update/Delete và thay vào đó thực 
thi các câu lệnh khác được xác định trong Trigger.
* C. Trigger được gọi trực tiếp bằng lệnh Excute
D. After Trigger là thực hiện xong các sự kiện Insert/Update/Delete thì sẽ thực hiện 
các câu lệnh trong Trigger
Câu 30: Lựa chọn phương án *chính xác nhất*:
A. Nếu cho A EXPECT B thì kết quả sẽ là sự trùng khớp của A và B
* B. Cả 3 phương án đều sai
C. Nếu cho A INTERSECT B thì kết quả sẽ là những cái mà A có và B không có
D. Nếu cho A UNION B thì kết quả sẽ là những cái chung của A và B
Câu 31: TTừ phiên bản bao nhiêu của Microsoft SQL Server đánh dấu lần đầu tiên nó hiện 
diện chính thức cho Linux
* A. SQL Server 2017
B. SQL Server 2016
C. SQL Server 2015
D. Chưa bao giờ Microsoft SQL Server được viết cho Linux
Câu 32: Khi dùng lệnh REVOKE để thu hồi lại hết quyền đã cấp phát ra (kể cả các quyền 
được cấp phát chuyển tiếp), muốn thu hồi hết chúng, ta cần dùng thêm tuỳ chọn:
A. DENY
B. REMOVE
C. WITH GRANT OPTION
* D. CASCADE
Câu 33: Bảng sinh viên được tạo như sau “CREATE TABLE SINHVIEN (MaSV char(10) 
primary key, HotenSV nvarchar(50) not null, GioiTinh nchar(7) check (Gioitinh = N‘Nam’
Or Gioitinh = N‘Nữ’), NgaySinh date not null, QueQuan nvarchar(20))”. Trong bảng sinh 
viên, khi nhập dữ liệu vào, những trường dữ liệu nào không được phép để trống?
A. MaSV, HotenSV, Gioitinh
* B. MaSV, HotenSV, Ngaysinh
C. MaSV, HotenSV, Ngaysinh, Gioitinh, Quequan
D. MaSV, HotenSV, Gioitinh, Ngaysinh
Câu 34: Trong cơ sở quản lý dữ liệu thư viện, có bảng Sach (maSach, TenSach, Theloai, 
Tacgia, …). Câu truy vấn nào để đưa ra thông tin tên Thể loại sách có nhiều đầu sách nhất 
thư viện?
A. Select Theloai from Sach group by Theloai having count(MaSach) = (select max 
(SL) from (select Theloai, count(MaSach) SL from Sach group by Theloai) as A)
B. Select Theloai from Sach group by Theloai having count(MaSach) = (select top 1 
count(MaSach) SL from Sach group by Theloai order by count(MaSach) desc)
* C. Cả A và B đều đúng
Câu 35: Phát biểu nào sau đây *chưa chính xác*:
* A. Hệ quản trị CSDL quan hệ bao gồm: SQL Server, MySQL, MongoDB,…
B. Hệ quản trị CSDL quan hệ sử dụng ngôn ngữ truy vấn là SQL
C. Trong hệ quản trị CSDL quan hệ, tính ACID của một Transaction được đảm bảo
D. Hệ quản trị CSDL dùng để tạo lập, cập nhật, khai thác cơ sở dữ liệu quan hệ gọi là 
Hệ quản trị CSDL quan hệ.
Câu 36: Làm thế nào để tạo ra một bảng mới có tên là ‘DuAnNew’ có hai thuộc tính là 
MaDuAn và TenDuAn từ bảng “DuAn” đã có sẵn?
A. Values MaDuAn, TenDuAn into DuAnNew from DuAn
B. Values MaDuAn, TenDuAn into DuAn from DuAnNew
C. Select MaDuAn, TenDuAn into DuAn from DuAnNew
* D. Select MaDuAn, TenDuAn into DuAnNew from DuAn
Câu 37: Phát biểu nào sau đây là chính xác nhất?
A. Identity có 2 tham số truyền vào là giá trị khởi tạo và giá trị tăng dần cho mỗi lần. 
Nếu được khai báo hai giá trị đó thì giá trị khởi tạo luôn là 1 và mỗi lần tăng 1
B. Nếu một cột nào đó có thuộc tính identity thì sẽ đảm bảo giá trị cột đó có tính chất 
Unique
* C. Khi insert dữ liệu vào bảng, giá trị cột identity sẽ tự động được sinh ra
D. Trong một bảng có thể có một hoặc nhiều cột có thuộc tính identity
Câu 38: Một database trong SQL Server được lưu trữ dưới dạng:
* A. 1 tập tin lưu trữ dữ liệu chính (*.mdf) chứa các dữ liệu khởi đầu, các tập tin dữ liệu 
thứ cấp (*.ndf), tập tin chứa nhật ký thao tác (*.ldf)
B. 1 tập tin lưu trữ dữ liệu chính (*.mdf) và các tập tin dữ liệu thứ cấp (*.ndf)
C. Tập tin dữ liệu thứ cấp (*.ndf) và tập tin chứa nhật ký thao tác (*.ldf)
D. 1 tập tin lưu trữ dữ liệu chính (*.mdf) và tập tin chứa nhật ký thao tác (*.ldf)

**Try :)**

![4](https://hackmd.io/_uploads/SJsWFAvAR.jpg)
![7](https://hackmd.io/_uploads/r1AfKRwRA.jpg)
![1](https://hackmd.io/_uploads/Sk5PYCDRC.jpg)
![5](https://hackmd.io/_uploads/S1V_tCw0C.jpg)
![6](https://hackmd.io/_uploads/SyFdYCPCA.jpg)
![7](https://hackmd.io/_uploads/S1XFtRDR0.jpg)
![8](https://hackmd.io/_uploads/HJDFK0P0R.jpg)
![9](https://hackmd.io/_uploads/S13YFRPRA.jpg)
![10](https://hackmd.io/_uploads/H1eqFRwRA.jpg)
![11](https://hackmd.io/_uploads/r1vcFCPA0.jpg)
![12](https://hackmd.io/_uploads/rJ0cYCvRR.jpg)
![13](https://hackmd.io/_uploads/S1foYCPCA.jpg)
![14](https://hackmd.io/_uploads/ByUsY0PA0.jpg)
![image](https://hackmd.io/_uploads/SJrWzedCR.png)
![image](https://hackmd.io/_uploads/Bk57Gld0R.png)
![image](https://hackmd.io/_uploads/SkO8zgdAC.png)
![image](https://hackmd.io/_uploads/HkgPXlOR0.png)
![image](https://hackmd.io/_uploads/SkSu7gOAA.png)

---
NEW:


---✅ là đúng
Câu hỏi 1: Các lưu ý khi sử dụng ràng buộc tham chiếu là gì?
Khi thêm cột vào bảng đã có ít nhất 1 bản ghi thì cột mới thêm phải cho phép nhận giá trị NULL hoặc phải có giá trị mặc định
Muốn xóa cột có tồn tại ràng buộc/có tham chiếu khóa ngoài thì phải xóa ràng buộc hoặc khóa ngoài
Nếu thêm ràng buộc cho bảng đã có dữ liệu thì các dữ liệu đã có không chịu tác động của ràng buộc
✅Tất cả các lựa chọn đều đúng
Câu hỏi 2: Câu lệnh nào sau đây sẽ kết thúc việc thực hiện trong Stored Procedure?(thủ tục)
BREAK
EXIT
QUIT
✅RETURN
Câu hỏi 3: Câu lệnh sau có ý nghĩa gì?UPDATE NHANVIENSET HSL = HSL + 1WHERE Gioitinh = N’Nữ’
✅ Tăng Hệ số lương (HSL) cho các nhân viên nữ thêm 01 giá trị
Tăng hệ số lương (HSL) của các nhân viên không phải là nhân viên nữ thêm 01 giá trị
Tăng hệ số lượng (HSL) của các nhân viên nam thêm thêm 01 gía trị
Tăng hệ số lương (HSL) của tất cả các nhân viên thêm 01 giá trị
Câu hỏi 4: Cho 2 bảng NHANVIEN(MaNV, HoTen, NS, GioiTinh, Luong, MaPB) và PHONGBAN(MaPB, TenPB, DiaChi). Câu lệnh sau làm gì?Select HoTen, TenPB from NHANVIEN, PHONGBAN where NHANVIEN.MaPB = PHONGBAN.MaPB and DiaChi like ‘% Thanh Xuân%’
Cả hai đều đúng
Cả hai đều sai
Cho danh sách các nhân viên có địa chỉ ở Thanh Xuân
✅ Cho danh sách gồm Họ tên và tên phòng ban của các nhân viên của phòng ban có địa chỉ ở Thanh Xuân
Câu hỏi 5: Cho bảng NHANVIEN(MaNV, HoTen, NS, GioiTinh, Luong, MaPB). Câu lệnh sau đây làm gì?Select count(MaNV), sum(Luong) from NHANVIEN where Gioitinh = N’Nữ’
Đếm và tính tổng lương các nhân viên
Đếm và tính tổng lương các nhân viên Nam
✅ Đếm và tính tổng lương của các nhân viên nữ
Tất cả các phương án đều đúng
Câu hỏi 6: Cho bảng NHANVIEN(MaNV, HoTen, NS, GioiTinh, Luong, MaPB). Câu lệnh sau đây làm gì?Select max(year(getdate()) – year(NS)) from NHANVIEN
✅ Cho biết tuổi cao nhất của các nhân viên
Cho biết tuổi cao nhất của các nhân viên nữ
Cho biết tuổi của các nhân viên
Cho biết tuổi thấp nhất của các nhân viên
Câu hỏi 7: Cho bảng HANGHOA(MaHH, TenHH, DonGia) và CT_HOADON(MaHD, MaHH, SoLuong). Câu lệnh để tính tổng tiền đã bán của từng mặt hành là gì, thống kê theo tên hàng
SELECT TenHang, SoLuong*DonGiaFROM CT_HOADON, HANGHOA WHERE CT_HOADON.MaHH= HANGHOA.MaHH GROUP BY TenHang
SELECT TenHang, Sum(SoLuong*DonGia)FROM CT_HOADON, HANGHOA GROUP BY TenHang
SELECT TenHang, Sum(SoLuong*DonGia)FROM CT_HOADON, HANGHOA WHERE CT_HOADON.MaHH= HANGHOA.MaHH
✅ SELECT TenHang, Sum(SoLuong*DonGia)FROM CT_HOADON, HANGHOA WHERE CT_HOADON.MaHH= HANGHOA.MaHH GROUP BY TenHang
Câu hỏi 8: Cho bảng HANGHOA(MaHH, TenHH, DonGia) và CT_HOADON(MaHD, MaHH, SoLuong). Câu lệnh sau làm gì?
 
SELECT TenHang, Sum(SoLuong*DonGia)
FROM CT_HOADON, HANGHOA
WHERE CT_HOADON.MaHH= HANGHOA.MaHH
GROUP BY TenHang
Tất cả các lựa chọn đều đúng
Tính tổng số lượng đã bán hàng của từng mặt hàng, thống kê theo tên hàng
Tính tổng số tiền đã bán hàng của từng mặt hàng
✅ Tính tổng số tiền đã bán hàng của từng mặt hàng, thống kê theo tên hàng
Câu hỏi 9: Cho bảng HANGHOA(MaHH, TenHH, DonGia) và CT_HOADON(MaHD, MaHH, SoLuong). Câu lệnh sau làm gì?SELECT TenHang, Sum(SoLuong*DonGia)FROM CT_HOADON, HANGHOA WHERE CT_HOADON.MaHH= HANGHOA.MaHH GROUP BY TenHang HAVING sum(SoLuong*DonGia)>10000000
✅ Cho biết tên và tổng số tiền hàng đã bán của các mặt hàng mà đã bán được trên 10 triệu
Tính tổng số lượng đã bán hàng của từng mặt hàng, thống kê theo tên hàng
Tính tổng số tiền đã bán hàng của từng mặt hàng
Tính tổng số tiền đã bán hàng của từng mặt hàng, thống kê theo tên hàng
Câu hỏi 10: Cho bảng KHOA(MaKhoa, TenKhoa, DiaChi) và bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB, MaKhoa). Câu lệnh để tạo Bảng SINHVIEN có Mã khoa được tham chiếu tương ứng từ bảng KHOA là?
CREATE TABLE SINHVIEN( MaSV varchar(9) PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) DiemTB float), MaKhoa varchar(9) )
✅ CREATE TABLE SINHVIEN( MaSV varchar(9) PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) DiemTB float), MaKhoa varchar(9) REFERENCES KHOA(MaKhoa))
CREATE TABLE SINHVIEN( MaSV varchar(9) PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) DiemTB float), MaKhoa varchar(9) REFERENCES MaKhoa)
Tất cả các lựa chọn đều đúng
Câu hỏi 11: Cho bảng NHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB). Đâu là câu lệnh để lấy ra các nhân viên Nữ và sinh năm 1979?
✅ SELECT *FROM NHANVIENWHERE GioiTinh = N’Nữ’ and year(NgaySinh) = 1979
SELECT *FROM NHANVIENWHERE year(NgaySinh) = 1979
SELECT *FROM NHANVIENWHERE GioiTinh = N’Nữ’, year(NgaySinh) = 1979
SELECT *FROM NHANVIENWHERE GioiTinh = N’Nữ’ and NgaySinh = 1979
Câu hỏi 12: Cho bảng NHANVIEN( MaNV, HoTen, NgaySinh, HSL, QueQuan, MaPB). Câu lệnh để lấy ra các nhân viên có họ “Trần” là gì?
SELECT * FROM NHANVIEN
SELECT * FROM NHANVIEN WHERE HoTen = “Trần%”
✅ SELECT * FROM NHANVIEN WHERE HoTen like “Trần%”
SELECT * FROM NHANVIEN WHERE HoTen like “Trần”
Câu hỏi 13: Cho bảng NHANVIEN( MaNV, HoTen, NgaySinh, HSL, QueQuan, MaPB). Câu lệnh để lấy ra các nhân viên có họ “Trần” và sinh năm 1985 là gì?
SELECT * FROM NHANVIEN WHERE HoTen like “Trần%” , year(NgaySinh) = 1985
SELECT * FROM NHANVIEN WHERE HoTen like “Trần%” and NgaySinh = 1985
✅ SELECT * FROM NHANVIEN WHERE HoTen like “Trần%” and year(NgaySinh) = 1985
SELECT * FROM NHANVIEN WHERE year(NgaySinh) = 1985
Câu hỏi 14: Cho bảng NHANVIEN( MaNV, HoTen, NgaySinh, HSL, QueQuan, MaPB). Câu lệnh để lấy ra các nhân viên không có họ “Trần” là gì?
SELECT * FROM NHANVIEN
SELECT * FROM NHANVIEN WHERE HoTen like “Trần%”
SELECT * FROM NHANVIEN WHERE HoTen not “Trần%”
✅ SELECT * FROM NHANVIEN WHERE HoTen not like “Trần%”
Câu hỏi 15: Cho bảng NHANVIEN( MaNV, HoTen, NgaySinh, HSL, QueQuan, MaPB). Câu lệnh để lấy ra các nhân viên Nam có hệ số lương từ 3 đến 7 là gì?
✅ Cả hai lựa chọn đều đúng
Cả hai lựa chọn đều sai
SELECT * FROM NHANVIEN WHERE GioiTinh = ‘Nam’ and HSL >=3 and HSL <=7
SELECT * FROM NHANVIEN WHERE GioiTinh = ‘Nam’ and HSL between 3 and 7
Câu hỏi 16: Cho bảng NHANVIEN( MaNV, HoTen, NgaySinh, HSL, QueQuan, MaPB). Đâu là câu lệnh để lấy ra các nhân viên có họ “Phạm”?
✅ SELECT *FROM NHANVIENWHERE HoTen like N’Phạm%’
SELECT *FROM NHANVIENWHERE HoTen like N’Phạm’
SELECT *FROM NHANVIENWHERE HoTen not like N’Phạm%’
SELECT *FROM NHANVIEN
Câu hỏi 17: Cho bảng NHANVIEN( MaNV, HoTen, NgaySinh, HSL, QueQuan, MaPB). Đâu là câu lệnh để lấy ra các nhân viên không có họ “Phạm”?
✅ SELECT *FROM NHANVIENWHERE HoTen not like N’Phạm%’
SELECT *FROM NHANVIEN
SELECT *FROM NHANVIENWHERE HoTen like N’Phạm%’
SELECT *FROM NHANVIENWHERE HoTen not N’Phạm%’
Câu hỏi 18: Cho bảng NHANVIEN( MaNV, HoTen, NgaySinh, HSL, QueQuan, MaPB). Đâu là câu lệnh để lấy ra các nhân viên Nữ có hệ số lương dưới 3 và trên 7?
✅ SELECT *FROM NHANVIENWHERE GioiTinh = N’Nữ’ and (HSL<3 or HSL>7)
SELECT *FROM NHANVIENWHERE GioiTinh = N‘Nữ’ and HSL >=7 or HSL <=3
SELECT *FROM NHANVIENWHERE GioiTinh = N‘Nữ’ and HSL >=3 or HSL <=7
SELECT *FROM NHANVIENWHERE GioiTinh = N’Nữ’ and HSL between 3 to 7
Câu hỏi 19: Cho bảng NHANVIEN(MaNV, HoTen, NS, GioiTinh, Luong, MaPB). Câu lệnh để đếm số nhân viên của từng phòng ban?
Select count(MaNV) as SoNV from NHANVIEN
Select MaPB, count(MaNV) as SoNV from NHANVIEN
✅ Select MaPB, count(MaNV) as SoNV from NHANVIEN group by MaPB
Select MaPB, sum(MaNV) as SoNV from NHANVIEN group by MaPB
Câu hỏi 20: Cho bảng NHANVIEN(MaNV, HoTen, NS, GioiTinh, Luong, MaPB). Câu lệnh để đếm và tính tổng lương của nhân viên nữ
Select count(MaNV) from NHANVIEN where GioiTinh = ‘Nữ’
Select count(MaNV), sum(Luong) from NHANVIEN
✅ Select count(MaNV), sum(Luong) from NHANVIEN where GioiTinh = ‘Nữ’
Select sum(Luong) from NHANVIEN where GioiTinh = ‘Nữ’
Câu hỏi 21: Cho bảng NHANVIEN(MaNV, HoTen, NS, HSL, Quequan,…). Câu lệnh cho biết tên nhân viên có lương cao nhất
Select HoTen from NHANVIEN
Select HoTen from NHANVIEN where HSL = max(HSL)
✅ Select Hoten from NHANVIEN where HSL>= (select max(HSL) from NHANVIEN)
Select HoTen, max(HSL) from NHANVIEN
Câu hỏi 22: Cho bảng NHANVIEN(MaNV, HoTen, NS, HSL, Quequan,…). Câu lệnh cho biết tên nhân viên có lương thấp nhất
Select HoTen from NHANVIEN
Select HoTen from NHANVIEN where HSL = min(HSL)
✅ Select Hoten from NHANVIEN where HSL<= (select min(HSL) from NHANVIEN)
Tất cả đều đúng
Câu hỏi 23: Cho bảng SINHVIEN( MaSV, HoTen, NgaySinh, GioiTinh, DTB). Câu lệnh để lấy ra danh sách gồm: mã sinh viên, họ tên và ngày sinh các sinh viên là gì?
SELECT * FROM SINHVIEN
SELECT MaSV, HoTen, NgaySinh
✅ SELECT MaSV, HoTen, NgaySinh FROM SINHVIEN
SELECT MaSV, HoTen, NgaySinh FROM SINHVIENWHERE GioiTinh=’Nữ’
Câu hỏi 24: Cho bảng SINHVIEN( MaSV, HoTen, NgaySinh, GioiTinh, DTB). Câu lệnh để lấy ra danh sách gồm: mã sinh viên, họ tên và ngày sinh của các sinh viên Nam là gì?
SELECT * FROM SINHVIENWHERE GioiTinh = ‘Nam’
SELECT MaSV, HoTen, NgaySinh FROM SINHVIEN
SELECT MaSV, HoTen, NgaySinh FROM SINHVIENWHERE GioiTinh = ‘Nam’
SELECT MaSV, HoTen, NgaySinhWHERE GioiTinh = ‘Nam’FROM SINHVIEN
Câu hỏi 25: Cho bảng SINHVIEN( MaSV, HoTen, NgaySinh, GioiTinh, DTB). Câu lệnh để thực hiện tăng thêm 0.5 vào ĐTB cho các sinh viên nữ là gì?
UPDATE SINHVIEN SET DTB = 0.5WHERE GioiTinh = ‘Nữ’
UPDATE SINHVIEN SET DTB = DTB + 0.5
✅ UPDATE SINHVIEN SET DTB = DTB + 0.5 WHERE GioiTinh = ‘Nữ’
UPDATE SINHVIEN WHERE GioiTinh = ‘Nữ’
Câu hỏi 26: Cho bảng SINHVIEN( MaSV, HoTen, NgaySinh, GioiTinh, DTB). Câu lệnh để thực hiện xóa các sinh viên nữ là gì?
DELETE FROM SINHVIEN
✅DELETE FROM SINHVIEN WHERE GioiTinh = ‘Nữ’
DELETE FROM SINHVIEN WHERE GioiTinh is ‘Nữ’
DELETE SINHVIEN WHERE GioiTinh = ‘Nữ’
Câu hỏi 27: Cho bảng SINHVIEN( MaSV, HoTen, NgaySinh, GioiTinh, DTB). Câu lệnh thực hiện tăng thêm 0.5 vào ĐTB cho các sinh viên nam sinh vào năm 1994 là gì?
UPDATE SINHVIEN SET DTB = DTB + 0.5 WHERE GioiTinh = ‘Nam’
UPDATE SINHVIEN SET DTB = DTB + 0.5 WHERE GioiTinh = ‘Nam’ and NgaySinh = 1994
✅ UPDATE SINHVIEN SET DTB = DTB + 0.5  WHERE GioiTinh = ‘Nam’ and year(NgaySinh) = 1994
UPDATE SINHVIENSET DTB = DTB + 0.5WHERE year(NgaySinh) = 1994
Câu hỏi 28: Cho bảng SINHVIEN( MaSV, HoTen, NgaySinh, GioiTinh, DTB). Câu lệnh thực hiện xóa các sinh viên nam sinh vào năm 1994 là gì?
DELETE FROM SINHVIEN WHERE GioiTinh = ‘Nam’
DELETE FROM SINHVIEN WHERE GioiTinh = ‘Nam’ and year = 1994
✅ DELETE FROM SINHVIEN WHERE GioiTinh = ‘Nam’ and year(NgaySinh) = 1994
DELETE FROM SINHVIEN WHERE year(NgaySinh) = 1994
Câu hỏi 29: Cho bảng SINHVIEN( MaSV, HoTen, NgaySinh, GioiTinh, DTB, HocBong). Câu lệnh để thực hiện tăng thêm 0.5 vào ĐTB và Học bổng tăng 100000 cho các sinh viên Nam
UPDATE SINHVIEN SET DTB = DTB + 0.5 and HocBong = HocBong + 100000WHERE GioiTinh = ‘Nam’
UPDATE SINHVIEN SET DTB = DTB + 0.5, HocBong = HocBong + 100000
✅ UPDATE SINHVIEN SET DTB = DTB + 0.5, HocBong = HocBong + 100000WHERE GioiTinh = ‘Nam’
UPDATE SINHVIEN WHERE GioiTinh = ‘Nam’
Câu hỏi 30: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB). Câu lệnh để tạo bảng thỏa mãn ràng buộc: Mã SV là khóa chính, Giới tính chỉ nhận giá trị Nam hoặc Nữ, Điểm TB mặc định là 2
✅CREATE TABLE SINHVIEN( MaSV varchar PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) CHECK (GioiTinh in (‘Nam’, ‘Nữ’)), DiemTB float DEFAULT(2) )
CREATE TABLE SINHVIEN( MaSV varchar PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) CHECK (GioiTinh in (‘Nam’, ‘Nữ’)), DiemTB float)
CREATE TABLE SINHVIEN( MaSV varchar PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) DiemTB float DEFAULT(2) )
CREATE TABLE SINHVIEN( MaSV varchar PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) DiemTB float) )
Câu hỏi 31: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB). Để cho phép giá trị của cột Ngày sinh bắt buộc phải nhập cho các sinh viên ta có lựa chọn
NS datatime NULL
NS datetime
NS datetime IS NOT NULL
✅ NS datetime NOT NULL
Câu hỏi 32: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB). Để tạo ràng buộc DiemTB chỉ nhận giá trị từ 0 đến 10 ta có lựa chọn
✅ NS datetime NOT NULL
 DiemTB float CHECK ( DiemTB>=0 and DiemTB<=10)
DiemTB float CHECK ( DiemTB>=0 or DiemTB<=10)
DiemTB float CHECK (DiemTB 0 to 10)
DiemTB float CHECK ( 0<=DiemTB <=10)
Câu hỏi 33: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB). Để tạo ràng buộc GioiTinh chỉ nhận giá trị là ‘Nam’, ‘Nữ’ ta có lựa chọn
Cả hai lựa chọn đều đúng
Cả hai lựa chọn đều sai
GioiTinh nvarchar(3) CHECK( GioiTinh = ‘Nam’ or GioiTinh = ‘Nữ’)
✅ GioiTinh nvarchar(3) CHECK( GioiTinh in (‘Nam’, ‘Nữ’))
Câu hỏi 34: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB). Để tạo ràng buộc MaSV là khóa chính ta có lựa chọn
MaSV varchar(9) CHECK KEY
✅ MaSV varchar(9) PRIMARY KEY
MaSV varchar(9) UNIQUE
Tất cả đáp án đều đúng
Câu hỏi 35: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB). Để thêm cột Quê quán vào cuối bảng ta thực hiện câu lệnh
ALTER NHANVIEN ADD QueQuan nvarchar(30)
ALTER TABLE NHANVIEN ADD COLUMN QueQuan nvarchar(30)
Câu hỏi 35: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB). Để thêm cột Quê quán vào cuối bảng ta thực hiện câu lệnh ALTER NHANVIEN ADD QueQuan nvarchar(30)
ALTER TABLE NHANVIEN ADD COLUMN QueQuan nvarchar(30)
✅ ALTER TABLE NHANVIEN ADD QueQuan nvarchar(30)
Tất cả các phương án đều đúng ALTER TABLE NHANVIEN ADD QueQuan nvarchar(30)
Tất cả các phương án đều đúng
Câu hỏi 36: Cho bảng SINHVIEN( MaSV, HoTen, NS, GioiTinh, DiemTB, QueQuan). Để xóa cột Quê quán của bảng ta thực hiện câu lệnh
ALTER TABLE NHANVIEN ALTER COLUMN QueQuan
ALTER TABLE NHANVIEN DELETE COLUMN QueQuan
✅ ALTER TABLE NHANVIEN DROP COLUMN QueQuan
ALTER TABLE NHANVIEN DROP QueQuan
Câu hỏi 37: Cho bảng tblDiem(MaSV, MaMon, Diem) với các ràng buộc:- MaSV, MaMon là khóa- Điểm chỉ nhận giá trị từ 0 đến 10Đâu là câu lệnh đúng để chèn được bản ghi mới?
✅ INSERT INTO tblNhanVienVALUES ( “SV01”, “CSDL”, 6)INSERT INTO tblNhanVienVALUES ( “SV01”, “CTDL”, 8)
INSERT INTO tblNhanVienVALUES ( “SV01”, “CSDL”, 6)INSERT INTO tblNhanVienVALUES ( “SV01”, “CSDL”, 8)
INSERT INTO tblNhanVienVALUES ( “SV01”, “CSDL”, 6)INSERT INTO tblNhanVienVALUES ( “SV01”, “CTDL”, 11)
INSERT INTO tblNhanVienVALUES ( “SV01”, “CSDL”, -3)INSERT INTO tblNhanVienVALUES ( “SV01”, “CTDL”, 9)
Câu hỏi 38: Cho bảng tblDiem(MaSV, MaMon, Diem). Đâu là câu lệnh taọ bảng với các ràng buộc:- MaSV, MaMon là khóa- Điểm chỉ nhận giá trị từ 0 đến 10
✅ CREATE TABLE tblDiem(MaSV varchar(9),MaMon varchar(9),Diem float Check (Diem between 0 and 10),PRIMARY KEY (MaSV, MaMon))
CREATE TABLE tblDiem(MaSV varchar(9),MaMon varchar(9),Diem float,PRIMARY KEY (MaSV, MaMon))
CREATE TABLE tblDiem(MaSV varchar(9),MaMon varchar(9),Diem float Check (Diem between 0 and 10))
CREATE TABLE tblDiem(MaSV varchar(9),MaMon varchar(9),Diem float)
Câu hỏi 39: Cho bảng tblDonVi(MaDV, TenDV, Dienthoai).Đâu là câu lệnh tạo bảng tblNhanVien(MaNV, HoTen, GioiTinh, MaDV) thoả mãn ràng buộc:-MaNV: Khóa chính-MaDV: Tham chiếu sang cột MaDV trong bảng tblDonVi
✅ CREATE TABLE tblNhanVien(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(20),GioiTinh nvarchar(3),MaDV varchar(9) REFERENCES tblDonVi(MaDV))
CREATE TABLE tblNhanVien(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(20),GioiTinh nvarchar(3),MaDV varchar(9))
CREATE TABLE tblNhanVien(MaNV varchar(9),HoTen nvarchar(20),GioiTinh nvarchar(3),MaDV varchar(9) REFERENCES tblDonVi(MaDV))
CREATE TABLE tblNhanVien(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(20),GioiTinh nvarchar(3),MaDV varchar(9) REFERENCES MaDV(tblDonVi))
Câu hỏi 40: Cho bảng tblDonVi(MaDV, TenDV, DienThoai)tblNhanVien(MaNV, TenNV, GioiTinh, HeSL, MaDV)Cho view sau:CREATE VIEW vvNVDVAsSelect MaNV, TenNV, HeSL, TenDVFrom tblDonVi, tblNhanVienWhere tblDonVi.MaDV = tblNhanVien.MaDVCâu lệnh UPDATE nào sau đây được thực hiện?
✅ UPDATE vvNVDVSET HeSL = HeSL + 0.5Where MaNV = ‘NV01’
UPDATE vvNVDVSET TenDV = ‘Phong Hanh Chinh’Where MaNV = ‘NV01’
UPDATE vvNVDVSET TenDV = ‘Phong Hanh Chinh’
UPDATE vvNVDVSET TenDV = ‘Phong Hanh Chinh’Where HeSL > 3
Câu hỏi 41: Cho bảng tblDonVi(MaDV, TenDV, DienThoai)tblNhanVien(MaNV, TenNV, GioiTinh, HeSL, MaDV)Đâu là đoạn mã tạo thủ tục để cho thông tin tên đơn vị có tổng tiền lương nhân viên lớn một giá trị nào đó (là tham số truyền vào)?
✅ CREATE PROCEDURE TongTien (@x float )AS Select TenDV, sum(HeSL)*1500000 From tblDonVi, tblNhanVien Where tblDonVi.MaDV=tblNhanVien.MaDV Group by TenDV Having sum(HeSL)*1500000 > @x
CREATE PROCEDURE TongTien (@x float )AS Select TenDV, sum(HeSL)*1500000 From tblDonVi, tblNhanVien Where tblDonVi.MaDV=tblNhanVien.MaDV and sum(HeSL)*1500000 > @x
CREATE PROCEDURE TongTien (@x float )AS Select TenDV, sum(HeSL)*1500000 From tblDonVi, tblNhanVien Where tblDonVi.MaDV=tblNhanVien.MaDV Group by TenDV
CREATE PROCEDURE TongTien AS Begin Declare @x floatSelect TenDV, sum(HeSL)*1500000From tblDonVi, tblNhanVienWhere tblDonVi.MaDV=tblNhanVien.MaDV Group by TenDV Having sum(HeSL)*1500000 > @x End
Câu hỏi 42: Cho Bảng tblNHANVIEN với các thuộc tính như sau: MaNV, TenNV, NgaySinh, Luong.Đâu là câu lệnh tạo bảng tblNhanVien
✅ CREATE TABLE tblNhanVien(MaNV varchar(9),TenNV nvarchar(25),NgaySinh Datetime,Luong float)
CREATE TABLE tblNhanVien(MaNV varchar(9),TenNV nvarchar(25),NgaySinh Datetime)
CREATE TABLE tblNhanVien(Varchar(9) MaNV,nvarchar(25) TenNV,Datetime NgaySinh,float Luong)
CREATE TABLE tblNhanVien(MaNV varchar(9),TenNV nvarchar(25),NgaySinh float,Luong Datetime)
Câu hỏi 43: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh tạo View chứa danh sách HoTen, GioiTinh của các nhân viên Nữ?
✅ CRETA VIEW vvDSNVNu As Select HoTen, GioiTinhFrom tblNHANVIEN Where GioiTinh = N’Nữ’
CRETA VIEW vvDSNVNu(HoTen, GioiTinh) As Select *From tblNHANVIEN Where GioiTinh = N’Nữ’
CRETA VIEW vvDSNVNu As Select HoTen, GioiTinhFrom tblNHANVIEN
CRETA VIEW vvDSNVNu As Select *From tblNHANVIEN Where GioiTinh = N’Nữ’
Câu hỏi 44: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh tạo View tính tổng lương các nhân viên Nam theo từng phòng ban?
✅ CRETA VIEW vvTongLuongNam(MaPB, TongTien)As Select MaPB, sum(HSL)*1500000 From tblNHANVIEN Where GioiTinh = ‘Nam’ Group By MaPB
CRETA VIEW vvTongLuongNam(MaPB, TongTien)AsSelect MaPB, HSL*500000From tblNHANVIENWhere GioiTinh = ‘Nam’
CRETA VIEW vvTongLuongNamAsSelect MaPB, sum(HSL)*1500000From tblNHANVIENWhere GioiTinh = ‘Nam’Group By MaPB
CRETA VIEW vvTongLuongNam(MaPB, TongTien)AsSelect MaPB, sum(HSL)*1500000From tblNHANVIENWhere GioiTinh = ‘Nam’
Câu hỏi 45: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh tạo View tính tổng lương các nhân viên Nữ theo từng phòng ban?
✅ CRETA VIEW vvTongLuongNu(MaPB, TongTien)As Select MaPB, sum(HSL)*1500000 From tblNHANVIENWhere GioiTinh = N‘Nữ’ Group By MaPB
CRETA VIEW vvTongLuongNu As Select MaPB, sum(HSL)*1500000 From tblNHANVIEN Where GioiTinh = N’Nữ’Group By MaPB
CRETA VIEW vvTongLuongNu(MaPB, TongTien)As Select MaPB, HSL*500000 From tblNHANVIEN Where GioiTinh = N’Nữ’
CRETA VIEW vvTongLuongNu(MaPB, TongTien)As Select MaPB, sum(HSL)*1500000From tblNHANVIEN Where GioiTinh = N’Nữ’
Câu hỏi 46: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh tạo View tính tổng lương các nhân viên theo từng phòng ban?
✅ CRETA VIEW vvTongLuong(MaPB, TongTien)As Select MaPB, sum(HSL)*1500000From tblNHANVIENGroup By MaPB
CRETA VIEW vvTongLuong(MaPB, TongTien)AsSelect MaPB, sum(HSL)*1500000From tblNHANVIEN
CRETA VIEW vvTongLuongAsSelect MaPB, sum(HSL)*1500000From tblNHANVIENGroup By MaPB
CRETA VIEW vvTongLuong(MaPB, TongTien)AsSelect MaPB, HSL*500000From tblNHANVIEN
Câu hỏi 47: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh Tính lương cao nhất của các nhân viên
✅ SELECT MAX(HSL)*1500000 FROM tblNHANVIEN
SELECT MIN(HSL)*1500000FROM tblNHANVIEN
SELECT SUM(HSL)*1500000FROM tblNHANVIEN
SELECT AVG(HSL)*1500000FROM tblNHANVIEN
Câu hỏi 48: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh Tính lương thấp nhất của các nhân viên
✅ SELECT MIN(HSL)*1500000FROM tblNHANVIEN
SELECT AVG(HSL)*1500000FROM tblNHANVIEN
SELECT SUM(HSL)*1500000FROM tblNHANVIEN
SELECT MAX(HSL)*1500000FROM tblNHANVIEN
Câu hỏi 49: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh Tính tổng Lương của các nhân viên đang được lưu trong bảng?
✅ SELECT SUM(HSL)*1500000FROM tblNHANVIEN
SELECT AVG(HSL)*1500000FROM tblNHANVIEN
SELECT MIN(HSL)*1500000FROM tblNHANVIEN
SELECT MAX(HSL)*1500000FROM tblNHANVIEN
Câu hỏi 50: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh Tính tổng Lương của các nhân viên Nữ đang được lưu trong bảng?
✅ SELECT SUM(HSL)*1500000FROM tblNHANVIE NWHERE GioiTinh = N’Nữ’
SELECT SUM(HSL)*1500000FROM tblNHANVIEN WHERE not(GioiTinh = N’Nữ’)
SELECT SUM(HSL)*1500000FROM tblNHANVIEN
SELECT SUM(HSL)*1500000FROM tblNHANVIEN WHERE GioiTinh = ‘Nữ’
Câu hỏi 51: Cho bảng tblNHANVIEN( MaNV, HoTen, GioiTinh, NgaySinh, HSL, QueQuan, MaPB).Đâu là câu lệnh tính tổng tiền lương của các nhân viên theo từng phòng ban
✅ SELECT MaPB, SUM(HSL)*1500000FROM tblNHANVIEN GROUP BY MaPB
SELECT MaPB, SUM(HSL)*1500000FROM tblNHANVIEN
SELECT SUM(HSL)*1500000FROM tblNHANVIEN
SELECT SUM(HSL)*1500000FROM tblNHANVIENGROUP BY MaPB
Câu hỏi 52: Cho bảng tblNHANVIEN(MaNV, HoTen, GioiTinh, QueQuan). Đâu là câu lệnh tạo bảng với các ràng buộc:- MaNV là khóa- GioiTinh chỉ nhận giá trị “Nam”, “Nữ”
✅ CREATE TABLE tblNHANVIEN(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(25),GioiTinh nvarchar(3) Check GioiTinh in {‘Nam’, N’Nữ’},QueQuan nvarchar(20))
CREATE TABLE tblNHANVIEN(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(25),GioiTinh nvarchar(3),QueQuan nvarchar(20))
CREATE TABLE tblNHANVIEN(MaNV varchar(9),HoTen nvarchar(25),GioiTinh nvarchar(3) Check GioiTinh in {‘Nam’, N’Nữ’},QueQuan nvarchar(20))
CREATE TABLE tblNHANVIEN(MaNV varchar(9),HoTen nvarchar(25),GioiTinh nvarchar(3),QueQuan nvarchar(20))
Câu hỏi 53: Cho bảng tblNHANVIEN(MaNV, HoTen, GioiTinh, QueQuan). Đâu là câu lệnh tạo bảng với các ràng buộc:- MaNV là khóa- Họ tên không được để trống- GioiTinh chỉ nhận giá trị “Nam”, “Nữ”
✅ CREATE TABLE tblNHANVIEN(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(25) NOT NULL,GioiTinh nvarchar(3) Check GioiTinh in {‘Nam’, N’Nữ’},QueQuan nvarchar(20))
CREATE TABLE tblNHANVIEN(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(25) NOT NULL,GioiTinh nvarchar(3),QueQuan nvarchar(20))
CREATE TABLE tblNHANVIEN(MaNV varchar(9),HoTen nvarchar(25) NOT NULL,GioiTinh nvarchar(3) Check GioiTinh in {‘Nam’, N’Nữ’},QueQuan nvarchar(20))
CREATE TABLE tblNHANVIEN(MaNV varchar(9) PRIMARY KEY,HoTen nvarchar(25),GioiTinh nvarchar(3) Check GioiTinh in {‘Nam’, N’Nữ’},QueQuan nvarchar(20))
Câu hỏi 54: Cho bảng tblNHANVIEN(MaNV, HoTen, GioiTinh, QueQuan).Đâu là câu lệnh đúng để chèn thêm một Nhân viên mới?
✅ INSERT INTO tblNhanVien( MaNV, HoTen, GioiTinh )VALUES (11, N‘Nguyễn Thị Thủy’, N‘Nữ’);
INSERT INTO tblNhanVien( MaNV, HoTen, GioiTinh )VALUES (11, N‘Nguyễn Thị Thủy’);
INSERT INTO tblNhanVienVALUES (11, N‘Nguyễn Thị Thủy’, N‘Nữ’);
INSERT INTO tblNhanVien( MaNV, HoTen)VALUES (11, N‘Nguyễn Thị Thủy’, N‘Nữ’);
Câu hỏi 55: Cho bảng tblNHANVIEN(MaNV, HoTen, GioiTinh, QueQuan).Đâu là câu lệnh thêm cột HeSL với ràng buộc- HeSL có giá trị mặc định là 2.34- HeSL có giá trị tối đa là 8
✅ ALTER TABLE tblNHANVIEN ADD HeSL float Default(2.34) Check(HeSL<=8)
ALTER TABLE tblNHANVIENADD HeSL float Default(2.34)
ALTER TABLE tblNHANVIENADD HeSL float Check(HeSL<=8)
ALTER TABLE tblNHANVIENADD HeSL float Default(2.34) Check(HeSL>=8)
Câu hỏi 56: Cho bảng tblNHANVIEN(MaNV, HoTen, GioiTinh, Tuoi, QueQuan, HeSL).Đâu là câu lệnh tăng lương thêm 0.3 cho các nhân viên Nữ có tuổi từ 50 trở lên?
✅ UPDATE tblNHANVIEN SET HeSL = HeSL + 0.3 WHERE GioiTinh = N’Nữ’ and Tuoi>=50
UPDATE tblNHANVIENSET HeSL = HeSL + 0.3WHERE GioiTinh = ’Nữ’ and Tuoi!=50
UPDATE tblNHANVIENSET HeSL = HeSL + 0.3
UPDATE tblNHANVIENWHERE GioiTinh = N’Nữ’ and Tuoi>=50
Câu hỏi 57: Cho bảng tblNHANVIEN(MaNV, HoTen, GioiTinh, Tuoi, QueQuan, HeSL).Đâu là câu lệnh xoá Nhân viên Nữ có tuổi từ 50 trở lên?
✅ DELETE FROM tblNHANVIEN Where GioiTinh = N’Nữ’ and Tuoi>=50
DELETE FROM tblNHANVIENWhere GioiTinh = N’Nữ’
DELETE FROM tblNHANVIENWhere Tuoi>=50
DELETE FROM tblNHANVIEN
Câu hỏi 58: Cho bảng tblSinhVien(MaSV, HoTen, Email, DTB) với các ràng buộc:- MaSV là khóa- DTB nhận giá trị từ 0 đến 10Đâu là câu lệnh đúng để thực hiện chèn thêm 01 Sinh viên
✅ INSERT INTO tblNhanVien( MaSV, HoTen, DTB )VALUES (11, N‘Nguyễn Thị Thủy’, 7.5);
INSERT INTO tblNhanVien( MaSV, HoTen, DTB )VALUES (11, N‘Nguyễn Thị Thủy’, “thuy@gmail.com”);
INSERT INTO tblNhanVien( MaSV, HoTen, DTB )VALUES (11, N‘Nguyễn Thị Thủy’, -2);
INSERT INTO tblNhanVien( MaSV, HoTen, DTB )VALUES (11, N‘Nguyễn Thị Thủy’, 12);
Câu hỏi 59: Cho bảng tblSinhVien(MaSV, HoTen, Email, DTB). Đâu KHÔNG là câu lệnh tạo bảng với các ràng buộc:- MaSV là khóa- DTB nhận giá trị từ 0 đến 10
✅ CREATE TABLE tblSinhVien(MaSV varchar(9),HoTen nvarchar(20),Email varchar(25),DTB float Check (DTB between 0 and 10))
CREATE TABLE tblSinhVien(MaSV varchar(9),HoTen nvarchar(20),Email varchar(25),DTB float Check (DTB between 0 and 10),PRIMARY KEY(MaSV))
CREATE TABLE tblSinhVien(MaSV varchar(9) PRIMARY KEY,HoTen nvarchar(20),Email varchar(25),DTB float Check (DTB>=0 and DTB<=10))
CREATE TABLE tblSinhVien(MaSV varchar(9) PRIMARY KEY,HoTen nvarchar(20),Email varchar(25),DTB float Check (DTB between 0 and 10))
Câu hỏi 60: Cho bảng tblSinhVien(MaSV, HoTen, Email, DTB). Đâu là câu lệnh tạo bảng với các ràng buộc:- MaSV là khóa- DTB nhận giá trị từ 0 đến 10
✅ CREATE TABLE tblSinhVien(MaSV varchar(9) PRIMARY KEY,HoTen nvarchar(20),Email varchar(25),DTB float Check (DTB>=0 and DTB<=10))
CREATE TABLE tblSinhVien(MaSV varchar(9),HoTen nvarchar(20),Email varchar(25),DTB float Check (DTB>=0 and DTB<=10))
CREATE TABLE tblSinhVien(MaSV varchar(9) PRIMARY KEY,HoTen nvarchar(20),Email varchar(25),DTB float)
CREATE TABLE tblSinhVien(MaSV varchar(9),HoTen nvarchar(20),Email varchar(25),DTB float Check DTB between 0 and 10)
Câu hỏi 61: Cho bảng tblSinhVien(MaSV, HoTen, Email, XepLoai, DTB). Đâu là câu lệnh Cập nhập DTB tăng thêm 0.5 cho những SV có Xếp loại là “A”?
✅ UPDATE tblSinhvienSET DTB = DTB + 0.5WHERE XepLoai = “A”
UPDATE tblSinhvienWHERE XepLoai = “A”
UPDATE tblSinhvienSET DTB = DTB + 0.5
UPDATE tblSinhvienSET DTB = DTB + 0.5WHERE XepLoai != “A”
Câu hỏi 62: Cho bảng tblSinhVien(MaSV, HoTen, Email, XepLoai, DTB). Đâu là câu lệnh xoá các Sinh viên có Xếp loại là “C”?
✅ DELETE FROM tblSinhVienWhere XepLoai = “C”
DELETE FROM tblSinhVien
DELETE FROM tblSinhVienWhere XepLoai != “C”
DELETE FROM tblSinhVienWhere Not(XepLoai = “C”)
Câu hỏi 63: Cho câu lệnh tạo bảng SINHVIEN như sau:CREATE TABLE SINHVIEN( MaSV varchar PRIMARY KEY, HoTen nvarchar(30), NS datetime, GioiTinh nvarchar(3) CHECK (GioiTinh in (‘Nam’, ‘Nữ’)), DiemTB float DEFAULT(2) ).Chọn câu lệnh đúng để chèn thêm dữ liệu vào bảng SINH VIÊN.
INSERT INTO SINHVIEN VALUES(‘01’, ‘Đào Lan’, ‘3/4/84’, ‘Nữ’, ‘Tám’)
✅ INSERT INTO SINHVIEN VALUES(‘01’, ‘Đào Lan’, ‘3/4/84’, ‘Nữ’, 8)
INSERT INTO SINHVIEN VALUES(‘01’, ‘Đào Lan’, ‘Nữ’, ‘3/4/84’, 8)
INSERT INTO SINHVIEN VALUES(‘01’, ‘Đào Lan’, ‘Nữ’, 8)
Câu hỏi 64: Cho đoạn mã tạo View:CREATE VIEW vvDSNVNuAs Slect * From tblNhanVien Where GioiTinh = N’Nữ’Đâu là câu lệnh xoá View vừa được tạo xong?
✅ DROP VIEW vvDSNVNu
ALTER VIEW vvDSNVNu
DROP vvDSNVNu
UPDATE VIEW vvDSNVNu
Câu hỏi 65: Cho thủ tục sau:CREATE PROCEDURE spTong2So (@a INT, @b INT)AS SELECT @a+@b AS Tong Đâu KHÔNG là câu lệnh thực thi thủ tục trên với giá trị a = 4, b = 5
✅ EXECUTE spTong2So 5, 4
EXECUTE spTong2So 4, 5
EXECUTE spTong2So @b=5, @a=4
EXECUTE spTong2So @a=4, @b=5
Câu hỏi 66: Cho thủ tục sau:CREATE PROCEDURE spTong2So (@a INT, @b INT)AS SELECT @a+@b AS TongKết quả câu lệnh thực thi sau là bao nhiêu?EXECUTE spTong2So 4, 5
✅ 9
1
5
4
Câu hỏi 67: Cho View được tạo như sau:CRETA VIEW vvTongLuong(MaPB, TongTien)As Select MaPB, sum(HSL)*1500000 From tblNHANVIEN Group By MaPBCâu lệnh nào sau đây được thực hiện với View đã tao trên?
✅ Select *From vvTongLuong
Insert Into vvTongLuongValues(‘PB01’, 10000000)
Update vvTongLuongSet TongTien = TongTien + 5000000Where MaPB = ‘PB01’
Update vvTongLuongSet TongTien = TongTien + 5000000
Câu hỏi 68: Có những kiểu truy vấn join nào khi lấy dữ liệu từ nhiều bảng
Inner Join
Left Join
Right Join
✅ Tất cả các lựa chọn đều đúng
Câu hỏi 69: Có những kiểu truy vấn lồng nào?
✅ Cả hai loại đều đúng
Cả hai loại đều sai
Lồng phân cấp
Lồng tương quan
Câu hỏi 70: Cơ sở dữ liệu “Quản lý nhân viên” sau đươc tạo ra được lưu với tên file là gì?CREATE DATABASE QlyNhanVienON(Name = “QLNV”,Filename = “D:\DATA\QLNV.mdf”)
✅ QLNV.mdf
QuanlyNhanVien.mdf
QLNhanvien.mdf
QuanLyNV.mdf
Câu hỏi 71: Cú pháp của lệnh SELECT đơn giản là gì?
SELECT [WHERE <điều kiện>]
SELECT [WHERE <điều kiện>]FROM
✅ SELECT FROM [WHERE <điều kiện>]
Tất cả các lựa chọn đều đúng
Câu hỏi 72: Cú pháp để sửa đổi kiêu dữ liệu của một cột là gì?
ALTER TABLE Tên_bảngADD COLUMN Tên_cột Kiểu_dữ_liệu_mới
✅ ALTER TABLE Tên_bảngALTER COLUMN Tên_cột Kiểu_dữ_liệu_mới
ALTER TABLE Tên_bảngALTER COLUMN Kiểu_dữ_liệu_mới
ALTER TABLE Tên_bảngALTER Tên_cột Kiểu_dữ_liệu_mới
Câu hỏi 73: Cú pháp để thêm cột mới vào một bảng là như thế nào
✅ ALTER TABLE Tên_bảng
ADD Tên_cột Kiểu_dữ_liệu [RBTV] 
ALTER TABLE ADD COLUMN
ALTER TABLE ADD COLUMN [RBTV]
CREATE TABLE { [RBTV], …}
Câu hỏi 74: Cú pháp nào sau đây dùng để sửa Stored Procedure có tên là “Test”?
✅ ALTER PROCEDURE Test…..
ALTER STORED PROCEDURE Test…..
ALTER STORED Test…..
EDIT STORED Test…..
Câu hỏi 75: Cú pháp nào sau đây dùng để tạo Stored Procedure có tên là “Test”?
ALTER PROCEDURE Test…..
✅ CREATE PROCEDURE Test……
CREATE PROCEDURE TheTest….
CREATE TABLE Test…..
Câu hỏi 76: Cú pháp nào sau đây dùng để thực thi (chạy) Stored Procedure có tên là “Test”?
EXECUTE PROCEDURE Test
✅ EXECUTE Test
RUN PROCEDURE Test
RUN Test
Câu hỏi 77: Cú pháp nào sau đây dùng để xoá Stored Procedure có tên là “Test”?
DELETE PROCEDURE Test
DELETE Test
✅ DROP PROCEDURE Test
DROP Test
Câu hỏi 78: Đâu KHÔNG là lợi ích khi xây dựng Thủ tục (Stored Procedure)?
✅ Thực thi chậm hơn
Giảm tải lưu thông qua mạng
Phân cấp truy cập theo tính năng đến bảng dữ liệu
Module hóa việc truy xuất dữ liệu
Câu hỏi 79: Đâu KHÔNG là quy tắc viết câu lệnh truy vấn trong SQL?
✅ Các câu lệnh trong SQL có phân biệt chữ hoa, chữ thường
Các từ khoá không được phép viết tắt hay phân cách trên nhiều dòng
Có thể sử dụng các ký tự đặc biệt như: +, -, \, *,… để biểu diễn giá trị trong câu lệnh
Nội dung của một câu lệnh SQL có thể được trải dài trên nhiều dòng
Câu hỏi 80: Đâu là định nghĩa của truy vấn lồng phân câp
Cả hai loại đều đúng
Cả hai loại đều sai
✅ Trong mệnh đề WHERE của truy vấn con không tham chiếu đến thuộc tính của quan hệ có trong mệnh đề FROM ở truy vấn cha
Trong mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha
Câu hỏi 81: Đâu là định nghĩa của truy vấn tương quan
Cả hai loại đều đúng
Cả hai loại đều sai
Trong mệnh đề WHERE của truy vấn con không tham chiếu đến thuộc tính của quan hệ có trong mệnh đề FROM ở truy vấn cha
✅ Trong mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha
Trong mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha
Câu hỏi 82: Đâu là hàm kết hợp để tính tổng các giá trị trên một thuộc tính nào đó
AVG
COUNT
MAX
✅ SUM
Câu hỏi 83: Để đặt một thuộc tính là khóa ngoại tham chiếu đến thuộc tính khóa chính của một bảng khác, sử dụng ràng buộc nào?
✅ FOREIGN KEY
DEFAULT
PRIMARY KEY
UNIQUE
Câu hỏi 84: Để đặt một thuộc tính làm khóa chính khi tạo bảng, sử dụng ràng buộc nào?
✅ PRIMARY KEY
UNIQUE
IDENTITY
NULL
Câu hỏi 85: Để khai báo tham số thủ tục cho phép tham số nhận giá trị trả lại sau khi thủ tục thực hiện thì thực hiện thêm từ khoa gì sau khai báo tham số?
✅ OUTPUT
INPUT
RETURN
RESULT
Câu hỏi 86: Để thêm một cột mới vào bảng đã có sử dụng câu lệnh nào sau đây?
✅ ALTER TABLE table_name ADD column_definition
ALTER TABLE table_nameDROP COLUMN column_name
ALTER TABLE table_nameDELETE COLUMN column_ name
ALTER TABLE table_nameALTER COLUMN column_name
Câu hỏi 87: Để truy vấn dữ liệu từ nhiều bảng có thể thực hiện qua cách nào?
✅ Cả hai lựa chọn đều đúng
Cả hai lựa chọn đều sai
Thông qua liên kết Join
Thông qua mệnh đề Where
Câu hỏi 88: Để xem dữ liệu của view có tên là vTest, ta dùng truy vấn nào sau đây?
✅ SELECT *FROM vTest
SELECT vTest
SELECT vTest.*
VIEW vTest
Câu hỏi 89: Điều gì xảy ra sau khi ta xoá 1 bản ghi trên View?
✅ Bản ghi ở bảng nguồn bị xoá
Bản ghi ở bảng nguồn bị xoá. Trên view vẫn còn bản ghi đó.
Bản ghi trên view bị xoá. Trong bảng nguồn của view vẫn còn bản ghi đó
Cả 3 phương án đều đúng
Câu hỏi 90: Đoạn chương trình nào sau đây kiểm tra nếu @MaPhong không bắt đầu bằng ‘P’ thì thông báo “Lỗi mã” và dừng thực thi Stored Procedure?
✅ IF @MaPhong NOT LIKE ‘P%’BEGIN PRINT N‘Lỗi mã’RETURN END
IF @MaPhong NOT LIKE ‘P%’PRINT N‘Lỗi mã’RETURN
IF @MaPhong<> ‘P%’BEGINPRINT N‘Lỗi mã’RETURNEND
IF @MaPhong<> ‘P’PRINT N‘Lỗi mã’
Câu hỏi 91: Dòng code nào sau đây bị lỗi?
1 CREATE TABLE FRUITS_VEGETABLES
2 (FRUIT_TYPE VARCHAR2,
3 FRUIT_NAME CHAR (20),
4 QUANTITY NUMBER);
Dòng 1
Dòng 2
Dòng 3
Dòng 4
Câu hỏi 92: Dữ liệu sẽ được lưu ở đâu sau khi ta thêm dữ liệu qua 1 view?
Cả 3 phương án đều đúng
✅ Trong bảng nguồn của View
Trong bộ nhớ tạm
Trong View
Câu hỏi 93: Dữ liệu thêm vào View phải thoả mãn điều kiện gì?
Các ràng buộc ở bảng nguồn của View
✅ Các ràng buộc ở bảng nguồn của View và điều kiện lấy dữ liệu của view nếu có sử dụng WITH CHECK OPTION
Điều kiện lấy dữ liệu của view nếu có sử dụng WITH CHECK OPTION
Không có điều kiện gì
Câu hỏi 94: Giả sử đã có bảng tblTemp với cấu trúc giống bảng Nhanvien nhưng không thiết lập khoá chính.Ý nghĩa của Stored Procedure sau là gì?CREATE PROCEDURE spTest@t INTASWHILE @t>0BEGINSET @t=@t-1INSERT INTO tblTempSELECT TOP 1 * FROM NHANVIENWHERE (YEAR(GETDATE())-YEAR(Ngaysinh))%@t=0;END
Thêm các bản ghi từ bảng Nhanvien vào bảng tblTemp
Thực hiện @t lần lặp. Trong mỗi lần lặp, thêm các bản ghi từ bảng Nhanvien vào bảng tblTemp
Thực hiện @t lần lặp. Trong mỗi lần lặp:(1): giảm @t 1 đơn vị(2): thêm 1 bản ghi Nhân viên có tuổi chia hết cho @t từ bảng Nhanvien vào bảng tblTemp.
Thực hiện @t lần lặp. Trong mỗi lần lặp:(1): thêm 1 bản ghi Nhân viên có tuổi chia hết cho @t từ bảng Nhanvien vào bảng tblTemp.(2): giảm @t 1 đơn vị
Câu hỏi 95: Giá trị cần điền vào chỗ trống để thực hiện câu lệnh sau là gì?INSERT INTO tblNhanVien( MaNV, HoTen, GioiTinh )VALUES (11, N‘Nguyễn Thị Thủy’, ….);
✅ N’Nữ’
‘Nữ’
Nam
Nữ
Câu hỏi 96: Hiệu quả của việc chỉ ra WITH ENCRYPTION trong khi tạo Stored Procedure là gì?
Các giá trị trả ra bởi Stored Procedure sẽ được mã hoá
Các tham số truyền vào cho Stored Procedure sẽ được mã hoá
✅ Nội dung của Stored Procedure được mã hoá khi lưu
Tất cả các phương án đều đúng
Câu hỏi 97: Hiệu quả của việc chỉ ra WITH RECOMPILE trong khi tạo Stored Procedure là gì?
✅ Stored Procedure được dịch lại ở mỗi lần thực thi.
Stored Procedure được dịch khi lưu.
Stored Procedure được dịch lại ở lần thực thi đầu tiên.
Tất cả các phương án đều đúng
Câu hỏi 98: Khi tạo ràng buộc tham chiếu đến môt cột của bảng nào đó. Yều cầu cần đạt được là gì?
✅ Tên có thể khác nhau nhưng kiểu phải giống nhau
Tên giống nhau và kiểu khác nhau
Tên và kiểu của 2 cột khác nhau
Tên và kiểu của 2 cột phải giống nhau
Câu hỏi 99: Khi thực hiện câu lệnh DELETE cần xác định thành phần nào?
✅ Cả hai thành phần được liệt kê
Điều kiện chọn ra các dòng để xóa
Không có thành phần nào
Tên bảng được xóa dữ liệu
Câu hỏi 100: Khi thực hiện câu lệnh INSERT cần xác định thành phần nào?
Các cột cần bổ sung dữ liệu
Dữ liệu được bổ sung vào
✅ Tất cả các thành phần được liệt kê
Tên bảng được bổ sung
Câu hỏi 101: Khi thực hiện câu lệnh UPDATE cần xác định thành phần nào?
Các cột cần thay đổi và giá trị mới được thay đổi
Điều kiện chọn các dòng được thay đổi
✅ Tất cả các thành phần được liệt kê
Tên bảng được thay đổi
Câu hỏi 102: Khi thực hiện tạo bảng có mấy ràng buộc được sử dụng:
3
4
5
✅ 6
Câu hỏi 103: Không sửa được giá trị ở cột (trường) nào của View sau:CREATE VIEW TestASSELECT MaNV, Hoten, Year(Ngaysinh) AS NamsinhFROM NHANVIEN
Cả 3 phương án đều đúng
Hoten
MaNV
✅ Namsinh
Câu hỏi 104: Lệnh nào không phải Data Definition Language?
ALTER
CREATE
DROP
✅ SELECT
Câu hỏi 105: Mệnh đề group by trong câu lệnh SELECT được sử dụng với mục đích gì?
Cả hai lựa chọn đều đúng
Cả hai lựa chọn đều sai
Để hiển thị kết quả câu truy vấn theo một thứ tự nào đó trên các cột(ORDER BY)
✅ Để thực hiện gom nhóm các bộ theo một tiêu chí xác định để thực hiện tính toán
Câu hỏi 106: Mệnh đề nào không được sử dụng trong truy vấn SELECT của view?
FROM
✅ INTO
SELECT
WHERE
Câu hỏi 107: Mệnh đề order by trong câu lệnh SELECT được sử dụng với mục đích gì?
Cả hai lựa chọn đều đúng
Cả hai lựa chọn đều sai
✅ Để hiển thị kết quả câu truy vấn theo một thứ tự nào đó trên các cột
Để thực hiện gom nhóm các bộ theo một tiêu chí xác định để thực hiện tính toán
Câu hỏi 108: Mục đích của câu lệnh DELETE là gì?
Dùng để bổ sung thêm dữ liệu vào bảng
Dùng để thay đổi dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
✅ Dùng để xóa dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
Được sử dụng để truy xuất lấy dữ liệu từ các dòng, các cột của một hay nhiều bảng
Câu hỏi 109: Mục đích của câu lệnh INSERT là gì?
✅ Dùng để bổ sung thêm dữ liệu vào bảng
Dùng để thay đổi dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
Dùng để xóa dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
Được sử dụng để truy xuất lấy dữ liệu từ các dòng, các cột của một hay nhiều bảng
Câu hỏi 110: Mục đích của câu lệnh SELECT là gì?
Dùng để bổ sung thêm dữ liệu vào bảng
Dùng để thay đổi dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
Dùng để xóa dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
✅ Được sử dụng để truy xuất lấy dữ liệu từ các dòng, các cột của một hay nhiều bảng
Câu hỏi 111: Mục đích của câu lệnh UPDATE là gì?
Dùng để bổ sung thêm dữ liệu vào bảng
Dùng để thay đổi dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
Dùng để xóa dữ liệu của bảng một cách tự động dựa vào điều kiện nào đó
Được sử dụng để truy xuất lấy dữ liệu từ các dòng, các cột của một hay nhiều bảng
Câu hỏi 112: Ngôn ngữ SQL gồm những thành phần ngôn ngữ nào?
Các đáp án đều không đúng
Ngôn ngữ định nghĩa dữ liệu, điều khiển dữ liệu
Ngôn ngữ định nghĩa dữ liệu, thao tác dữ liệu
Ngôn ngữ định nghĩa dữ liệu, thao tác dữ liệu, điều khiển dữ liệu
Câu hỏi 113: NHANVIEN(MaNV, HoTen, NS, GioiTinh, Luong, MaPB) và PHONGBAN(MaPB, TenPB, DiaChi). Câu lệnh truy vấn sau làm gì?Select TenPB, count(MaNV) from PHONGBAN, NHANVIEN where PHONGBAN.MaPB = NHANVIEN.MaPB group by TenPB
Tất cả các phương án đều sai
Tính tổng số nhân viên
Tính tổng số nhân viên của từng phòng ban
Tính tổng số nhân viên của từng phòng ban, thông kê theo tên phòng ban
Câu hỏi 114: Phát biểu “dùng khi muốn đảm bảo việc nhập dữ liệu cho một thuộc tính nào đó phù hợp tham chiếu tới một thuộc tính của bảng quan hệ khác” là chỉ ràng buộc nào?
Check
Default
Primary Key
References
Câu hỏi 115: Phát biểu nào sau đây là đúng?
Table không chứa dữ liệu
Table và View đều chứa dữ liệu
View chứa dữ liệu
View không chứa dữ liệu
Câu hỏi 116: Phát biểu nào sau đây là sai về Stored Procedure?
Có thể yêu cầu thực thi một Stored Procedure nhiều lần
Một Stored Procedure có thể gọi thực thi một Stored Procedure khác
Stored Procedure chỉ làm việc được với các giá trị cố định
Stored Procedures là các truy vấn chứa sẵn
Câu hỏi 117: Ràng buộc Check được sử dụng với mục đích gì?
Chỉ định điều kiện để kiểm tra hợp lệ đối với dữ liệu khi thực hiện thao tác cập nhật cho bảng
Được dùng để định nghĩa khóa chính của bảng
Sử dụng nhằm bắt buộc phải nhập giá trị cho cột khi thêm dữ liệu vào bảng
Sử dụng nhằm xác định giá trị mặc định ban đầu cho cột
Câu hỏi 118: Ràng buộc Default được sử dụng với mục đích gì?
Chỉ định điều kiện để kiểm tra hợp lệ đối với dữ liệu khi thực hiện thao tác cập nhật cho bảng
Được dùng để định nghĩa khóa chính của bảng
Sử dụng nhằm bắt buộc phải nhập giá trị cho cột khi thêm dữ liệu vào bảng
Sử dụng nhằm xác định giá trị mặc định ban đầu cho cột
Câu hỏi 119: Ràng buộc Not Null được sử dụng với mục đích gì?
Chỉ định điều kiện để kiểm tra hợp lệ đối với dữ liệu khi thực hiện thao tác cập nhật cho bảng
Được dùng để định nghĩa khóa chính của bảng
Sử dụng nhằm bắt buộc phải nhập giá trị cho cột khi thêm dữ liệu vào bảng
Sử dụng nhằm xác định giá trị mặc định ban đầu cho cột
Câu hỏi 120: Ràng buộc Primary Key được sử dụng với mục đích gì?
Chỉ định điều kiện để kiểm tra hợp lệ đối với dữ liệu khi thực hiện thao tác cập nhật cho bảng
Được dùng để định nghĩa khóa chính của bảng
Sử dụng nhằm bắt buộc phải nhập giá trị cho cột khi thêm dữ liệu vào bảng
Sử dụng nhằm xác định giá trị mặc định ban đầu cho cột
Câu hỏi 121: SQL là viết tắt của
Strong Question Language
Structured Query Language
Structured Question Language
Tất cả đều sai
Câu hỏi 122: Stored Procedure Test có 1 tham số được khai báo như sau@a INT OUTPUTTruy vấn gọi thực thi Stored Procedure Test nào sau đây là đúng?
DECLARE @x INT;EXECUTE Test @a=@x OUTPUT;
DECLARE @x INT;EXECUTE Test @a=@x;
EXECUTE Test @a=10
EXECUTE Test 10
Câu hỏi 123: Stored Procedure Test có 2 tham số được khai báo như sau@a INT, @b NVARCHAR(10)Truy vấn gọi thực thi Stored Procedure Test nào sau đây là đúng?
✅ EXECUTE Test@a=3, @b=N‘Tết’
EXECUTE Test @a, @b
RUN Test @a, @b
RUN Test@a=3, @b=N‘Tết’
Câu hỏi 124: Stored Procedure Test có lệnh cuối cùng là: RETURN 1Truy vấn gọi thực thi nào sau đây là đúng và lấy được giá trị trả về từ Stored Procedure Test?
DECLARE @x INT;EXECUTE @x=Test ;SELECT @x;
DECLARE @x INT;EXECUTE Test @x;SELECT @x;
DECLARE @x INT;EXECUTE Test=@x ;SELECT @x;
EXECUTE Test
Câu hỏi 125: Tại sao Stored Procedure được Hệ quản trị thực thi nhanh hơn?
Vì chúng có sẵn trong cơ sở dữ liệu
Vì chúng có thể chứa các mã lệnh lập trình.
Vì chúng được Hệ quản trị dịch sẵn ở lần thực thi đầu tiên, các lần thực thi sau không phải dịch lại nữa.
Vì chúng không chứa dữ liệu
Câu hỏi 126: Tên cột nào sau đây là hợp lệ?
#Invoices
1966_Invoices
Catch_#22
Tất cả đều sai
Câu hỏi 127: Trật tự các bản ghi trên View được quyết định bởi?
Thứ tự các bản ghi được nhập vào bảng
Trật tự các bản ghi trong bảng mà View lấy dữ liệu
Trật tự lưu trữ dữ liệu của Hệ quản trị
Truy vấn lấy dữ liệu của View
Câu hỏi 128: Trong câu lệnh CREATE VIEW không thể chứa mệnh đề nào?
✅ INTO
GROUP BY
ORDER
WHERE
Câu hỏi 129: Trong cú pháp câu lệnh:insert into tên-bảng([ds-cột]) values( ds-giá-trị )“ds-giá-trị” phải thoả mãn yêu cầu gì?
✅ Có giá trị phải cùng số lượng và cùng kiểu với phần “ds-cột” cần chèn của bảng
Có giá trị cùng số lượng với “ds-cột” cần chèn của bảng
Không có điều kiện giới hạn gì với “ds-giá-trị”
Có giá trị phải cùng kiểu với “ds-cột” cần chèn của bảng
Câu hỏi 130: Trong SQL đâu là kiểu dữ liệu dạng số tự động tăng giá trị và không cho phép nhập lại với giá trị đã xoá?
✅ Autonumber
Text
Number
Date/Time
Câu hỏi 131: Trong SQL Server, kết quả của biểu thức sau là gì?=Round(234.3856 , 1)
✅ 234.4
234.3
234
230
Câu hỏi 132: Trong View, nếu có mệnh đề ORDER BY thì phải có sử dụng kèm theo từ khoá nào?
GROUP BY
INTO
TOP …
WHERE
Câu hỏi 133: Truy vấn nào được sử dụng trong nội dung View
DELETE
INSERT
SELECT
UPDATE
Câu hỏi 134: Truy vấn nào không thực hiện được trên View sau
CREATE VIEW Test
AS
SELECT MaNV, Hoten, Ngaysinh
FROM NHANVIEN
WHERE Year(Ngaysinh)<1990 WITH CHECK OPTION
SELECT *FROM Test
SELECT GioitinhFROM Test
SELECT Ngaysinh, HotenFROM Test
SELECT NgaysinhFROM Test
Câu hỏi 135: Truy vấn nào không thực hiện được trên View sau:CREATE VIEW TestASSELECT COUNT(MaNV) AS SoNVFROM NHANVIENWHERE Year(Ngaysinh)=1990
Cả 3 phương án đều đúng
DELETEFROM Test
INSERT INTO TestVALUES(20)
UPDATE TestSET SoNV=19
Câu hỏi 136: Truy vấn nào không thực hiện được trên view sau:CREATE VIEW TestASSELECT DISTINCT Year(Ngaysinh) AS NamsinhFROM NHANVIEN
Cả 3 phương án đều đúng
DELETEFROM Test
INSERT INTO TestVALUES (2014)
UDPATE TestSET Namsinh=2014WHERE Namsinh<2014
Câu hỏi 137: Truy vấn nào không thực hiện được trên View sauCREATE VIEW TestASSELECT MaNV, Hoten, NgaysinhFROM NHANVIENWHERE Year(Ngaysinh)<1990WITH CHECK OPTION
Cả 3 phương án đều đúng
DELETEFROM Test
UPDATE TestSET Hoten=’A’WHERE MaNV=’x’
UPDATE TestSET Ngaysinh=’09-Dec-2003’WHERE MaNV=’x’
Câu hỏi 138: Truy vấn nào sau đây dùng để thực thi Stored Procedure Test tạo bởi truy vấn:CREATE PROCEDURE Test@a char(9)ASSELECT * FROM DEANWHERE MaDA=@a
EXECUTE Test ‘DA01234567’
EXECUTE Test @a= ‘DA01234567’
Tất cả các phương án đều đúng
Câu hỏi 139: Truy vấn nào sau đây tạo được Stored Procedure cho xem (lấy) danh sách các nhân viên ít tuổi nhất?
CREATE PROCEDURE spNhanvienTreASBEGINDECLARE @m INT;SELECT @m=MAX(YEAR(Ngaysinh)) FROM NHANVIEN;SELECT *FROM NHANVIENWHERE YEAR(Ngaysinh)=@m;END
CREATE PROCEDURE spNhanvienTreASBEGINDECLARE @m INT;SELECT TOP 1 @m=YEAR(Ngaysinh))FROM NHANVIENORDER BY Ngaysinh;SELECT *FROM NHANVIENWHERE YEAR(Ngaysinh)=@m;END
CREATE PROCEDURE spNhanvienTreASSELECT *FROM NHANVIENORDER BY NGAYSINH DESC;
CREATE PROCEDURE spNhanvienTreASSELECT TOP 1 *FROM NHANVIENORDER BY NGAYSINH DESC;
Câu hỏi 140: Truy vấn nào sau đây tạo được Stored Procedure trả ra được giá trị lớn nhất trong 3 tham số truyền vào?
CREATE PROCEDURE spMax@a INT, @b INT, @c INTASIF @a<@b@a=@bIF @a<@c@a=@c
CREATE PROCEDURE spMax@a INT, @b INT, @c INTASIF @a<@b@a=@bIF @a<@c@a=@cRETURN @a;
CREATE PROCEDURE spMax@a INT, @b INT, @c INTASIF @a<@bSET @a=@bIF @a<@cSET @a=@c
CREATE PROCEDURE spMax@a INT, @b INT, @c INTASIF @a<@bSET @a=@bIF @a<@cSET @a=@cRETURN @a;
Câu hỏi 141: Truy vấn nào sau đây tạo ra một Stored Procedure lấy danh sách nhân viên theo giới tính chưa biết trước ở tại thời điểm thiết kế?
ALTER PROCEDURE Test@b NVARCHAR(3)ASSELECT *FROM NHANVIENWHERE GT= @b
ALTER PROCEDURE TestASSELECT *FROM NHANVIENWHERE GT= ‘NAM’
CREATE PROCEDURE Test@b NVARCHAR(3)ASSELECT *FROM NHANVIENWHERE GT=@b
CREATE PROCEDURE TestASSELECT *FROM NHANVIEN
Câu hỏi 142: Truy vấn sau đây cần sửa những gì?CREATE PROCEDURE TestISSELECT 2+3 AS T
✅ Thay “IS” bằng “AS”
Bỏ “IS”
Bỏ từ khoá “AS”
Bỏ từ khoá “AS” rồi thay “IS” bằng “AS”
Câu hỏi 143: Truy vấn sau đây sai cú pháp, hãy giải thích tại sao?CREATE PROCEDURE TestSELECT *FROM NHANVIEN
Thiếu từ khoá “AS” sau mệnh đề SELECT
Thiếu từ khoá “AS” trước mệnh đề mệnh đề FROM
Thiếu từ khoá “AS” trước truy vấn SELECT
Thiếu từ khoá “STORED” trước “PROCEDURE”
Câu hỏi 144: Truy vấn sửa View nào sau đây là đúng?
ALTER TestASSELECT *FROM DEAN
ALTER VIEW TestASSELECT DEANFROM DEAN
ALTER VIEW TestASSELECT MaDAFROM DEAN
UPDATE VIEW TestASSELECT *FROM DEAN
Câu hỏi 145: Truy vấn tạo View nào sau đây là đúng?
CREATE TestASSELECT *FROM DEAN
CREATE VIEW TestASSELECT *FROM DEAN
CREATE VIEW TestASSELECTFROM DEAN
CREATE VIEW TestSELECT *FROM DEAN
Câu hỏi 146: Truy vấn xoá View nào sau đây là đúng?
DELETE test
DELETE VIEW Test
DROP Test
DROP VIEW Test
Câu hỏi 147: Từ khoá nào sau đây được dùng khi tạo View?
ALTER
CREATE
DROP
NEW
Câu hỏi 148: Từ khoá nào sau đây không dùng khi tạo View?
AS
FROM
SELECT
SET
Câu hỏi 149: View có thể được sử dụng để
Cả 3 phương án đều đúng
Phân cấp truy cập đến dữ liệu ở mức bản ghi
Phân cấp truy cập đến dữ liệu ở mức trường
Thay đổi cách nhìn với dữ liệu trong các bảng
Câu hỏi 150: Ý nghĩa của hàm AVG(HeSL) là gì?
✅ Tính trung bình các giá trị số trong cột HeSL
Tính giá trị lớn nhất của các giá trị số trong cột HeSL
Tính giá trị nhỏ nhất của các giá trị số trong cột HeSL
Tính tổng các giá trị số trong cột HeSL
Câu hỏi 151: Ý nghĩa của hàm SUM(HeSL) là gì?
✅ Tính tổng các giá trị số trong cột HeSL
Tính trung bình các giá trị số trong cột HeSL
Tính giá trị nhỏ nhất của các giá trị số trong cột HeSL
Tính giá trị lớn nhất của các giá trị số trong cột HeSL

---


---



---



---




---
