NEW
Font size
WorksheetsChương 3: View & Index
Total questions: 30
Worksheet time: 15mins
Câu 1. View trong SQL Server là gì?
Một bảng thật lưu dữ liệu.
Một bảng ảo, chỉ lưu câu truy vấn.
Một bảng chứa chỉ mục.
Một loại thủ tục lưu trữ.
Câu 2. Ưu điểm chính của View là:
Tăng tốc độ cập nhật dữ liệu.
Bảo mật dữ liệu, đơn giản hóa truy vấn.
Giảm dung lượng lưu trữ.
Bắt buộc phải có trong mọi database.
Câu 3. Lệnh nào dùng để định nghĩa lại một View mà không làm mất quyền đã cấp?
ALTER VIEW
UPDATE VIEW
MODIFY VIEW
CREATE OR REPLACE VIEW
Câu 4. Mỗi bảng trong SQL Server có thể có bao nhiêu Clustered Index?
Không giới hạn.
1.
2.
Tối đa 16.
Câu 5. Chỉ mục nào được SQL Server tự động tạo khi có ràng buộc PRIMARY KEY hoặc UNIQUE?
Clustered Index
Non-clustered Index
Implicit Index
Composite Index
Câu 6. Khi nào không nên sử dụng Index?
Với bảng rất nhỏ.
Với cột ít giá trị phân biệt.
Với bảng có nhiều thao tác cập nhật.
Tất cả các đáp án trên.
Câu 7. Cú pháp đúng để tạo một Non-Clustered Index:
CREATE NONCLUSTERED INDEX idx_name ON Table(column);
CREATE INDEX NONCLUSTERED idx_name Table(column);
CREATE NONCLUSTER INDEX idx_name ON Table(column);
CREATE NONCLUSTERED idx_name ON Table(column);
Câu 8. Tạo View v_DanhSachVatTu hiển thị toàn bộ bảng VATTU. Lệnh đúng là:
CREATE VIEW v_DanhSachVatTu AS SELECT * FROM VATTU;
CREATE VIEW v_DanhSachVatTu SELECT * FROM VATTU;
CREATE VIEW v_DanhSachVatTu AS VATTU;
CREATE VIEW v_DanhSachVatTu (SELECT * FROM VATTU);
Câu 9. Tạo View v_TonKhoHienTai gồm Mã vật tư, SL đầu, SL nhập, SL xuất, SL cuối từ TONKHO. Câu lệnh đúng:
CREATE VIEW v_TonKhoHienTai AS SELECT * FROM TONKHO;
CREATE VIEW v_TonKhoHienTai AS SELECT Mavtu, Sldau, Tongslnhap, Tongslxuat, Slcuoi FROM TONKHO;
CREATE VIEW v_TonKhoHienTai (SELECT … FROM TONKHO);
CREATE v_TonKhoHienTai SELECT … FROM TONKHO;
Câu 10. Tạo View v_DonDatHangChiTiet gồm số đơn, ngày đặt, tên NCC. Cần JOIN giữa:
DONDH và CTDONDH
DONDH và NHACC
NHACC và VATTU
CTDONDH và VATTU
Câu 11. Để tạo View hiển thị danh sách phiếu nhập kèm tên nhà cung cấp, cần JOIN:
PNHAP - DONDH - NHACC
PNHAP - CTPNHAP - VATTU
PNHAP - TONKHO
NHACC - VATTU
Câu 12. Để xem tất cả View đã tạo trong DB:
SELECT * FROM sys.indexes
SELECT * FROM sys.views
SELECT * FROM INFORMATION_SCHEMA.TABLES
EXEC sp_helpindex
Câu 13. Tạo View v_TongNhapTheoDon gồm tổng SL nhập của từng phiếu nhập:
SELECT Sopn, SUM(Slnhap) FROM CTPNHAP GROUP BY Sopn
SELECT Sodh, SUM(Slnhap) FROM CTPNHAP GROUP BY Sodh
SELECT Sopn, COUNT(Slnhap) FROM CTPNHAP GROUP BY Sopn
SELECT Sopn, MAX(Slnhap) FROM CTPNHAP GROUP BY Sopn
Câu 14. Tạo Index IX_VATTU_Ten trên cột Tenvtu của bảng VATTU.
CREATE INDEX IX_VATTU_Ten ON VATTU(Tenvtu);
CREATE NONCLUSTERED INDEX IX_VATTU_Ten VATTU(Tenvtu);
CREATE IX_VATTU_Ten INDEX ON VATTU(Tenvtu);
CREATE INDEX ON VATTU IX_VATTU_Ten(Tenvtu);
Câu 15. Chỉ mục PK_VT của bảng VATTU được tạo tự động khi khai báo:
FOREIGN KEY
PRIMARY KEY
UNIQUE
CHECK
Câu 16. Muốn xóa View v_DanhSachVatTu:
DROP INDEX v_DanhSachVatTu;
DROP VIEW v_DanhSachVatTu;
DELETE VIEW v_DanhSachVatTu;
REMOVE VIEW v_DanhSachVatTu;
Câu 17. Muốn đổi tên Index IX_VATTU_Ten thành IX_VATTU_TenMoi:
ALTER INDEX IX_VATTU_Ten RENAME TO IX_VATTU_TenMoi;
EXEC sp_rename 'VATTU.IX_VATTU_Ten','IX_VATTU_TenMoi','INDEX';
RENAME INDEX IX_VATTU_Ten TO IX_VATTU_TenMoi;
UPDATE INDEX IX_VATTU_Ten TO IX_VATTU_TenMoi;
Câu 18. Tạo View v_TongTienNhap tính tổng tiền nhập (SlnhapDgnhap) cho từng phiếu:
SELECT Sopn, SUM(SlnhapDgnhap) AS TongTien FROM CTPNHAP GROUP BY Sopn
SELECT Sopn, SUM(Dgnhap) FROM CTPNHAP GROUP BY Sopn
SELECT Sopn, COUNT(*) FROM CTPNHAP GROUP BY Sopn
SELECT Sopn, MAX(Dgnhap) FROM CTPNHAP GROUP BY Sopn
Câu 19. Để cải thiện tốc độ tìm kiếm nhanh theo mã vật tư trong CTPXUAT, nên tạo Index trên:
Cột Sopx
Cột Slxuat
Cột Mavtu
Cột Dgxuat
Câu 20. Khi tạo View v_DonHangTheoVatTu, muốn hiện tổng SL đặt theo mã VT, cần GROUP BY:
Sodh
Mavtu
Tenncc
Ngaydh
Câu 21. Tạo Unique Index để đảm bảo tên nhà cung cấp không trùng:
CREATE UNIQUE INDEX IX_NHACC_Ten ON NHACC(Tenncc);
CREATE UNIQUE INDEX IX_TenNCC ON VATTU(Tenncc);
CREATE INDEX IX_NHACC_Ten ON NHACC(Tenncc);
CREATE UNIQUE INDEX IX_NHACC_Ten (Tenncc);
Câu 22. Để xem danh sách Index của bảng VATTU:
EXEC sp_helpindex VATTU;
SELECT * FROM sys.indexes WHERE object_id=OBJECT_ID('VATTU');
Cả A và B
Không thể xem
Câu 23. Tạo View v_XuatChiTiet hiển thị số PX, ngày xuất, tên KH, tên VT, SL xuất. Cần JOIN:
PXUAT - CTPXUAT - VATTU
PXUAT - PNHAP - CTPNHAP
VATTU - TONKHO
NHACC - DONDH
Câu 24. Muốn rebuild lại Index IX_VATTU_Ten:
ALTER INDEX IX_VATTU_Ten ON VATTU REBUILD;
UPDATE INDEX IX_VATTU_Ten ON VATTU;
RECREATE INDEX IX_VATTU_Ten ON VATTU;
REPAIR INDEX IX_VATTU_Ten ON VATTU;
Câu 25. Tạo Composite Index trên bảng CTPNHAP gồm (Sopn, Mavtu):
CREATE INDEX IX_CTPNHAP_Sopn_Mavtu ON CTPNHAP(Sopn,Mavtu);
CREATE COMPOSITE INDEX IX_CTPNHAP_Sopn_Mavtu ON CTPNHAP(Sopn,Mavtu);
CREATE NONCLUSTERED INDEX IX_CTPNHAP_Sopn_Mavtu (Sopn,Mavtu);
Cả A và C đều đúng
Câu 26. Tạo View v_TonKhoVatTu tính tổng SL còn cuối cho từng vật tư:
SELECT Mavtu, SUM(Slcuoi) FROM TONKHO GROUP BY Mavtu
SELECT Mavtu, COUNT(Slcuoi) FROM TONKHO GROUP BY Mavtu
SELECT Mavtu, MAX(Slcuoi) FROM TONKHO GROUP BY Mavtu
SELECT Mavtu, AVG(Slcuoi) FROM TONKHO GROUP BY Mavtu
Câu 27. Nếu tạo quá nhiều Index trên 1 bảng:
Giúp SELECT nhanh hơn
Tốn dung lượng và làm chậm INSERT/UPDATE/DELETE
Không ảnh hưởng gì
SQL Server tự tối ưu bỏ bớt Index
Câu 28. Tạo View v_PNhapChiTiet hiển thị số PN, ngày nhập, tên VT, SL nhập, đơn giá. Cần JOIN:
PNHAP - CTPNHAP - VATTU
PNHAP - DONDH - NHACC
CTPNHAP - TONKHO
NHACC - VATTU
Câu 29. Muốn xóa Index IX_VATTU_Ten:
DROP INDEX IX_VATTU_Ten;
DROP INDEX IX_VATTU_Ten ON VATTU;
DELETE INDEX IX_VATTU_Ten;
REMOVE INDEX IX_VATTU_Ten;
Câu 30. Tạo View v_NCC_KhongSDT để liệt kê NCC có Dienthoai='Chưa có':
SELECT * FROM NHACC WHERE Dienthoai IS NULL
SELECT * FROM NHACC WHERE Dienthoai=''
SELECT * FROM NHACC WHERE Dienthoai='Chưa có'
SELECT * FROM NHACC WHERE Dienthoai=0
