SQL Cheat Sheet
About 5 min
SQL Cheat Sheet
Câu truy vấn để tìm kiếm dữ liệu
SELECT: Được sử dụng để lựa chọn dữ liệu từ cơ sở dữ liệu
SELECT
*FROM
table_name;
DISTINCT: Được sử dụng để lọc bỏ các giá trị trùng lặp và trả về các hàng của các cột đã chỉ định
SELECT DISTINCT
column_name;
WHERE: Được sử dụng để lọc các bản ghi/hàng
SELECT
column1, column2FROM
table_nameWHERE
condition;SELECT
*FROM
table_nameWHERE
condition1AND
condition2;SELECT
*FROM
table_nameWHERE
condition1OR
condition2;SELECT
*FROM
table_nameWHERE NOT
condition;SELECT
*FROM
table_nameWHERE
condition1AND
(condition2OR
condition3);SELECT
*FROM
table_nameWHERE EXISTS
(SELECT
column_nameFROM
table_nameWHERE
condition);
ORDER BY: Được sử dụng để sắp xếp kết quả trả về, theo thứ tự tăng dần (ASC) hoặc giảm dần (DESC)
SELECT
*FROM
table_nameORDER BY
column;SELECT
*FROM
table_nameORDER BY
columnDESC
;SELECT
*FROM
table_nameORDER BY
column1ASC
, column2DESC
;
SELECT TOP: Được sử dụng để chỉ định số lượng bản ghi trả về từ đầu bảng
SELECT TOP
number columns_namesFROM
table_nameWHERE
condition;SELECT TOP
percent columns_namesFROM
table_nameWHERE
condition;- Không phải tất cả các hệ thống cơ sở dữ liệu đều hỗ trợ
SELECT TOP
. Trong MySQL, thay vào đó sử dụngLIMIT
trong câu truy vấn. SELECT
column_namesFROM
table_nameLIMIT
offset, count;
LIKE: Được sử dụng để tìm kiếm các mẫu cụ thể trong một cột, được sử dụng trong mệnh đề WHERE
- % (dấu phần trăm) là ký tự đại diện cho không, một hoặc nhiều ký tự
- _ (gạch dưới) là ký tự đại diện cho một ký tự duy nhất
SELECT
column_namesFROM
table_nameWHERE
column_nameLIKE
pattern;LIKE
‘a%’ (tìm kiếm bất kỳ giá trị nào bắt đầu bằng "a")LIKE
‘%a’ (tìm kiếm bất kỳ giá trị nào kết thúc bằng "a")LIKE
‘%or%’ (tìm kiếm bất kỳ giá trị nào chứa "or")LIKE
‘_r%’ (tìm kiếm bất kỳ giá trị nào có ký tự thứ hai là "r")LIKE
‘a*%*%’ (tìm kiếm bất kỳ giá trị nào bắt đầu bằng "a" và có độ dài ít nhất là 3)LIKE
‘[a-c]%’ (tìm kiếm bất kỳ giá trị nào bắt đầu bằng "a" hoặc "b" hoặc "c")
IN: Được sử dụng để chỉ định nhiều giá trị trong mệnh đề WHERE
- Thực chất, toán tử IN là viết tắt của nhiều điều kiện OR
SELECT
column_namesFROM
table_nameWHERE
column_nameIN
(value1, value2, …);SELECT
column_namesFROM
table_nameWHERE
column_nameIN
(SELECT STATEMENT
);
BETWEEN: Được sử dụng để lọc các giá trị trong một phạm vi đã cho
SELECT
column_namesFROM
table_nameWHERE
column_nameBETWEEN
value1AND
value2;SELECT
*FROM
ProductsWHERE
(column_nameBETWEEN
value1AND
value2)AND NOT
column_name2IN
(value3, value4);SELECT
*FROM
ProductsWHERE
column_nameBETWEEN
01/07/1999 AND 03/12/1999;
NULL: Đại diện cho một trường không có giá trị
SELECT
*FROM
table_nameWHERE
column_nameIS NULL
;SELECT
*FROM
table_nameWHERE
column_nameIS NOT NULL
;
AS: Được sử dụng để đặt tên bí danh cho bảng hoặc cột
SELECT
column_nameAS
alias_nameFROM
table_name;SELECT
column_nameFROM
table_nameAS
alias_name;SELECT
column_nameAS
alias_name1, column_name2AS
alias_name2;SELECT
column_name1, column_name2 + ‘, ‘ + column_name3AS
alias_name;
UNION: Được sử dụng để kết hợp kết quả của hai hoặc nhiều câu truy vấn SELECT
- Mỗi câu truy vấn SELECT phải có cùng số cột
- Các cột phải có cùng kiểu dữ liệu tương tự
- Các cột trong mỗi câu truy vấn SELECT cũng phải có cùng thứ tự
SELECT
columns_namesFROM
table1UNION SELECT
column_nameFROM
table2;UNION
chỉ cho phép lựa chọn các giá trị khác nhau,UNION ALL
cho phép lựa chọn trùng lặp
ANY|ALL: Được sử dụng để kiểm tra các điều kiện của mệnh đề con trong mệnh đề WHERE hoặc HAVING
ANY
trả về true nếu bất kỳ giá trị con của câu truy vấn thỏa mãn điều kiện.ALL
trả về true nếu tất cả các giá trị con của câu truy vấn đều thỏa mãn điều kiện.SELECT
columns_namesFROM
table1WHERE
column_name operator (ANY
|ALL
) (SELECT
column_nameFROM
table_nameWHERE
condition);
GROUP BY: Thường được sử dụng cùng với các hàm tổng hợp (COUNT, MAX, MIN, SUM, AVG), được sử dụng để nhóm kết quả thành một hoặc nhiều cột
SELECT
column_name1, COUNT(column_name2)FROM
table_nameWHERE
conditionGROUP BY
column_name1ORDER BY
COUNT(column_name2) DESC;
HAVING: Mệnh đề HAVING chỉ định rằng câu truy vấn SELECT chỉ nên trả về các giá trị tổng hợp thỏa mãn điều kiện đã chỉ định. Nó được thêm vào SQL vì từ khóa WHERE không thể được sử dụng với các hàm tổng hợp.
SELECT
COUNT
(column_name1), column_name2FROM
tableGROUP BY
column_name2HAVING
COUNT(
column_name1)
> 5;
Câu truy vấn để thay đổi dữ liệu
INSERT INTO: Được sử dụng để chèn bản ghi/hàng mới vào bảng
INSERT INTO
table_name (column1, column2)VALUES
(value1, value2);INSERT INTO
table_nameVALUES
(value1, value2 …);
UPDATE: Được sử dụng để sửa đổi các bản ghi/hàng hiện có trong bảng
UPDATE
table_nameSET
column1 = value1, column2 = value2WHERE
condition;UPDATE
table_nameSET
column_name = value;
DELETE: Được sử dụng để xóa các bản ghi/hàng hiện có trong bảng
DELETE FROM
table_nameWHERE
condition;DELETE
*FROM
table_name;
Câu truy vấn tổng hợp
COUNT: Trả về số lần xuất hiện
SELECT COUNT (DISTINCT
column_name)
;
MIN() và MAX(): Trả về giá trị nhỏ nhất/lớn nhất của cột đã chọn
SELECT MIN (
column_names) FROM
table_nameWHERE
condition;SELECT MAX (
column_names) FROM
table_nameWHERE
condition;
AVG(): Trả về giá trị trung bình của cột số
SELECT AVG (
column_name) FROM
table_nameWHERE
condition;
SUM(): Trả về tổng các giá trị của cột số
SELECT SUM (
column_name) FROM
table_nameWHERE
condition;
Câu truy vấn kết nối
INNER JOIN: Kết nối trong, trả về các bản ghi có giá trị khớp trong hai bảng
SELECT
column_namesFROM
table1INNER JOIN
table2ON
table1.column_name=table2.column_name;SELECT
table1.column_name1, table2.column_name2, table3.column_name3FROM
((table1INNER JOIN
table2ON
relationship)INNER JOIN
table3ON
relationship);
LEFT (OUTER) JOIN: Kết nối ngoài trái, trả về tất cả các bản ghi trong bảng trái (table1) và các bản ghi khớp trong bảng phải (table2)
SELECT
column_namesFROM
table1LEFT JOIN
table2ON
table1.column_name=table2.column_name;
RIGHT (OUTER) JOIN: Kết nối ngoài phải, trả về tất cả các bản ghi trong bảng phải (table2) và các bản ghi khớp trong bảng trái (table1)
SELECT
column_namesFROM
table1RIGHT JOIN
table2ON
table1.column_name=table2.column_name;
FULL (OUTER) JOIN: Kết nối ngoài đầy đủ, kết hợp của kết nối ngoài trái và kết nối ngoài phải. Bảng kết nối bao gồm tất cả các bản ghi từ bảng được kết nối, nếu thiếu bản ghi khớp, sẽ được điền bằng NULL.
SELECT
column_namesFROM
table1FULL OUTER JOIN
table2ON
table1.column_name=table2.column_name;
Self JOIN: Kết nối tự thân, kết nối bảng với chính nó
SELECT
column_namesFROM
table1 T1, table1 T2WHERE
condition;
Câu truy vấn xem
CREATE: Tạo xem
CREATE VIEW
view_nameAS SELECT
column1, column2FROM
table_nameWHERE
condition;
SELECT: Truy xuất xem
SELECT
*FROM
view_name;
DROP: Xóa xem
DROP VIEW
view_name;
Câu truy vấn để sửa đổi bảng
ADD: Thêm cột
ALTER TABLE
table_nameADD
column_name column_definition;
MODIFY: Sửa đổi kiểu dữ liệu cột
ALTER TABLE
table_nameMODIFY
column_name column_type;
DROP: Xóa cột
ALTER TABLE
table_nameDROP COLUMN
column_name;