Hệ quản trị CSDL - IT10 (253)
Cho CSDL quản lý sản phẩm với bảng tblSANPHAM gồm các dòng dữ liệu:
Cho biết kết quả của câu lệnh truy vấn sau:
Select sTenSP
From tblSANPHAM
Where fDonGia between 50,000 and 70,000
Muốn cập nhật đồng thời nhiều cột trong một lệnh UPDATE, cú pháp đúng là?
A. UPDATE bảng SET cột1 = giá_trị1, cột2 = giá_trị2
B. UPDATE bảng SET (cột1, cột2) = (giá_trị1, giá_trị2)
C. MODIFY bảng SET cột1 TO giá_trị1, cột2 TO giá_trị2
D. UPDATE bảng SET cột1, cột2 = giá_trị1, giá_trị2
Có mấy phương pháp thực hiện phân mảnh dữ liệu
Cho CSDL “QuanLyBH” được cài đặt tại ServerAo và ServerThat như sau:
*Tại ServerAo có chứa bảng tblNV2(MaNV, TrinhDo, ChuyenNganh, Nam)
*Tại ServerThat có bảng tblNV(MaNV, HoTen, NgaySinh)
Tại ServerThat câu lệnh truy vấn để cho danh sách đầy đủ thông tin gồm MaNV, HoTen, TrinhDo được viết như thế nào
A. Seclect MaNV, HoTen, TrinhDo From tblNV, ServerAo.QuanLyBH.dbo.tblNV2 Where tblNV.MaNV = ServerAo.QuanLyBH.dbo.tblNV2.MaNV
B. Seclect tblNV.MaNV, HoTen, TrinhDo From tblNV, tblNV2 Where tblNV.MaNV = tblNV2.MaNV
C. Seclect tblNV.MaNV, HoTen, TrinhDo From tblNV, QuanLyBH.tblNV2 Where tblNV.MaNV = QuanLyBH.tblNV2.MaNV
D. Seclect tblNV.MaNV, HoTen, TrinhDo From tblNV, ServerAo.QuanLyBH.dbo.tblNV2 Where tblNV.MaNV = ServerAo.QuanLyBH.dbo.tblNV2.MaNV
Cho T-SQL block sau, dòng nào gây ra lỗi?
1. DECLARE
2. @V_DEPTNO INT
3. BEGIN
4. SET @V_DEPTNO = 20
5. SELECT ENAME, SALARY
FROM EMP WHERE DEPTNO = @V_DEPTNO
6. END
A. Không có dòng nào gây lỗi.
B. Dòng 4
C. Dòng 5
D. Dòng 2
Cho CSDL “QLNV” với bảng tblNhanVien(MaNV, TenNV, GioiTinh, DiaChi) phân mảnh ngang theo nguyên tắc sau:
-Server1 gồm các nhân viên Nữ
-Server2 gồm các nhân viên Nam
Đoạn code để chèn thêm một nhân viên mới vào bảng (thủ tục được viết trên Server2)
A. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30)) as Begin If @gioitinh = ‘Nam’ Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi) Else Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi) print N'Thêm thành công' End
B. Không có đáp án đúng
C. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30)) as Begin If @gioitinh = ‘Nam’ Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi) Else Insert Into Server1.QLNNV.dbo.tblNhanvien Values(@ma,@ten,@gioitinh,@diachi) print N'Thêm thành công' End
D. Create Proc spInsertNhanvien (@ma varchar(10), @ten nVarchar(20), @gioitinh nvarchar(3), @diachi varchar(30)) as Begin If @gioitinh = ‘Nam’ Insert Into tblNhanvien Values(@ma,@ten,@gioitinh,@diachi) Else Insert Into Server1.tblNhanvien Values(@ma,@ten,@gioitinh,@diachi) print N'Thêm thành công' End
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
Câu lệnh để có được bảng đầy đủ các thông tin: MaPhong, TenPhong, DiaDiem, DienThoai từ Server 2 là gì?
A. Select a.MaPhong, TenPhong, DiaDiem, DienThoai From Server1.QLNV.dbo.tblPhongban a, tblPhongBan b
B. Select MaPhong, TenPhong, DiaDiem, DienThoai From Server1.QLNV.dbo.tblPhongban a, tblPhongBan b Where a.MaPhong = b.MaPhong
C. Select a.MaPhong, TenPhong, DiaDiem, DienThoai From QLNV.dbo.tblPhongban a, tblPhongBan b Where a.MaPhong = b.MaPhong
D. Select a.MaPhong, TenPhong, DiaDiem, DienThoai From Server1.QLNV.dbo.tblPhongban a, tblPhongBan b Where a.MaPhong = b.MaPhong
Để xoá tài khoản đăng nhập “Test” đã có trong hệ thống thì sử dụng câu lệnh là gì?
A. DROP ACCOUNT Test
B. DELETE Test
C. DELETE LOGIN Test
D. DROP LOGIN Test
Câu lệnh CREATE LOGIN <tên đăng nhập> FROM WINDOWS
[ WITH [ DEFAULT_DATABASE = <Tên CSDL> ]
được dùng để làm gì?
A. Cả hai đáp án đều sai
B. Tạo login với quyền đăng nhập SQL Server
C. Cả hai đáp án đều đúng
D. Tạo login với quyền đăng nhập Window
Mô hình phục hồi thực hiện: “Là mô hình phục hồi toàn bộ hoạt động giao dịch của dữ liệu (Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).”
A. Bulk-Logged Recovery Model
B. Simple Recovery Model
C. Full Recovery model
Câu lệnh để thực hiện Cấp phát cho tài khoản ‘db_user1’ được quyền xem và cập nhật dữ liệu trên cột ‘hoten, diachi, và Luong của bảng nhân viên’ được viết như thế nào?
A. GRANT SELECT ON NHANVIEN TO db_user1
B. GRANT SELECT, UPDATE ON NHANVIEN TO db_user1
C. GRANT UPDATE ON NHANVIEN( hoten, diachi, luong)
D. GRANT SELECT, UPDATE ON NHANVIEN( hoten, diachi, luong) TO db_user1
Sự khác biệt cơ bản giữa dettach và xóa CSDL?
A. CSDL xóa hẳn nhưng instance vẫn quản ly
B. CSDL vẫn còn trong máy nhưng tạm thời bị tách khỏi Instance
C. CSDL xóa hẳn trong máy
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
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
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
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 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
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 đ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 sGioitinh = N’Nữ’