Font size
WorksheetsCâu hỏi về SQL
Total questions: 142
Worksheet time: 1hrs 14mins
SQL là viết tắt của từ gì?
Structured Query Language
Simple Query Language
Sequential Query Language
Standard Question Language
Câu lệnh nào được dùng để lấy dữ liệu từ bảng?
GET
SELECT
RETRIEVE
FETCH
Câu lệnh nào dùng để thêm dữ liệu mới vào bảng?
INSERT INTO
ADD NEW
UPDATE
CREATE
Lệnh nào dùng để xóa dữ liệu?
DELETE
REMOVE
DROP
ERASE
Câu lệnh nào dùng để sửa dữ liệu trong bảng?
UPDATE
ALTER
MODIFY
CHANGE
Lệnh CREATE TABLE dùng để:
Tạo một cột mới
Tạo bảng mới
Tạo hàng mới
Tạo dữ liệu mới
Từ khóa nào được dùng để lọc dữ liệu?
FROM
SELECT
WHERE
FILTER
Trong SQL, dấu % dùng trong:
Hàm tính phần trăm
LIKE
BETWEEN
GROUP BY
Lệnh nào dùng để sắp xếp dữ liệu?
ORDER BY
SORT
GROUP BY
ARRANGE
Lệnh nào tạo điều kiện lọc theo nhóm?
GROUP BY
HAVING
WHERE
ORDER BY
Câu lệnh nào được dùng để đổi tên bảng?
RENAME TABLE
CHANGE TABLE
ALTER TABLE
UPDATE TABLE
Từ khóa nào dùng để lấy các giá trị không trùng lặp?
UNIQUE
DISTINCT
DIFFERENT
NO DUPLICATE
Hàm COUNT(*) trả về:
Tổng các giá trị
Trung bình các giá trị
Số dòng trong bảng
Giá trị lớn nhất
Hàm AVG() dùng để:
Tính tổng
Tính trung bình
Tính số lượng
Tính phần trăm
Từ khóa nào dùng để chỉ định bảng trong câu lệnh SELECT?
FROM
IN
TABLE
USE
Trong SQL, NULL biểu thị:
Giá trị 0
Giá trị rỗng
Không xác định hoặc không có giá trị
Giá trị chuỗi trắng
Để kiểm tra giá trị NULL, ta dùng:
= NULL
IS NULL
== NULL
EQUAL NULL
Câu lệnh nào dùng để xóa bảng?
DELETE TABLE
REMOVE TABLE
DROP TABLE
TRUNCATE TABLE
Từ khóa nào dùng để giới hạn số dòng trả về?
LIMIT
TOP
ROWNUM
Tất cả đều đúng (tùy hệ quản trị)
Câu lệnh SELECT * FROM Products WHERE Price BETWEEN 100 AND 200 sẽ:
Lấy các sản phẩm có giá đúng bằng 100 hoặc 200
Lấy sản phẩm có giá < 100 hoặc > 200
Lấy sản phẩm có giá từ 100 đến 200 (bao gồm cả 100 và 200)
Lỗi cú pháp
Câu lệnh TRUNCATE TABLE dùng để:
Xóa bảng và cấu trúc bảng
Xóa dữ liệu nhưng giữ lại cấu trúc bảng
Xóa cột trong bảng
Đổi tên bảng
PRIMARY KEY là:
Một cột cho phép trùng và NULL
Một cột có giá trị duy nhất và không được NULL
Một cột để tìm kiếm nhanh
Một dạng dữ liệu đặc biệt
Câu lệnh nào tạo ràng buộc khóa chính?
CREATE PRIMARY KEY
ALTER TABLE ... ADD PRIMARY KEY
INSERT PRIMARY
MAKE PRIMARY KEY
FOREIGN KEY dùng để:
Trỏ đến chính nó
Trỏ đến một bảng khác
Tạo dữ liệu mới
Đổi kiểu dữ liệu
Lệnh ALTER TABLE dùng để:
Xóa bảng
Thêm hoặc sửa cấu trúc bảng
Thêm dữ liệu mới
Tạo bảng mới
Câu lệnh nào tạo bảng mới?
CREATE DATABASE
MAKE TABLE
CREATE TABLE
INIT TABLE
Cú pháp đúng để chọn các hàng có giá trị tên chứa chữ “a”?
WHERE name LIKE '%a%'
WHERE name = '%a%'
WHERE name HAS 'a'
WHERE name INCLUDE 'a'
Câu lệnh DROP DATABASE dùng để:
Xóa tất cả bảng trong CSDL
Xóa một bảng
Xóa toàn bộ cơ sở dữ liệu
Đóng kết nối cơ sở dữ liệu
Trong SQL, UNION dùng để:
Ghép bảng theo chiều ngang
Kết hợp kết quả của nhiều SELECT (không trùng)
Gộp dữ liệu từ các cột
Kết hợp bảng theo chiều dọc và trùng dữ liệu
Câu lệnh SELECT name, salary FROM Employees ORDER BY salary DESC dùng để:
Sắp xếp lương tăng dần
Sắp xếp tên giảm dần
Sắp xếp lương giảm dần
Chọn nhân viên có lương cao nhất
Trong SQL Server, hàm trả ngày giờ hiện tại là:
NOW()
CURRENT_TIMESTAMP
GETDATE()
SYSDATE()
Câu lệnh chọn 5 dòng đầu tiên trong SQL Server là:
SELECT FIRST 5 ...
SELECT TOP 5 ...
SELECT LIMIT 5 ...
SELECT * FROM ... LIMIT 5
Cú pháp để tạo khóa chính khi tạo bảng:
PRIMARY(name)
PRIMARY KEY(name)
MAKE PRIMARY name
SET PRIMARY(name)
Lệnh IDENTITY(1,1) có ý nghĩa gì?
Khóa chính tự tăng bắt đầu từ 1, mỗi lần +1
Dữ liệu mặc định
Khóa ngoài
Mã hóa dữ liệu
Trong SQL Server, để đổi tên bảng ta dùng:
RENAME TABLE
ALTER TABLE RENAME
sp_rename 'ten_cu', 'ten_moi'
RENAME ten_cu TO ten_moi
Để lấy dữ liệu lặp lại, ta dùng từ khóa nào?
ALL
REPEAT
NO DISTINCT
Không
Để đổi tên bảng, ta dùng:
RENAME TABLE
ALTER TABLE RENAME
sp_rename 'ten_cu', 'ten_moi'
RENAME ten_cu TO ten_moi
Để lấy dữ liệu lặp lại, ta dùng từ khóa nào?
ALL
REPEAT
NO DISTINCT
Không dùng DISTINCT
Trong SQL Server, kiểu dữ liệu cho chuỗi ký tự có độ dài không cố định là:
VARCHAR(n)
CHAR(n)
TEXT
STRING
Hàm nào dùng để chuyển chữ thường thành chữ hoa?
UPPER()
TOUPPER()
UCASE()
CAPITALIZE()
Hàm LEN(column) trả về:
Tổng các giá trị
Số lượng ký tự trong chuỗi
Số dòng
Độ dài bảng
Lệnh SELECT COUNT(*) FROM Table WHERE column IS NULL sẽ:
Đếm số giá trị khác NULL
Đếm số dòng có giá trị NULL
Đếm toàn bộ dữ liệu
Trả lỗi
Trong SQL Server, để tạo một trường tự động tăng, ta dùng:
AUTO_INCREMENT
SERIAL
IDENTITY(1,1)
AUTOGEN
Hàm GETDATE() trả về kiểu dữ liệu gì?
int
time
date
datetime
Câu lệnh SELECT DISTINCT column FROM table có tác dụng:
Lấy tất cả các bản ghi
Lấy các giá trị khác nhau ở cột đó
Lấy các bản ghi trùng nhau
Lấy bản ghi có khóa chính
Trong SQL Server, kiểu dữ liệu BIT dùng để lưu:
Chuỗi ký tự
Giá trị logic (0 hoặc 1)
Số nguyên
Số thực
Để giới hạn kết quả truy vấn trả về 10 bản ghi, ta dùng:
SELECT FIRST 10
SELECT * FROM table LIMIT 10
SELECT TOP 10 * FROM table
SELECT LIMIT 10 * FROM table
Mệnh đề WHERE dùng để:
Sắp xếp dữ liệu
Nhóm dữ liệu
Lọc dữ liệu theo điều kiện
Tạo điều kiện phân trang
Để tạo database mới trong SQL Server, ta dùng lệnh:
INIT DATABASE name
CREATE DATABASE name
MAKE DB name
NEW DATABASE name
Câu lệnh DELETE FROM table sẽ:
Xóa toàn bộ bảng
Xóa toàn bộ dữ liệu trong bảng
Xóa bảng và dữ liệu
Xóa cột cụ thể
Hàm DATEDIFF(day, startDate, endDate) trong SQL Server dùng để:
Cộng ngày
Trừ giờ
Tính số ngày giữa 2 mốc thời gian
Kiểm tra ngày có hợp lệ không
Để cập nhật dữ liệu trong bảng, ta dùng:
MODIFY
CHANGE
SET VALUE
UPDATE
Trong SQL Server, để xóa tất cả dữ liệu trong bảng mà không xóa cấu trúc bảng, ta dùng:
DELETE FROM table
REMOVE FROM table
TRUNCATE TABLE table
DROP TABLE table
Câu lệnh nào dùng để lấy các giá trị khác biệt trong bảng?
DISTINCT
UNIQUE
DIFFERENT
BOTH
Câu lệnh nào dùng để xóa một bảng trong SQL Server?
REMOVE TABLE
DELETE TABLE
DROP TABLE
ERASE TABLE
Trong SQL Server, cú pháp INNER JOIN sẽ:
Kết hợp tất cả dữ liệu từ hai bảng
Kết hợp các dòng có giá trị trùng lặp giữa hai bảng
Kết hợp các dòng có giá trị không trùng lặp giữa hai bảng
Không kết hợp bất kỳ dữ liệu nào
Từ khóa nào trong câu lệnh SELECT giúp trả về một phần của chuỗi?
SUBSTRING
MID
LEFT
TRIM
Câu lệnh GROUP BY được dùng để:
Nhóm các bản ghi lại với nhau
Lọc dữ liệu theo nhóm
Sắp xếp dữ liệu
Tính toán các giá trị tổng hợp
Câu lệnh nào dưới đây sẽ trả về số lượng bản ghi trong bảng Customers?
SELECT COUNT(1) FROM Customers
SELECT COUNT(*) FROM Customers
SELECT COUNT() FROM Customers
A và B đều đúng
Trong SQL Server, để trích xuất phần ngày từ kiểu dữ liệu datetime, ta sử dụng hàm nào?
GETDATE()
DATEPART()
CONVERT()
EXTRACT()
Câu lệnh nào sau đây sẽ kết hợp dữ liệu từ hai bảng với điều kiện trùng lặp?
LEFT JOIN
RIGHT JOIN
INNER JOIN
FULL OUTER JOIN
Để tạo một chỉ mục trên cột trong bảng, ta sử dụng câu lệnh nào?
CREATE INDEX
CREATE KEY
CREATE UNIQUE
CREATE TABLE INDEX
Câu lệnh ALTER TABLE dùng để:
Tạo bảng mới
Thêm, sửa hoặc xóa cột trong bảng
Xóa bảng
Lọc dữ liệu
Câu lệnh HAVING được sử dụng với mệnh đề nào?
WHERE
GROUP BY
ORDER BY
SELECT
Câu lệnh SQL nào giúp liên kết nhiều bảng lại với nhau?
JOIN
COMBINE
LINK
MERGE
Trong SQL Server, kiểu dữ liệu DATETIME có độ dài bao nhiêu?
4 byte
8 byte
12 byte
16 byte
Để tìm kiếm một phần của chuỗi trong cột, ta sử dụng từ khóa nào trong SQL Server?
LIKE
CONTAINS
IN
SEARCH
Câu lệnh SELECT TOP 10 * FROM Employees ORDER BY Salary DESC có tác dụng:
Lấy 10 nhân viên có lương cao nhất
Lấy 10 nhân viên có lương thấp nhất
Lấy 10 nhân viên ngẫu nhiên
Lấy toàn bộ nhân viên
SELECT TOP 10 * FROM Employees ORDER BY Salary DESC có tác dụng:
Lấy 10 nhân viên có lương cao nhất
Lấy 10 nhân viên có lương thấp nhất
Lấy 10 nhân viên ngẫu nhiên
Lấy toàn bộ nhân viên và sắp xếp theo lương tăng dần
Hàm SUM() trong SQL Server trả về:
Tổng của các giá trị
Số dòng
Giá trị trung bình
Giá trị lớn nhất
Để trích xuất các cột từ bảng, ta sử dụng từ khóa nào?
SELECT
GET
FETCH
EXTRACT
Câu lệnh ORDER BY được sử dụng để:
Tính toán tổng số dòng
Tính toán các giá trị
Sắp xếp kết quả trả về theo cột
Lọc kết quả trả về
Câu lệnh JOIN trong SQL Server có thể kết hợp:
Chỉ các bảng trong cùng một cơ sở dữ liệu
Các bảng trong cùng một cơ sở dữ liệu hoặc khác cơ sở dữ liệu
Các bảng trong cùng một máy chủ
Tất cả các bảng trong một hệ thống
Câu lệnh nào dùng để kết nối hai bảng trong SQL Server?
CONNECT
JOIN
LINK
MERGE
Để lấy các bản ghi trùng lặp từ bảng, ta sử dụng câu lệnh nào?
SELECT ALL
SELECT DISTINCT
SELECT DUPLICATE
SELECT REPEAT
Trong SQL Server, cú pháp nào dùng để tạo chỉ mục cho một bảng?
CREATE INDEX
MAKE INDEX
CREATE KEY
NEW INDEX
Câu lệnh SELECT COUNT(DISTINCT column) sẽ:
Đếm số lượng dòng không trùng lặp trong cột
Đếm số lượng dòng có giá trị NULL trong cột
Đếm tổng số giá trị trong cột
Đếm tất cả các giá trị trong cột
Câu lệnh INSERT INTO được sử dụng để:
Thêm dữ liệu vào bảng
Xóa dữ liệu trong bảng
Cập nhật dữ liệu trong bảng
Tạo bảng mới
Câu lệnh nào trong SQL Server dùng để kết hợp các kết quả của hai câu lệnh SELECT?
JOIN
UNION
MERGE
LINK
Trong SQL Server, để thay đổi giá trị của một cột, ta sử dụng câu lệnh nào?
UPDATE
MODIFY
CHANGE
ALTER
Câu lệnh nào sau đây sẽ trả về các bản ghi có lương lớn hơn 5000 trong bảng Employees?
SELECT * FROM Employees WHERE Salary > 5000
SELECT * FROM Employees WHERE Salary < 5000
SELECT * FROM Employees WHERE Salary >= 5000
SELECT * FROM Employees WHERE Salary = 5000
Câu lệnh nào dùng để thay đổi kiểu dữ liệu của một cột trong SQL Server?
ALTER COLUMN
MODIFY COLUMN
CHANGE COLUMN
UPDATE COLUMN
Câu lệnh SELECT column1, column2 FROM table ORDER BY column1 ASC, column2 DESC có tác dụng:
Sắp xếp column1 tăng dần và column2 giảm dần
Sắp xếp column1 giảm dần và column2 tăng dần
Lọc các giá trị trùng lặp
Sắp xếp column1 và column2 tăng dần
Câu lệnh nào dùng để thay đổi cấu trúc bảng trong SQL Server?
ALTER TABLE
MODIFY TABLE
CHANGE TABLE
UPDATE TABLE
Để lấy các bản ghi có giá trị NULL trong một cột, ta dùng câu lệnh nào?
WHERE column = NULL
WHERE column IS NULL
WHERE column IS NOT NULL
WHERE column != NULL
Trong SQL Server, kiểu dữ liệu nào dùng để lưu trữ giá trị tiền tệ?
MONEY
CURRENCY
DECIMAL
FLOAT
Câu lệnh nào được dùng để kiểm tra cấu trúc của một bảng trong SQL Server?
DESCRIBE TABLE
SHOW TABLE
SHOW COLUMNS
sp_help table
Câu lệnh SELECT * FROM Employees WHERE Name LIKE 'J%' sẽ:
Lấy tất cả các bản ghi có tên bắt đầu bằng chữ 'J'
Lấy tất cả các bản ghi có tên chứa chữ 'J'
Lấy tất cả các bản ghi có tên kết thúc bằng chữ 'J'
Lấy tất cả các bản ghi có tên trùng với 'J'
Trong SQL Server, câu lệnh INNER JOIN sẽ trả về:
Các dòng có trong cả hai bảng
Các dòng có trong một bảng
Các dòng không có trong cả hai bảng
Các dòng có giá trị NULL
Câu lệnh nào dùng để xóa một cột trong bảng SQL Server?
DROP COLUMN
REMOVE COLUMN
DELETE COLUMN
ALTER TABLE DROP COLUMN
Câu lệnh nào sau đây dùng để thay đổi tên của một cột trong bảng?
RENAME COLUMN
ALTER COLUMN
CHANGE COLUMN
sp_rename 'table.old_column', 'new_column', 'COLUMN'
Câu lệnh nào được sử dụng để tạo một bảng trong SQL Server?
CREATE DATABASE
CREATE TABLE
INIT TABLE
MAKE TABLE
Câu lệnh GROUP BY trong SQL Server được sử dụng với câu lệnh nào?
SELECT
INSERT
UPDATE
DELETE
Câu lệnh CREATE PROCEDURE trong SQL Server dùng để:
Tạo một bảng mới
Tạo một thủ tục lưu trữ mới
Tạo một chỉ mục
Tạo một hàm mới
Câu lệnh SELECT * FROM Employees WHERE Salary BETWEEN 3000 AND 5000 sẽ:
Câu lệnh SELECT * FROM Employees WHERE Salary BETWEEN 3000 AND 5000 sẽ:
Lấy các nhân viên có lương trong khoảng từ 3000 đến 5000
Lấy các nhân viên có lương lớn hơn 5000
Lấy các nhân viên có lương nhỏ hơn 3000
Lấy các nhân viên có lương bằng 5000
Câu lệnh SELECT column1, COUNT(column2) FROM table GROUP BY column1 sẽ:
Tính tổng của column2 theo từng nhóm column1
Đếm số lượng các giá trị trong column2 theo nhóm column1
Lọc các giá trị trong column2 theo nhóm column1
Tính trung bình của column2 theo nhóm column1
Để tạo một khóa ngoại trong SQL Server, ta sử dụng câu lệnh nào?
CREATE FOREIGN KEY
ALTER TABLE ADD CONSTRAINT FOREIGN KEY
ADD FOREIGN KEY
CREATE CONSTRAINT FOREIGN KEY
Để tạo một bản sao của một bảng trong SQL Server, ta sử dụng:
CREATE TABLE AS
SELECT INTO
COPY TABLE
CLONE TABLE
Câu lệnh nào sau đây là cú pháp chính xác để thực hiện một lệnh JOIN trong SQL Server?
SELECT column1, column2 FROM table1 JOIN table2 ON table1.id = table2.id
SELECT column1, column2 FROM table1 LEFT JOIN table2 USING id
SELECT column1, column2 FROM table1 INNER JOIN table2 WHERE table1.id = table2.id
SELECT column1, column2 FROM table1 JOIN table2 WHERE table1.id = table2.id
Trong SQL Server, hàm AVG() dùng để tính toán:
Số lượng giá trị trong một cột
Tổng giá trị trong một cột
Giá trị trung bình của một cột
Giá trị lớn nhất trong một cột
Để thay đổi dữ liệu trong bảng, ta sử dụng câu lệnh nào?
UPDATE
MODIFY
CHANGE
ALTER
Trong SQL Server, kiểu dữ liệu nào có thể chứa cả chữ và số?
INT
VARCHAR
FLOAT
DATE
Câu lệnh nào dùng để tạo một VIEW trong SQL Server?
CREATE VIEW
ADD VIEW
CREATE SELECT
CREATE TABLE VIEW
Câu lệnh SELECT column1, COUNT(*) FROM table GROUP BY column1 HAVING COUNT(*) > 5 có tác dụng gì?
Lọc các nhóm có ít hơn 5 bản ghi
Trả về các nhóm có ít nhất 5 bản ghi
Trả về tất cả các nhóm, không phụ thuộc vào số lượng bản ghi
Đếm tất cả bản ghi trong bảng
Trong SQL Server, câu lệnh nào sẽ trả về các bản ghi có giá trị NULL trong cột column1 và không NULL trong cột column2?
SELECT * FROM table WHERE column1 IS NULL AND column2 IS NOT NULL
SELECT * FROM table WHERE column1 IS NULL OR column2 IS NULL
SELECT * FROM table WHERE column1 IS NOT NULL AND column2 IS NULL
SELECT * FROM table WHERE column1 IS NULL AND column2 IS NULL
Câu lệnh nào trả về các bản ghi trong bảng Orders mà không có bất kỳ bản ghi nào trong bảng Customers có liên quan đến chúng qua khóa ngoại?
SELECT * FROM Orders LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID WHERE Customers.CustomerID IS NULL
SELECT * FROM Orders RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID WHERE Orders.CustomerID IS NULL
SELECT * FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID WHERE Customers.CustomerID IS NULL
SELECT * FROM Orders WHERE CustomerID NOT IN (SELECT CustomerID FROM Customers)
Câu lệnh nào sẽ trả về bản ghi trong bảng Products với giá trị trung bình của Price cho từng CategoryID?
SELECT CategoryID, AVG(Price) FROM Products GROUP BY CategoryID
SELECT CategoryID, SUM(Price) FROM Products GROUP BY CategoryID
SELECT CategoryID, MAX(Price) FROM Products GROUP BY CategoryID
SELECT CategoryID, COUNT(Price) FROM Products GROUP BY CategoryID
Hàm nào trong SQL Server dùng để trả về giá trị lớn nhất từ một cột?
MAX()
MIN()
SUM()
AVG()
Câu lệnh SELECT column1, RANK() OVER (PARTITION BY column2 ORDER BY column1 DESC) FROM table có tác dụng gì?
Xếp hạng các bản ghi theo column1, phân chia theo nhóm column2
Trả về thứ tự của các bản ghi theo column1, không phân nhóm
Trả về tổng các giá trị trong column1
Trả về các giá trị trung bình của column1
Câu lệnh nào trả về bản ghi duy nhất của bảng Employees mà không có bản ghi tương ứng trong bảng Departments?
SELECT * FROM Employees LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID WHERE Departments.DepartmentID IS NULL
SELECT * FROM Employees RIGHT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID WHERE Departments.DepartmentID IS NULL
Trong SQL Server, câu lệnh nào sẽ giúp bạn truy vấn một giá trị từ bảng Orders với điều kiện OrderDate nằm trong tháng 12 năm 2024?
SELECT * FROM Orders WHERE MONTH(OrderDate) = 12 AND YEAR(OrderDate) = 2024
SELECT * FROM Orders WHERE OrderDate BETWEEN '2024-12-01' AND '2024-12-31'
SELECT * FROM Orders WHERE OrderDate LIKE '2024-12%'
Tất cả các câu trên đều đúng
Câu lệnh SELECT column1, SUM(column2) OVER (PARTITION BY column3 ORDER BY column1) FROM table có tác dụng gì?
Tính tổng của column2 cho mỗi nhóm phân vùng column3
Tính tổng của column2 trên toàn bộ bảng, không phân nhóm
Xếp hạng các bản ghi theo column1 và tính tổng của column2 cho mỗi nhóm column3
Tính trung bình của column2 cho mỗi nhóm phân vùng
Câu lệnh SELECT * FROM Orders WHERE OrderID IN (SELECT OrderID FROM OrderDetails WHERE Quantity > 5) sẽ:
Trả về các đơn hàng có OrderID trong bảng OrderDetails với số lượng lớn hơn 5
Trả về tất cả các đơn hàng có số lượng lớn hơn 5
Trả về các đơn hàng có OrderID trùng với OrderID trong bảng OrderDetails
Tất cả các câu trên đều đúng
Câu lệnh nào dưới đây sẽ trả về các sản phẩm có giá trị Price lớn hơn mức trung bình của tất cả sản phẩm trong bảng Products?
SELECT * FROM Products WHERE Price > AVG(Price)
SELECT * FROM Products WHERE Price > (SELECT AVG(Price) FROM Products)
SELECT * FROM Products WHERE Price > MAX(Price)
SELECT * FROM Products WHERE Price > SUM(Price)
Câu lệnh nào trong SQL Server giúp phân nhóm các bản ghi và tính toán các giá trị tổng hợp cho từng nhóm sử dụng ROW_NUMBER()?
SELECT column1, ROW_NUMBER() OVER (PARTITION BY column2 ORDER BY column1) FROM table
SELECT column1, RANK() OVER (PARTITION BY column2 ORDER BY column1) FROM table
SELECT column1, COUNT(*) OVER (PARTITION BY column2 ORDER BY column1) FROM table
SELECT column1, DENSE_RANK() OVER (PARTITION BY column2 ORDER BY column1) FROM table
Câu lệnh SELECT * FROM Products WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 5) có tác dụng gì?
Trả về tất cả các sản phẩm có ProductID tương ứng với những ProductID có trong OrderDetails có số lượng lớn hơn 5
Trả về tất cả các sản phẩm có số lượng lớn hơn 5 trong OrderDetails
Trả về sản phẩm có ProductID nhỏ nhất trong OrderDetails
Trả về các sản phẩm có ProductID trùng khớp với tất cả các ProductID trong OrderDetails
Để thực hiện một truy vấn SQL trên nhiều bảng với sự kết hợp nhiều điều kiện, ta sử dụng:
JOIN và WHERE
GROUP BY và HAVING
LEFT JOIN và WHERE
INNER JOIN và GROUP BY
Câu lệnh nào dưới đây sẽ trả về danh sách các khách hàng và số lượng đơn hàng của mỗi khách hàng?
SELECT CustomerID, COUNT(OrderID) FROM Orders GROUP BY CustomerID
SELECT CustomerID, SUM(OrderID) FROM Orders GROUP BY CustomerID
SELECT CustomerID, COUNT(*) FROM Customers
SELECT CustomerID, AVG(OrderID) FROM Orders GROUP BY CustomerID
Câu lệnh SELECT ProductName, COUNT(*) OVER (PARTITION BY CategoryID) AS ProductCount FROM Products sẽ trả về gì?
Tên sản phẩm và số lượng sản phẩm trong mỗi danh mục
Tên sản phẩm và tổng số sản phẩm trong bảng Products
Số lượng sản phẩm theo từng nhóm CategoryID
Tên sản phẩm và số lượng các sản phẩm trong bảng Products
Câu lệnh SELECT * FROM Products WHERE ProductID = (SELECT TOP 1 ProductID FROM Products ORDER BY Price DESC) sẽ:
Trả về sản phẩm có giá trị Price cao nhất trong bảng Products
Trả về sản phẩm có ProductID nhỏ nhất trong bảng Products
Trả về tất cả sản phẩm có giá trị Price lớn hơn Price của sản phẩm có ProductID cao nhất
Trả về các sản phẩm có ProductID trùng với ProductID của sản phẩm có giá trị Price cao nhất
Câu lệnh nào giúp bạn truy vấn dữ liệu với kết quả là các bản ghi có OrderDate thuộc năm 2024 và có OrderAmount trên 1000?
SELECT * FROM Orders WHERE YEAR(OrderDate) = 2024 AND OrderAmount > 1000
SELECT * FROM Orders WHERE OrderDate BETWEEN '2024-01-01' AND '2024-12-31' AND OrderAmount > 1000
SELECT * FROM Orders WHERE OrderDate LIKE '2024%' AND OrderAmount > 1000
Tất cả các câu trên đều đúng
Câu lệnh SELECT * FROM Employees WHERE DepartmentID IN (SELECT DepartmentID FROM Departments WHERE DepartmentName = 'HR') có tác dụng gì?
Lấy tất cả nhân viên thuộc phòng ban có tên 'HR'
Lấy tất cả nhân viên thuộc phòng ban có mã số trùng với phòng ban có tên 'HR'
Lấy tất cả các nhân viên có DepartmentID là NULL
Lấy tất cả các nhân viên từ phòng ban 'HR' và phòng ban khác
Câu lệnh SELECT ProductID, SUM(Quantity) OVER (PARTITION BY ProductID ORDER BY OrderDate) AS TotalQuantity FROM OrderDetails sẽ:
Trả về tổng số lượng sản phẩm cho mỗi ProductID trong từng đơn hàng, được phân nhóm theo ProductID
Trả về tổng số lượng sản phẩm cho mỗi ProductID theo thứ tự ngày đặt hàng
Trả về tổng số lượng sản phẩm theo từng đơn hàng
Trả về tất cả các đơn hàng với tổng số lượng sản phẩm
Câu lệnh SELECT EmployeeID, SUM(Salary) OVER (PARTITION BY DepartmentID ORDER BY EmployeeID) AS CumulativeSalary FROM Employees sẽ:
Tính tổng lương tích lũy cho mỗi nhân viên trong từng phòng ban theo thứ tự EmployeeID
Trả về tổng lương cho tất cả nhân viên trong bảng Employees
Tính tổng lương của nhân viên trong mỗi phòng ban, không phân biệt thứ tự
Trả về tổng lương tích lũy cho tất cả nhân viên trong bảng Employees
Câu lệnh SELECT EmployeeID, DepartmentID, SUM(Salary) OVER (PARTITION BY DepartmentID) AS DepartmentSalary FROM Employees sẽ:
Trả về tổng lương của tất cả nhân viên trong mỗi phòng ban
Trả về lương của từng nhân viên theo phòng ban
Trả về lương tích lũy của mỗi nhân viên trong từng phòng ban
Trả về tất cả các nhân viên với tổng lương cho từng phòng ban
Câu lệnh nào giúp bạn thực hiện việc kết hợp dữ liệu từ hai bảng Orders và Customers bằng cách sử dụng CustomerID?
SELECT * FROM Orders JOIN Customers ON Orders.CustomerID = Customers.CustomerID
SELECT * FROM Orders LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID
SELECT * FROM Orders RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID
Tất cả các câu trên đều đúng
Câu lệnh SELECT DepartmentID, COUNT(*) AS EmployeeCount FROM Employees GROUP BY DepartmentID HAVING COUNT(*) > 10 sẽ:
Trả về các phòng ban có ít nhất 10 nhân viên
Trả về các phòng ban có nhiều hơn 10 nhân viên
Trả về số lượng nhân viên trong các phòng ban có ít hơn 10 nhân viên
Trả về tất cả các phòng ban và số lượng nhân viên của mỗi phòng ban
Câu lệnh SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 50 sẽ:
Trả về các sản phẩm có giá trị từ 10 đến 50
Trả về các sản phẩm có giá trị ngoài khoảng từ 10 đến 50
Trả về các sản phẩm có giá trị chính xác 50
Trả về tất cả các sản phẩm với giá trị lớn hơn 50
Câu lệnh SELECT * FROM Orders WHERE OrderDate BETWEEN '2024-01-01' AND '2024-12-31' AND CustomerID = 'ALFKI' sẽ:
Trả về các đơn hàng của khách hàng có CustomerID là 'ALFKI' trong năm 2024
Trả về tất cả đơn hàng trong năm 2024 cho khách hàng có CustomerID là 'ALFKI'
Trả về các đơn hàng của tất cả khách hàng trong năm 2024
Trả về các đơn hàng từ khách hàng 'ALFKI' nhưng không phải năm 2024
Câu lệnh SELECT CustomerID, AVG(OrderAmount) FROM Orders GROUP BY CustomerID HAVING AVG(OrderAmount) > 500 sẽ:
Trả về các khách hàng có số lượng đơn hàng trung bình lớn hơn 500
Trả về các khách hàng có tổng giá trị đơn hàng lớn hơn 500
Trả về các khách hàng có giá trị đơn hàng trung bình từ 500 trở lên
Trả về các khách hàng có giá trị đơn hàng trung bình nhỏ hơn 500
Câu lệnh nào sẽ tính tổng số sản phẩm đã được bán trong các đơn hàng có số lượng lớn hơn 5?
SELECT SUM(Quantity) FROM OrderDetails WHERE Quantity > 5
SELECT SUM(Quantity) FROM Orders WHERE Quantity > 5
SELECT CO
tổng số sản phẩm đã được bán trong các đơn hàng có số lượng lớn hơn 5?
SELECT SUM(Quantity) FROM OrderDetails WHERE Quantity > 5
SELECT SUM(Quantity) FROM Orders WHERE Quantity > 5
SELECT COUNT(*) FROM OrderDetails WHERE Quantity > 5
SELECT SUM(Quantity) FROM Products WHERE Quantity > 5
Câu lệnh SELECT DepartmentID, MAX(Salary) FROM Employees GROUP BY DepartmentID sẽ:
Trả về mức lương cao nhất trong mỗi phòng ban
Trả về mức lương trung bình trong mỗi phòng ban
Trả về tổng lương trong mỗi phòng ban
Trả về số lượng nhân viên trong mỗi phòng ban
Câu lệnh SELECT EmployeeID, DENSE_RANK() OVER (PARTITION BY DepartmentID ORDER BY Salary DESC) AS Rank FROM Employees sẽ:
Trả về thứ hạng của các nhân viên trong phòng ban theo lương từ cao xuống thấp, không bỏ qua thứ hạng
Trả về thứ hạng của các nhân viên trong phòng ban theo lương từ thấp lên cao
Trả về thứ hạng của các nhân viên trong bảng Employees
Trả về tất cả các nhân viên trong bảng Employees với lương giảm dần
Câu lệnh SELECT ProductName, Price, LEAD(Price, 1) OVER (ORDER BY Price) AS NextPrice FROM Products sẽ:
Trả về giá sản phẩm hiện tại và giá sản phẩm tiếp theo trong bảng Products theo thứ tự giá trị Price
Trả về giá sản phẩm và giá trị Price cao nhất trong bảng Products
Trả về giá trị Price cho mỗi sản phẩm trong bảng Products
Trả về tất cả sản phẩm có giá trị Price nhỏ nhất trong bảng Products
Câu lệnh SELECT DepartmentID, SUM(Salary) OVER (PARTITION BY DepartmentID ORDER BY Salary DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotal FROM Employees sẽ:
Trả về tổng lương của tất cả nhân viên trong mỗi phòng ban, tính từ trên xuống theo lương
Trả về tổng lương của tất cả nhân viên trong bảng Employees
Trả về tổng lương của nhân viên trong mỗi phòng ban tính từ nhân viên đầu tiên đến nhân viên hiện tại trong bảng Employees
Trả về tổng lương của tất cả nhân viên theo thứ tự DepartmentID
Câu lệnh SELECT EmployeeID, Name, LEAD(Name, 1) OVER (ORDER BY EmployeeID) AS NextEmployee FROM Employees sẽ:
Trả về tên nhân viên hiện tại và tên nhân viên tiếp theo theo thứ tự EmployeeID
Trả về tên nhân viên và tên nhân viên có mã số nhỏ nhất
Trả về tên nhân viên và thứ hạng của nhân viên đó
Trả về các nhân viên có EmployeeID lớn hơn EmployeeID hiện tại
Câu lệnh nào dưới đây sẽ giúp bạn tìm tất cả các đơn hàng có tổng giá trị trên 500 trong bảng OrderDetails?
SELECT * FROM OrderDetails WHERE TotalAmount > 500
SELECT OrderID, SUM(Quantity * UnitPrice) AS TotalAmount FROM OrderDetails GROUP BY OrderID HAVING SUM(Quantity * UnitPrice) > 500
SELECT OrderID, SUM(TotalAmount) FROM OrderDetails GROUP BY OrderID HAVING SUM(TotalAmount) > 500
SELECT * FROM Orders WHERE OrderAmount > 500
Câu lệnh nào sẽ trả về tất cả các khách hàng chưa thực hiện bất kỳ đơn hàng nào?
SELECT * FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID WHERE Orders.CustomerID IS NULL
SELECT * FROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID WHERE Orders.CustomerID IS NULL
SELECT * FROM Customers WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders)
Tất cả các câu trên đều đúng
Câu lệnh SELECT EmployeeID, DepartmentID, DENSE_RANK() OVER (PARTITION BY DepartmentID ORDER BY Salary DESC) AS SalaryRank FROM Employees có tác dụng gì?
Trả về thứ hạng lương của nhân viên trong mỗi phòng ban, không bỏ qua thứ hạng
Trả về thứ hạng lương của nhân viên trong mỗi phòng ban, bỏ qua các thứ hạng trùng lặp
Trả về lương của các nhân viên trong bảng Employees theo thứ tự giảm dần
Trả về tất cả các nhân viên với mức lương cao nhất trong mỗi phòng ban
Câu lệnh SELECT * FROM Orders WHERE OrderDate > (SELECT MAX(OrderDate) FROM Orders WHERE CustomerID = 'ALFKI') sẽ:
Trả về các đơn hàng có OrderDate sau ngày cuối cùng mà khách hàng 'ALFKI' đặt hàng
Trả về các đơn hàng có OrderDate trước ngày cuối cùng mà khách hàng 'ALFKI' đặt hàng
Trả về tất cả các đơn hàng có mã khách hàng 'A
