**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 Các từ khoá không được phép viết tắt hay phân cách trên nhiều dòng Có thể sử dụng các ký tự đặc biệt như: +, -, \, *,… để biểu diễn giá trị trong câu lệnh Nội dung của một câu lệnh SQL có thể được trải dài trên nhiều dò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 --- --- --- --- ---