You are on page 1of 2

-- I.

Thứ tự truy vấn


/*
SELECT tên cột 1, tên cột 2, ...
FROM các bảng
[WHERE điều kiện chọn]
[GROUP BY nhóm]
[HAVING điều kiện chọn nhóm]
[ORDER BY các cột sắp xếp] ASC DESC
[LIMIT giới hạn số lượng]; */

USE classicmodels;

-- II. SELECT
# Ví dụ 1: Truy vấn tất cả thông tin về nhân viên
SELECT * FROM employees;
# Ví dụ 2: Xem tên, họ và vị trí công việc của nhân viên
SELECT lastname, firstname, jobtitle
FROM Employees;
# Ví dụ 3: Lấy ra thông tin về mã sản phẩm và tên sản phẩm
SELECT ProductCode, ProductName
FROM Products;

-- III. WHERE
# Ví dụ 4: Tìm chủ tịch của công ty
SELECT FirstName, LastName, email
FROM Employees
WHERE jobtitle = "President"; #Jobtittle - chức vụ công việc
# Ví dụ 5: Tìm thông tin về khách hàng có mã là 112
SELECT customerNumber, customerName, contactLastName, contactFirstName, creditLimit
FROM Customers
WHERE customerNumber=112;
# Ví dụ 6: Đưa ra các đơn hàng có mã khách hàng là 181
SELECT *
FROM orders
WHERE customerNumber = 181;

-- IV. AND và OR
# Ví dụ 7: Đưa ra các khách hàng tại Mỹ của người chăm sóc khách hàng có mã là 1165
SELECT *
FROM customers
WHERE country ='USA' and salesRepEmployeeNumber = 1165;
# Ví dụ 8: Đưa ra các đơn hàng có trạng thái là 'On Hold' (tạm ngừng) hoặc 'In
Process' (đang tiến hành)
SELECT *
FROM orders
WHERE status = 'On Hold' or status ='In Process' or status = "Shipped";

-- V. IS NULL: Tìm các giá trị không xác định


# Ví dụ 9: Đưa ra các khách hàng chưa được gán nhân viên chăm sóc
SELECT customerName, salesRepEmployeeNumber
FROM customers
WHERE salesRepEmployeeNumber is NULL; #(không được viết là = Null)

-- VI. DISTINCT
# Ví dụ 10: Để tìm thấy bao nhiêu vị trí công việc của tất cả các nhân viên
SELECT DISTINCT jobTitle #(thử bỏ distinct để thấy sự khác biệt)
FROM Employees;

# Ví dụ 11: Tìm ra mã số các sản phẩm đã được mua bằng truy vấn
SELECT DISTINCT productCode
FROM OrderDetails;

-- VII. LIMIT
# Ví dụ 12: Lấy ra thông tin về tên của 5 sản phẩm đầu tiên trong bảng Product
SELECT productName
FROM Products
LIMIT 5;
#Có thể viết là Limit 0,5
#Lệnh Limit này lấy ra 5 dòng đầu tiên, vị trí đầu tiên được bắt đầu với 0.

# Lấy ra thông tin về 5 sản phẩm đầu tính từ hàng thứ 1, chạy thử để thấy sự khác
biệt với ví dụ 12
SELECT productName
FROM Products
LIMIT 1,5;

# Ví dụ 13: Lấy ra thông tin về 10 khách hàng đầu tiên hiện đang ở Pháp
SELECT *
FROM customers
WHERE country = "France"
Limit 10;
# Nếu như muốn lấy dòng cuối cùng, vẫn dùng lệnh Limit và kết hợp lệnh sắp xếp
Order By Desc
SELECT *
FROM customers
WHERE country = "France"
ORDER BY customerNumber DESC
Limit 10;

# Ví dụ 13-1: Ví dụ ta muốn lấy 10 dòng cuối cùng


SELECT *
FROM customers
ORDER BY customerNumber DESC
LIMIT 10;
# Hoặc là sử dụng hàm COUNT kết hợp * để đếm tổng số hàng
SELECT COUNT(*)
FROM customers;
SELECT *
FROM customers
Limit 112, 10;
/*
+)Trong đó 112 là số thứ tự, 10 là hàng phải lấy
+) Ở đây ta phải lấy 10 hàng cuối cùng. 122 là tất cả các hàng ta tìm
được sau câu lệnh SELECT COUNT(*). Nhưng do Limit bắt đầu từ 0, cho nên số
thứ tự của hàng 122 sẽ là 121.
+) Số thứ tự của hàng mốc mà ta phải lấy là 121 - 10 + 1 = 112
+) Cho nên câu lệnh đúng sẽ là 112,10
*/

You might also like