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, column2 FROM table_name WHERE condition;
SELECT * FROM table_name WHERE condition1 AND condition2;
SELECT * FROM table_name WHERE condition1 OR condition2;
SELECT * FROM table_name WHERE NOT condition;
SELECT * FROM table_name WHERE condition1 AND (condition2 OR condition3);
SELECT * FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE 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_name ORDER BY column;
SELECT * FROM table_name ORDER BY column DESC;
SELECT * FROM table_name ORDER BY column1 ASC, column2 DESC;
SELECT TOP: Được sử dụng để chỉ định số lượng bản ghi trả về từ đầu bảng
SELECT TOP number columns_names FROM table_name WHERE condition;
SELECT TOP percent columns_names FROM table_name WHERE 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ụng LIMIT trong câu truy vấn.
SELECT column_names FROM table_name LIMIT 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_names FROM table_name WHERE column_name LIKE 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_names FROM table_name WHERE column_name IN (value1, value2, …);
SELECT column_names FROM table_name WHERE column_name IN (SELECT STATEMENT);
BETWEEN: Được sử dụng để lọc các giá trị trong một phạm vi đã cho
SELECT column_names FROM table_name WHERE column_name BETWEEN value1 AND value2;
SELECT * FROM Products WHERE (column_name BETWEEN value1 AND value2) AND NOT column_name2 IN (value3, value4);
SELECT * FROM Products WHERE column_name BETWEEN1999 AND1999;
NULL: Đại diện cho một trường không có giá trị
SELECT * FROM table_name WHERE column_name IS NULL;
SELECT * FROM table_name WHERE column_name IS NOT NULL;
AS: Được sử dụng để đặt tên bí danh cho bảng hoặc cột
SELECT column_name AS alias_name FROM table_name;
SELECT column_name FROM table_name AS alias_name;
SELECT column_name AS alias_name1, column_name2 AS alias_name2;
SELECT column_name1, column_name2 + ‘, ‘ + column_name3 AS 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_names FROM table1 UNION SELECT column_name FROM 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_names FROM table1 WHERE column_name operator (ANY|ALL) (SELECT column_name FROM table_name WHERE 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_name WHERE condition GROUP BY column_name1 ORDER 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.
SELECTCOUNT(column_name1), column_name2 FROM table GROUP BY column_name2 HAVINGCOUNT(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_name VALUES (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_name SET column1 = value1, column2 = value2 WHERE condition;
UPDATE table_name SET 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_name WHERE 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_name WHERE condition;
SELECT MAX (column_names) FROM table_name WHERE condition;
AVG(): Trả về giá trị trung bình của cột số
SELECT AVG (column_name) FROM table_name WHERE condition;
SUM(): Trả về tổng các giá trị của cột số
SELECT SUM (column_name) FROM table_name WHERE 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_names FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name;
SELECT table1.column_name1, table2.column_name2, table3.column_name3 FROM ((table1 INNER JOIN table2 ON relationship) INNER JOIN table3 ON 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_names FROM table1 LEFT JOIN table2 ON 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_names FROM table1 RIGHT JOIN table2 ON 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_names FROM table1 FULL OUTER JOIN table2 ON 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_names FROM table1 T1, table1 T2 WHERE condition;
Câu truy vấn xem
CREATE: Tạo xem
CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE 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_name ADD column_name column_definition;
MODIFY: Sửa đổi kiểu dữ liệu cột
ALTER TABLE table_name MODIFY column_name column_type;