Đề thi SQL Server

Câu 1. Câu lệnh tạo bảng nào dưới đây là ĐÚNG:

a) CREATE TABLE VatTu

(mavt CHAR(4) NOT NULL,

tenvt VARCHAR(30),

phantram TINYINT

CONSTRAINT PRK_VatTu_mavt PRIMARY KEY(mavt),

CONSTRAINT DEF_VatTu_phantram DEFAULT 20 FOR phantram)

b) CREATE TABLE VatTu

(mavt CHAR(4) NOT NULL,

tenvt VARCHAR(30),

phantram TINYINT

CONSTRAINT DEF_VatTu_phantram DEFAULT 20 FOR phantram

CONSTRAINT PRK_VatTu_mavt PRIMARY KEY(mavt))

c) CREATE TABLE VatTu

(mavt CHAR(4) NOT NULL,

tenvt VARCHAR(30),

phantram TINYINT

CONSTRAINT DEF_VatTu_phantram DEFAULT 20

CONSTRAINT PRK_VatTu_mavt PRIMARY KEY(mavt))

d) CREATE TABLE VatTu

(mavt CHAR(4) NOT NULL,

tenvt VARCHAR(30),

phantram TINYINT,

CONSTRAINT DEF_VatTu_phantram DEFAULT 20

CONSTRAINT PRK_VatTu_mavt PRIMARY KEY(mavt))

 

doc12 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 3487 | Lượt tải: 1download
Tóm tắt nội dung Đề thi SQL Server, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 FROM Ket_Qua kq INNER JOIN Sinh_Vien sv ON kq.masv=sv.masv 
 WHERE makh='TH' GROUP BY kq.masv ORDER BY AVG(diem) DESC)
 GROUP BY kq.masv,ho,ten
SELECT kq.masv,ho,ten,AVG(diem) 
FROM Ket_Qua kq INNER JOIN Sinh_Vien sv ON kq.masv=sv.masv 
GROUP BY kq.masv,ho,ten 
HAVING AVG(diem) IN (
SELECT TOP 1 AVG(diem)
FROM Ket_Qua kq INNER JOIN Sinh_Vien sv ON kq.masv=sv.masv 
 	WHERE makh='TH' GROUP BY kq.masv ORDER BY AVG(diem) DESC)
SELECT kq.masv,ho,ten,AVG(diem) 
FROM Ket_Qua kq INNER JOIN Sinh_Vien sv ON kq.masv=sv.masv 
WHERE makh='TH' GROUP BY kq.masv,ho,ten HAVING AVG(diem) IN (
 SELECT TOP 1 AVG(diem)
 FROM Ket_Qua kq INNER JOIN Sinh_Vien sv ON kq.masv=sv.masv 
 WHERE makh='TH' GROUP BY kq.masv ORDER BY AVG(diem) DESC)
