Anna được giao nhiệm vụ cải thiện việc thực thi cho truy vấn có liên quan đến 2 bảng, student và marks. Sau khi phân tích, cô ta nhận thấy rằng bảng student hiếm khi bị cập nhật, còn bảng marks thì có rất nhiều transaction. Vì vậy cô ta quyết định tạo các chỉ mục cho các bảng này. Tổ hợp nào sau đây mà cô ta nên dùng để tối ưu hoá việc thực thi truy vấn?
A -
Bảng Student : tạo chỉ mục clustered trên trường roll_number Bảng Marks : tạo chỉ mục nonclustered trên trường roll_number
B -
Bảng Student :tạo chỉ mục unique clustered trên trường roll_number Bảng Marks : tạo chỉ mục clustered trên trường roll_number
C -
Bảng Student :tạo chỉ mục unique clustered trên trường roll_number Bảng Marks : tạo chỉ mục nonclustered trên trường roll_number
D -
Bảng Student :tạo chỉ mục unique nonclustered trên trường roll_number Bảng Marks : tạo chỉ mục nonclustered trên trường roll_number
2-
Giả sử đã có 1 bảng có cấu trúc HoChieu như sau: MaHoSo: Char(5), Not null, Unique SoHoChieu:Char(10), Null,Không TenKhach: Char(20),Not null,Không Trường SoHoChieu có giá trị duy nhất cho tất cả các bản ghi hiện có. Tuy nhiên khi người dùng chọn trường này làm khoá chính (primary key) cho bảng bằng lệnh ALTER TABLE thì bị báo lỗi. Hãy cho biết lý do?
A -
Khoá chính không thể tạo được bằng lệnh ALTER TABLE
B -
Khóa chính không thể tao được bởi vì đã có sẵn 1 ràng bụôc unique trong bảng
C -
Khoá chính không thể tạo đựơc trên các trường đã xác định là NULL trong lúc tạo bảng
D -
Khoá chính không thể tạo được trên những trường có giá trị trùng nhau
3-
Bảng tmpCount được tạo ra với khoá chính ID là trường số tự động và trường page (số trang) phải nhỏ hơn 50. Lệnh nào sau đây là hợp lệ:
A -
"Create table tmpCount (id int identity(1,1), page int constraint check page between 1 and 49)"
B -
"Create table tmpCount (id int identity(1,1), page char constraint check page between 1 and 49)"
C -
"Create table tmpCount (id char identity(1,1), page int constraint check page between 1 and 49)"
D -
"Create table tmpCount (id int identity(1,1), page int constraint check page between 1 and 50)"
4-
Bạn đang tạo 1 bảng tên là Orders cho công ty. Mỗi hoá đơn (order) chứa số hóa đơn (OrderID), ngày (OrderDate), Mã khách (CustomerID) mã nhà vận chuyển (ShipperID) và ngày chuyển hàng (ShipDate). Số hoá đơn được phát tự động và phải bảo đảm duy nhất. Câu SQL nào sau đây đáp ứng được yêu cầu trên?
A -
"CREATE TABLE Orders (OrderID unique identifier PRIMARY KEY NOT NULL, OrderDate datetime NULL, CustomerID char(5) NOT NULL FOREIGN KEY REFERENCES Customer (Customer ID), ShipperID int NOT NULL FOREIGN KEY REFERENCES Shippers(ShipperID), ShipDate date)"
B -
"CREATE TABLE Orders (OrderID int identity (1, 1) PRIMARY KEY NOT NULL, OrderDate datetime NOT NULL, CustomerID char(5) NOT NULL FOREIGN KEY REFERENCES Customer (Customer ID), ShipperID int NOT NULL FOREIGN KEY REFERENCES Shippers(ShipperID), ShipDate datetime Null)"
C -
"CREATE TABLE Orders (OrderID int identity (1, 1) PRIMARY KEY NOT NULL, OrderDate datetime NULL, CustomerID char(5) NOT NULL FOREIGN KEY REFERENCES Customer (Customer ID), ShipperID int NULL, ShipDate datetime Null )"
D -
"CREATE TABLE Orders (OrderID unique identifier PRIMARY KEY NOT NULL, OrderDate datetime NOT NULL, CustomerID char(5) NOT NULL FOREIGN KEY REFERENCES Customer (Customer ID), ShipperID int NOT NULL FOREIGN KEY REFERENCES Shippers(ShipperID), ShipDate datetime Null)"
5-
Bảng Products có các trường sau: product ID, product name, price,quantity on hand. Từ khoá nào sau đây bạn nên dùng để trường product ID có tính chất tăng tự động (auto-increment). Mã (Product ID) cho sản phẩm (product) đầu tiên trong bảng nên bắt đầu bằng 1 và tăng tự động là 1 cho các sản phẩm kế tiếp
A -
SEED
B -
INCREMENT
C -
IDENTITY
D -
AUTOINCREMENT
6-
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 Student . Chỉ mục này thuộc loại nào : CREATE TABLE student ( student_id int PRIMARY KEY, lname char(15) , fname char(15) )
A -
Clustered index
B -
NonClustered index
C -
Clustered , Unique index
D -
Unique index
7-
Bảng Sinh viên trong database Quản lý sinh viên gồm các cột : Mã sinh viên (student_id) , Họ sinh viên (lname) , Tên sinh viên (fname), Mã lớp (class_id) . Một khối lượng lớn dữ liệu được lưu trữ trong table này.
Bạn khảo sát và thấy rằng : có rất nhiều truy vấn thực hiện trên table Sinh viên. Các truy vấn thường dựa vào Mã sinh viên để lấy ra thông tin của từng Sinh viên , Nhưng có nhiều truy vấn lấy ra một nhóm sinh viên dựa vào Mã lớp. Để tăng tốc độ thực thi các truy vấn này, bạn quyết định tạo chỉ mục trên bảng Sinh viên . Bạn sẽ thực hiện bằng cách nào:
A -
Bạn cần tạo một chỉ mục NonClustered Index trên cột Mã sinh viên , một chỉ mục Clustered Index trên cột Mã lớp
B -
Bạn cần tạo một chỉ mục Clustered Index trên cột Mã sinh viên , một chỉ mục NonClustered Index trên cột Mã lớp
C -
Bạn cần tạo một chỉ mục Clustered Index trên cột Mã sinh viên , một chỉ mục Clustered Index trên cột Mã lớp
D -
Bạn cần tạo một chỉ mục NonClustered Index trên cột Mã sinh viên , một chỉ mục NonClustered Index trên cột Mã lớp
8-
Các chỉ mục (Index) được xây dựng dựa trên một hay một số Field trong table. Khi đó các Field này được gọi là:
A -
the secondary key
B -
the primary key
C -
the major key
D -
the index key
9-
Xem xét hai cách tạo table Emps sau : Cách 1 : CREATE TABLE Emps ( empID INT, ssNo INT, name CHAR(50), mgrID INT, UNIQUE (empID), PRIMARY KEY (ssNo), CONSTRAINT fk_emps FOREIGN KEY mgrID REFERENCES Emps (empID) ); Cách 2 CREATE TABLE Emps ( empID INT PRIMARY KEY, ssNo INT UNIQUE, name CHAR(50), mgrID INT REFERENCES Emps (empID) ); Phương án nào sau đây là đúng với cú pháp lệnh T_SQL :
A -
Cả hai cách đều đúng
B -
Không có cách nào đúng
C -
Cách 1 đúng
D -
Cách 2 đúng
10-
Trong SQL Server , để tạo và xoá một user_defined data type , ta có thể sử dụng: