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*FROMtable_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 DISTINCTcolumn_name;
WHERE: Được sử dụng để lọc các bản ghi/hàng
SELECTcolumn1, column2FROMtable_nameWHEREcondition;SELECT*FROMtable_nameWHEREcondition1ANDcondition2;SELECT*FROMtable_nameWHEREcondition1ORcondition2;SELECT*FROMtable_nameWHERE NOTcondition;SELECT*FROMtable_nameWHEREcondition1AND(condition2ORcondition3);SELECT*FROMtable_nameWHERE EXISTS(SELECTcolumn_nameFROMtable_nameWHEREcondition);
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*FROMtable_nameORDER BYcolumn;SELECT*FROMtable_nameORDER BYcolumnDESC;SELECT*FROMtable_nameORDER BYcolumn1ASC, column2DESC;
SELECT TOP: Được sử dụng để chỉ định số lượng bản ghi trả về từ đầu bảng
SELECT TOPnumber columns_namesFROMtable_nameWHEREcondition;SELECT TOPpercent columns_namesFROMtable_nameWHEREcondition;- 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ụngLIMITtrong câu truy vấn. SELECTcolumn_namesFROMtable_nameLIMIToffset, 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
SELECTcolumn_namesFROMtable_nameWHEREcolumn_nameLIKEpattern;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
SELECTcolumn_namesFROMtable_nameWHEREcolumn_nameIN(value1, value2, …);SELECTcolumn_namesFROMtable_nameWHEREcolumn_nameIN(SELECT STATEMENT);
BETWEEN: Được sử dụng để lọc các giá trị trong một phạm vi đã cho
SELECTcolumn_namesFROMtable_nameWHEREcolumn_nameBETWEENvalue1ANDvalue2;SELECT*FROMProductsWHERE(column_nameBETWEENvalue1ANDvalue2)AND NOTcolumn_name2IN(value3, value4);SELECT*FROMProductsWHEREcolumn_nameBETWEEN01/07/1999 AND 03/12/1999;
NULL: Đại diện cho một trường không có giá trị
SELECT*FROMtable_nameWHEREcolumn_nameIS NULL;SELECT*FROMtable_nameWHEREcolumn_nameIS NOT NULL;
AS: Được sử dụng để đặt tên bí danh cho bảng hoặc cột
SELECTcolumn_nameASalias_nameFROMtable_name;SELECTcolumn_nameFROMtable_nameASalias_name;SELECTcolumn_nameASalias_name1, column_name2ASalias_name2;SELECTcolumn_name1, column_name2 + ‘, ‘ + column_name3ASalias_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ự
SELECTcolumns_namesFROMtable1UNION SELECTcolumn_nameFROMtable2;UNIONchỉ cho phép lựa chọn các giá trị khác nhau,UNION ALLcho 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
ANYtrả 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.ALLtrả 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.SELECTcolumns_namesFROMtable1WHEREcolumn_name operator (ANY|ALL) (SELECTcolumn_nameFROMtable_nameWHEREcondition);
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
SELECTcolumn_name1, COUNT(column_name2)FROMtable_nameWHEREconditionGROUP BYcolumn_name1ORDER BYCOUNT(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.
SELECTCOUNT(column_name1), column_name2FROMtableGROUP BYcolumn_name2HAVINGCOUNT(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 INTOtable_name (column1, column2)VALUES(value1, value2);INSERT INTOtable_nameVALUES(value1, value2 …);
UPDATE: Được sử dụng để sửa đổi các bản ghi/hàng hiện có trong bảng
UPDATEtable_nameSETcolumn1 = value1, column2 = value2WHEREcondition;UPDATEtable_nameSETcolumn_name = value;
DELETE: Được sử dụng để xóa các bản ghi/hàng hiện có trong bảng
DELETE FROMtable_nameWHEREcondition;DELETE*FROMtable_name;
Câu truy vấn tổng hợp
COUNT: Trả về số lần xuất hiện
SELECT COUNT (DISTINCTcolumn_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) FROMtable_nameWHEREcondition;SELECT MAX (column_names) FROMtable_nameWHEREcondition;
AVG(): Trả về giá trị trung bình của cột số
SELECT AVG (column_name) FROMtable_nameWHEREcondition;
SUM(): Trả về tổng các giá trị của cột số
SELECT SUM (column_name) FROMtable_nameWHEREcondition;
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
SELECTcolumn_namesFROMtable1INNER JOINtable2ONtable1.column_name=table2.column_name;SELECTtable1.column_name1, table2.column_name2, table3.column_name3FROM((table1INNER JOINtable2ONrelationship)INNER JOINtable3ONrelationship);
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)
SELECTcolumn_namesFROMtable1LEFT JOINtable2ONtable1.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)
SELECTcolumn_namesFROMtable1RIGHT JOINtable2ONtable1.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.
SELECTcolumn_namesFROMtable1FULL OUTER JOINtable2ONtable1.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ó
SELECTcolumn_namesFROMtable1 T1, table1 T2WHEREcondition;
Câu truy vấn xem
CREATE: Tạo xem
CREATE VIEWview_nameAS SELECTcolumn1, column2FROMtable_nameWHEREcondition;
SELECT: Truy xuất xem
SELECT*FROMview_name;
DROP: Xóa xem
DROP VIEWview_name;
Câu truy vấn để sửa đổi bảng
ADD: Thêm cột
ALTER TABLEtable_nameADDcolumn_name column_definition;
MODIFY: Sửa đổi kiểu dữ liệu cột
ALTER TABLEtable_nameMODIFYcolumn_name column_type;
DROP: Xóa cột
ALTER TABLEtable_nameDROP COLUMNcolumn_name;