Các câu a, b và c đều đúng
Xét bảng PHIEU_NHAP(sopn, ngaynhap) có các mẩu tin sau:
Phieu_Nhap
Sopn
Ngaynhap
N001
2004-04-01
N002
2004-04-03
N003
2004-04-10
N004
2004-05-01
N005
2004-05-01
Để lọc ra các phiếu nhập phát hành trong tháng 4/2004 thì câu lệnh nào dưới đây sẽ lọc có dữ liệu:
SELECT * FROM Phieu_Nhap
WHERE CONVERT(CHAR(6),ngaynhap,112)='2004-04'
SELECT * FROM Phieu_Nhap
WHERE CONVERT(CHAR(6),ngaynhap,112)='200404'
SELECT * FROM Phieu_Nhap
WHERE CONVERT(CHAR(7),ngaynhap,112)='2004-04'
SELECT * FROM Phieu_Nhap
WHERE CONVERT(CHAR(6),ngaynhap,12)='200404'
Để tính tổng các số nguyên từ 1 đến 10 bằng cách sử dụng vòng lặp WHILE. Xét đoạn lệnh dưới đây:
DECLARE @i INT, @tong INT
SET @i=1
SET @tong=0
WHILE @i<=10
SET @tong=@tong+@i
SET @i=@i+1
PRINT @tong
Trong các trường hợp thì trường hợp nào dưới đây là ĐÚNG:
Kết quả in ra của biến @tong là: 55
Kết quả in ra của biến @tong là: 0
Kết quả in ra của biến @tong là: 1
Vòng lặp không bao giờ dừng
Xét các bảng Sinh_Vien và Khoa
Để thống kê tổng số sinh viên trong khoa chưa có học bổng (cột hocbong=0) thì câu lệnh nào sau đây là đúng
SELECT Khoa.makh, tenkh, Count(*) as dem
FROM Sinh_Vien Inner Join Khoa On Sinh_Vien.makh = Khoa.makh
WHERE hocbong = 0
GROUP BY Khoa.makh, tenkh
SELECT Khoa.makh, tenkh, Count(*) as dem
FROM Sinh_Vien Inner Join Khoa On Sinh_Vien.makh = Khoa.makh
WHERE hocbong > 0
GROUP BY Khoa.makh, tenkh
SELECT Khoa.makh, tenkh, Count(*) as dem
FROM Sinh_Vien Inner Join Khoa On Sinh_Vien.makh = Khoa.makh
GROUP BY Khoa.makh, tenkh
WHERE hocbong = 0
SELECT Khoa.makh, tenkh, Count(*) as dem
FROM Sinh_Vien Inner Join Khoa On Sinh_Vien.makh = Khoa.makh
GROUP BY Khoa.makh, tenkh HAVING hocbong=0
Xét bảng Sinh_Vien
Sinh_Vien
MaSV
Ho
Ten
MaKH
A01
Nguyen Van
Hung
AV
A02
Tran Thi
Tuyet
AV
B01
Le Van
Nghia
TH
B02
Hoang Ngoc
Phuong
TH
C01
Truong Thi
Chau
TR
C02
Mai Tu
Phuong
TR
Câu lệnh: 
SELECT masv, ho, ten, makh
FROM Sinh_Vien WHERE makh IN 
(SELECT makh FROM Sinh_Vien WHERE masv IN 
(SELECT masv FROM Sinh_Vien WHERE ten = ’Phuong’))
Kết quả nào dưới đây là ĐÚNG khi thực hiện câu lệnh trên
MaSV
Ho
Ten
MaKH
C01
Truong Thi
Chau
TR
C02
Mai Tu
Phuong
TR
MaSV
Ho
Ten
MaKH
B01
Le Van
Nghia
TH
B02
Hoang Ngoc
Phuong
TH
MaSV
Ho
Ten
MaKH
B02
Hoang Ngoc
Phuong
TH
C02
Mai Tu
Phuong
TR
MaSV
Ho
Ten
MaKH
B01
Le Van
Nghia
TH
B02
Hoang Ngoc
Phuong
TH
C01
Truong Thi
Chau
TR
C02
Mai Tu
Phuong
TR
Xét các bảng Sinh_Vien và Khoa
Sinh_Vien
MaSV
Ho
Ten
MaKH
Nam
A01
Nguyen Van
Hung
AV
1
A02
Tran Thi
Tuyet
AV
0
B01
Le Van
Nghia
TH
1
B02
Hoang Ngoc
Phuong
TH
0
Khoa
MaKH
TenKH
AV
Anh van
TH
Tin hoc
Câu lệnh: 
SELECT Khoa.makh, tenkh, Count(*) as dem
FROM Sinh_Vien Inner Join Khoa On Sinh_Vien.makh = Khoa.makh
WHERE nam=1
GROUP BY Khoa.makh, tenkh
UNION
SELECT Khoa.makh, tenkh, Count(*) as dem
FROM Sinh_Vien Inner Join Khoa On Sinh_Vien.makh = Khoa.makh
WHERE nam=0
GROUP BY Khoa.makh, tenkh
Kết quả nào dưới đây là ĐÚNG khi thực hiện câu lệnh trên
MaKH
TenKH
Dem
AV
Anh van
4
MaKH
TenKH
Dem
AV
Anh van
2
TH
Tin hoc
2
MaKH
TenKH
Dem
AV
Anh van
1
TH
Tin hoc
1
AV
Anh van
1
TH
Tin hoc
1
MaKH
TenKH
Dem
AV
Anh van
1
TH
Tin hoc
1
Xét bảng Sinh_Vien
Khoa
MaKH
TenKH
AV
Anh van
TH
Tin hoc
Giả sử bảng Sinh_Vien là bảng rỗng
Câu lệnh: 
INSERT INTO Sinh_Vien (masv, ho, ten, nam, makh)
VALUES (’A01’, ’Le Van’, ’Nghia’, 1, ’av’)
Khi thực hiện câu lệnh trên thì xảy ra lỗi. Chọn các nguyên nhân có thể gây ra lỗi (chọn 2 câu ĐÚNG)
Giá trị của cột hocbong không cho phép NULL
Trùng mã sinh viên
Mã khoa phải là chữ HOA. Ví dụ là AV
Giá trị của cột hocbong bắt buộc phải là một số dương và không cho phép NULL
Câu lệnh ALTER TABLE khi sử dụng để thao tác với các CONSTRAINT thì không thể: (chọn 2 câu ĐÚNG)
Thêm hoặc xoá các constraint
Bật hay tắt chế độ kiểm tra dữ liệu trên contraint
Đổi tên một constraint
Xác định thứ tự các constraint mà SQL sẽ dùng để kiểm tra dữ liệu
Chọn lệnh để định nghĩa kiểu dữ liệu mới có tên DiaChi, DiaChi dùng để khai báo những biến có thể chứa tối đa 100 ký tự và KHÔNG cho phép Null.
sp_addtype DiaChi, 'varchar(0..100)', 'Not Null'
sp_addtype DiaChi, 'varchar(100)', 'Not Null'
sp_addtype DiaChi, 'varchar()', 'Not Null'
sp_addtype DiaChi, 'varchar(100)'
Giá trị Null trong cột của biểu thức ON được xử lý thế nào khi tiến hành JOIN hai bảng
Các dòng có chứa giá trị NULL của bảng này chỉ kết hợp các dòng có giá trị NULL ở bảng còn lại
Các dòng có chứa giá trị NULL sẽ không được trả về trừ khi sử dụng OUTER JOIN
Các dòng có chứa giá trị NULL của bảng này kết hợp với tất cả các dòng bảng còn lại
Các dòng có chứa giá trị NULL của bảng này không kết hợp được với bất cứ dòng nào ở bảng còn lại
Để tạo bảng lưu VatTu_BK từ bảng VatTu. Chọn câu lệnh ĐÚNG:
SELECT * FROM VatTu INTO VatTu_BK
CREATE TABLE VatTu_BK FROM VatTu
CREATE TABLE VatTu_BK AS SELECT * FROM VatTu
SELECT * INTO VatTu_BK FROM VatTu
Hàm Fetch_Status dùng để xác định trạng thái sau khi đọc mẩu tin trong cursor. Chọn các phát biểu ĐÚNG (chọn 2 câu ĐÚNG):
Trả về 0 nếu đọc thành công
Trả về 0 nếu đọc không thành công
Trả về -1 nếu đọc không thành công (giá trị duy nhất)
Trả về -1 hoặc -2 nếu đọc không thành công (nhiều giá trị)
Để đổi từ mã ASCII sang ký tự. Chọn phát biểu ĐÚNG:
Hàm ASCII
Hàm CHR
Hàm CHAR
Các câu a, b và c đều đúng
Xét bảng KHOA(makh CHAR(2), tenkh CHAR(100)) Khai báo cursor c_khoa với các lệnh sau:
DECLARE c_khoa CURSOR
SCROLL DYNAMIC
FOR SELECT makh FROM KHOA
FOR UPDATE
Cho biết phát biểu nào dưới đây là ĐÚNG
Trên cursor cho phép cập nhật makh và tenkh
Trên cursor không cho phép cập nhật makh và tenkh
Trên cursor chỉ cho phép cập nhật makh
Trên cursor chỉ cho phép cập nhật tenkh
Để khai báo một cursor sử dụng cho việc đọc dữ liệu theo một chiều đi tới thì từ khoá nào khai báo dưới đây là ĐÚNG:
FORWARD
SCROLL
SCROLL_LOCK
FORWARD_ONLY
Chọn câu lệnh thích hợp để xuất ra cửa sổ kết quả của Query Analyzer chuỗi có dạng sau (lưu ý giá trị 17/06/2004 là ngày hiện hành khi thực thi câu lệnh):
Ngay hien hanh la: 17/06/2004
print 'Ngay hien hanh la: ' + convert(char(10),date(),103)
print 'Ngay hien hanh la: ' + convert(char(10),getdate(),103)
print 'Ngay hien hanh la: ' + convert(getdate(),103)
print 'Ngay hien hanh la: ' + getdate()
Giả sử bảng KHOA là bảng rỗng. Xét giao tác sau:
BEGIN TRAN
INSERT INTO Khoa (makh,tenkh) VALUES ('AV','Khoa Anh')
INSERT INTO Khoa (makh,tenkh) VALUES ('TH','Khoa Tin hoc')
SAVE TRAN sp_1
INSERT INTO Khoa (makh,tenkh) VALUES ('LY','Khoa Vat ly')
ROLLBACK TRAN sp_1
COMMIT TRAN
Cho biết kết quả nào dưới đây là ĐÚNG khi kết thúc giao tác trên và thực hiện lệnh SELECT makh FROM Khoa:
AV, TH, LY
AV, TH
LY
Các câu a, b và c đều sai
Xét bảng KHOA(makh, tenkh) là bảng rỗng và cột tenkh cho phép NULL
Giả sử trigger thêm trên bảng KHOA được tạo bởi các lệnh sau:
CREATE TRIGGER tg_Khoa_Insert ON Khoa FOR INSERT
AS
 	DECLARE @tenkh VARCHAR(50)
 	SELECT @tenkh=tenkh FROM INSERTED
 	IF ISNULL(@tenkh,'') = ''
 	BEGIN
 	ROLLBACK TRAN
 	RAISERROR('Tên khoa không được rỗng',16,1)
 	RETURN
 	END
