Hệ quản trị CSDL - IT10 (253)
Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:

Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where sGioitinh = N’Nữ’
Cho đoạn lệnh:
declare @IX int =100
while (@IX <=110)
begin print @IX
if @IX=105 break
set @IX = @IX +1
END
Mấy dòng dữ liệu được in ra
Cho CSDL quản lý sản phẩm với bảng tblNHANVIEN gồm các dòng dữ liệu:

Cho biết kết quả của câu lệnh truy vấn sau:
Select sHoten
From tblNHANVIEN
Where fHSL<3.33
Cho bảng tblCTHOADON (sMaHD, sMaSP, iSL, fDG, fThanhTien) và tblHOADON(dNgaylap, sMaHD, sSdtKH, sMaNV)
Đoạn Trigger sau để thực hiện yêu cầu gì:
CREATE TRIGGER suaCTHD
ON tblCTHOADON
Instead of update
As
If update(iSL)
Begin
Declare int @sl, float @dg, nvarchar @soHD
Select @sl = iSL, @dg = fDG, @soHD = sMaHD
From insterted
Update tblHOADON
Set TongTien = TongTien + @sl * @dg
Where sMaHD = @soHD
End
A. Khi cập nhật giá trị tại cột Số lượng (iSL) trong bảng tblCTHOADON thì thành tiền tương ứng của mặt hàng đó trong được tính toán lại tương ứng
B. Khi cập nhật dữ liệu trong bảng tblCTHOASDON thì thành tiền tương ứng của mặt hàng đó được tính toán lại tương ứng
C. Khi thêm một dòng mới vào bảng tblCTHOADON thì số tiền trong hóa đơn được cập nhật tương ứng
D. Khi cập nhật giá trị tại cột đơn giá (fDG) của sản phẩm mua thì thành tiền tương ứng của mặt hàng đó trong Hóa đơn được tính toán lại tương ứng
Thứ tự kiêm tra ràng buộc toàn vẹn dữ liệu là gì?
A. Trigger For/After -> Trigger instead of -> Constraint
B. Constraint -> Trigger instead of ->Trigger For/After
C. Trigger instead of -> Constraint -> Trigger For/After
D. Constraint -> Trigger instead of -> Trigger For/After
Cho đoạn mã tạo trigger:
CREATE TRIGGER NV_GT
ON NHANVIEN
INSTEAD OF INSERT
As
BEGIN
declare @Gt as nvarchar(3)
select @gt = GT from INSERTED
if ( @gt not in ('Nam', N'Nữ') )
Raiserror('Ban nhap sai Gioi tinh',16,10)
END
Cho biết ý nghĩa của dòng code “select @gt = GT from INSERTED”
A. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng INSERTED khi thêm với bảng NHÂN VIÊN
B. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng DELETED khi thêm với bảng NHÂN VIÊN
C. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng INSERTED khi sửa với bảng NHÂN VIÊN
D. Lấy giá trị đang được nhập tạm thời của thuộc tính Giới tính trong bảng DELETED khi xóa với bảng NHÂN VIÊN
Cho các bảng
LOP( malop, TenLop, NienKhoa, SiSo)
SINHVIEN ( MaSV, Hoten, NS, GT, maLop)
Viết trigger khi sưar một lớp nào đó thì các sinh viên thuộc lớp đó cũng sửa theo.
A. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
B. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
C. CREATE TRIGGER UpdateMaLop
ON LOP
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
END
END
D. CREATE TRIGGER UpdateMaLop
ON SINHVIEN
FOR UPDATE
AS
BEGIN
IF UPDATE( MaLop)
BEGIN
DECLARE @MaLopCu nvarchar(9), @MaLopMoi nvarchar(9)
SELECT @MaLopCu = MaLop FROM DELETED
SELECT @MaLopMoi = MaLop FROM INSERTED
If ( EXISTS (select MaLop from SINHVIEN Where MaLop= @MaLopCu) )
UPDATE SINHVIEN SET MaLop = @MaLopMoi
WHERE MaLop = @MaLopCu
END
END
Câu lệnh sau thực hiện công việc gì?
DENY SELECT, INSERT, UPDATE
ON TacGia
TO db_user1, db_user2
A. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia với tất cả các tài khoản
B. Từ chối quyền được phép chọn – chèn và sửa trên bảng TacGia với tài khoản db_user1 và db_user2
C. Từ chối quyền được phép xoa – chọn và sửa trên bảng TacGia với tài khoản db_user1 và db_user2
D. Từ chối quyền được phép chọn sửa trên bảng TacGia với tài khoản db_user1 và db_user2
Câu lệnh
DELETE FROM tblNV
WHERE fLuong < 2000
sẽ thực hiện yêu cầu gì?
A. Xóa nhân viên có lương dưới 2000
B. Thêm dữ liệu
C. Cập nhật dữ liệu
D. Xóa bảng
Câu lệnh để hủy bỏ tất cả các quyền trên CSDL đối với tài khoản db_user1
A. REVOKE Select, Insert, Delete
FROM db_user
B. REVOKE ALL
C. REVOKE
FROM db_user
D. REVOKE ALL
FROM db_user1
Cho CSDL “QLNV” với bảng tblPhongBan phân mảnh dọc theo nguyên tắc sau:
-Server1 gồm các thông tin: MaPhong, TenPhong
-Server2 gồm các thông tin: MaPhong, DiaDiem, DienThoai
Đoạn code để chèn thêm một phòng ban mới vào bảng (thủ tục được viết trên Server2)
A. Create Proc spInsertPhongban (@ma varchar(10), @ten nVarchar(20), @diachi nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into tblPhongBan Values(@ma, @diachi, @đienthoai)
Insert Into Server1.QLNV.dbo.tblPhongBan Values(@ma,@ten)
print N'Thêm thành công'
End
B. Create Proc spInsertPhongban (@ma varchar(10), @ten nVarchar(20), @diachi nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into tblPhongBan Values(@ma, @ten, @diachi, @đienthoai)
print N'Thêm thành công'
End
C. Không có đáp án nào đúng
D. Create Proc spInsertPhongban (@ma varchar(10), @ten nVarchar(20), @diachi nvarchar(30), @dienthoai varchar(11))
as
Begin
Insert Into Server1.QLNV.dbo.tblPhongBan Values(@ma, @diachi, @đienthoai)
Insert Into tblPhongBan Values(@ma,@ten)
print N'Thêm thành công'
End
Câu lệnh
SELECT *
FROM tblNV
WHERE sTen LIKE '_i%'
sẽ lọc ra các tên như thế nào?
A. Tên có chứa 'i'
B. Tên bắt đầu bằng chữ 'i'
C. Tên có hai ký tự
D. Tên có ký tự thứ hai là 'i'
Tại sao việc làm sạch dữ liệu (data cleaning) lại quan trọng trong Big Data?
A. Để tránh sai lệch kết quả phân tích do dữ liệu lỗi
B. Để tăng dung lượng lưu trữ
C. Để tăng số lượng dòng
D. Để làm đẹp giao diện
Câu lệnh nào để cập nhật lương tăng thêm 10% chỉ cho các nhân viên mà có mã nhân viên không tồn tại ở bảng ở trong bảng hoá đơn?
A. UPDATE tblNhanVien
SET fLuong = fLuong*1.1
WHERE tblNhanVien.sMaNV = tblHoaDon.sMaNV
B. UPDATE tblNhanVien
SET fLuong = fLuong*1.1
EXCEPT sMaNV IN tblHoaDon.sMaNV
C. UPDATE tblNhanVien
SET fLuong = fLuong*1.1
WHERE sMaNV NOT IN (SELECT sMaNV from tblHoaDon)
D. UPDATE tblNhanVien
SET fLuong = fLuong*1.1
MERGE tblNhanVien.sMaNV = tblHoaDon.sMaNV
Cho bảng tblSANPHAM(sMaSP, sTenSP, iSoluong, fDongia, sXuatSu). Đoạn thủ tục sau thực hiện yêu cầu xử lý gì?
CREATE PROC spTenSP(float @a, float @b)
As
BEGIN
Select sTenSP
From tblSANPHAM
Where fDonGia between @a and @b
END
A. Cho danh sách thông tin đầy đủ tất cả các sản phẩm có giá trong khoảng từ @a đến @b
B. Cho danh sách tên sản phẩm có đơn giá trong khoảng từ @a đến @b với @a và @b là tham số truyền vào
C. Cho danh sách các sản phẩm có đơn giá trên @b và dưới @b, với @a và @b là tham số truyền vào
D. Cho danh sách tên các sản phẩm
Khi nào cần dùng đến ràng buộc `FOREIGN KEY` trong thực hiện câu lệnh CREATE TABLE?
A. Khi tạo bảng không có dữ liệu
B. Khi muốn kiểm tra giá trị nhập vào của một thuộc tính thỏa mãn một điều kiện nào đó
C. Khi muốn lưu giá trị tự động cho một thuộc tính
D. Khi muốn đảm bảo liên kết giữa hai bảng, cho phép giá trị của một thuộc tính tham chiếu liên kết đến một thuộc tính của bảng khác
Câu lệnh sau có ý nghĩa gì?
SELECT sTen, fLuong
FROM tblNV
WHERE fLuong >= 5000
A. Chọn toàn bộ danh sách nhân viên
B. Chọn danh sách gồm thông tin họ tên và lương của các nhân viên mà có lương từ 5000 trở lên
C. Chọn thông tin họ tên nhân viên
D. Chọn danh sách gồm thông tin họ tên và lương của các nhân viên mà có lương nhỏ hơn 5000
Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Câu lệnh để có được bảng đầy đủ danh sách các nhân viên (cả nam và nữ) từ Server 2 là gì?
A. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
B. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.tblNhanvien
C. Select MaNV, TenNV, GioiTinh, DiaChi
from
Server1.QLNV.dbo.tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From tblNhanvien
D. Select MaNV, TenNV, GioiTinh, DiaChi
from
tblNhanvien
Union
Select MaNV, TenNV, GioiTinh, DiaChi
From Server2.QLNV.dbo.tblNhanvien
Điều kiện của của phân mảnh phải thoản mãn là gì khi thực hiện phân mảnh ngang
A. Cả hai điều kiện đều đúng
B. Các phân mảnh phải đảm bảo tách rời Ri ∩ Rj = ϕ
C. Các phân mảnh không tách rời, phải có cùng thuộc tính khóa chính
D. Cả hai điều kiện đều sai
@V_GRADE nhận giá trị 'C' thì @V_PRICE sẽ nhận giá trị thế nào?
IF @V_PRICE > 1000
Set @V_GRADE = 'A'
ELSE
IF @V_PRICE > 900
Set @V_GRADE = 'B'
ELSE
IF @V_PRICE > 800 Set
@V_GRADE = 'C'
ELSE
IF @V_PRICE > 600 Set
@V_GRADE = 'D'
ELSE Set
@V_GRADE = 'E'
A. @V_PRICE lớn hơn 1000
B. @V_PRICE trong khoảng 601 và 800 V_PRICE lớn hơn 800
C. @V_PRICE trong khoảng 801 và 900 V_PRICE lớn hơn 1000
D. @V_PRICE lớn hơn 800