Cho biết trường hợp nào dưới đây là ĐÚNG:
INSERT INTO Khoa (makh,tenkh) VALUES(‘00’,’’) thực hiện thành công
INSERT INTO Khoa (makh,tenkh) VALUES(‘00’,NULL) thực hiện thành công
Các câu a, b đều thực hiện thành công
Các câu a, b đều thực hiện KHÔNG thành công
Xét bảng KHOA(makh, tenkh) là bảng rỗng và cột tenkh cho phép NULL
Giả sử trigger thêm trên bảng KHOA được tạo bởi các lệnh sau:
CREATE TRIGGER tg_Khoa_Insert ON Khoa FOR INSERT
AS
 DECLARE @tenkh VARCHAR(50)
 SELECT @tenkh=tenkh FROM INSERTED
 IF @tenkh = NULL OR @tenkh = ‘’
 BEGIN
 ROLLBACK TRAN
 RAISERROR('Tên khoa không được rỗng',16,1)
 RETURN
 END
Cho biết câu lệnh INSERT nào dưới đây là ĐÚNG (thực hiện thành công)
INSERT INTO Khoa (makh,tenkh) VALUES(‘00’,’’)
INSERT INTO Khoa (makh,tenkh) VALUES(‘00’,NULL)
Các câu a, b đều thực hiện thành công
Các câu a, b đều thực hiện KHÔNG thành công
Giả sử bảng KHOA là bảng rỗng và có cấu trúc: KHOA(makh,tenkh). Xét giao tác sau:
BEGIN TRAN Cap1
INSERT INTO Khoa (makh,tenkh) VALUES ('AV','Khoa Anh')
BEGIN TRAN Cap2
INSERT INTO Khoa (makh,tenkh) VALUES ('LY','Khoa Vat ly')
COMMIT TRAN Cap2
ROLLBACK TRAN Cap1
Cho biết kết quả nào dưới đây là ĐÚNG khi thực hiện lệnh SELECT makh FROM Khoa:
AV, LY
AV
LY
Bảng KHOA vẫn là bảng rỗng
Xét bảng KHOA(makh CHAR(2), tenkh CHAR(100)) Khai báo cursor c_khoa với các lệnh sau:
DECLARE c_khoa CURSOR
SCROLL DYNAMIC
FOR SELECT makh FROM KHOA
FOR UPDATE
Cho biết phát biểu nào dưới đây là ĐÚNG
Trên cursor cho phép cập nhật makh và tenkh
Trên cursor không cho phép cập nhật makh và tenkh
Trên cursor chỉ cho phép cập nhật makh
Trên cursor chỉ cho phép cập nhật tenkh
Để khai báo một cursor sử dụng cho việc đọc dữ liệu theo một chiều đi tới thì từ khoá nào khai báo dưới đây là ĐÚNG:
FORWARD
SCROLL
SCROLL_LOCK
FORWARD_ONLY
Bảng INSERTED được sử dụng trong các loại Trigger nào dưới đây? (chọn 2 câu ĐÚNG)
Trigger Insert
Trigger Update
Trigger Delete
Không xuất hiện trong cả 3 loại trigger trên

File đính kèm:

  • docĐề thi SQL Server.doc
Tài liệu liên quan