Chuyển tới nội dung chính

MySQL - Cheatsheet

Cheatsheet tổng hợp các câu lệnh SQL phổ biến nhất.

cửa hàng
roadmaps
cheatsheet
tài liệu phỏng vấn

🔖 Gợi ý từ Admin

📝 Tài liệu phỏng vấn kiến thức lập trình: Xem tại đây!!!

📌 Tìm hiểu về thuật toán: Xem tại đây!!!

📌 Roadmaps - Lộ trình trở thành một lập trình viên: Xem tại đây!!!

⚡️ Cheatsheet các ngôn ngữ lập trình: Xem tại đây!!!

⚡️ Handbook lập trình: Xem tại đây!!!

I. Tổng hợp MySQL Cheatsheet

1. Cơ bản

⚡️ Kết nối MySQL (Connect MySQL)

mysql -u <user> -p

mysql [db_name]

mysql -h <host> -P <port> -u <user> -p [db_name]

mysql -h <host> -u <user> -p [db_name]

⚡️ Sao lưu (Backups)

Tạo bản sao lưu
mysqldump -u user -p db_name > db.sql
Xuất cơ sở dữ liệu mà không bao gồm cấu trúc
mysqldump -u user -p db_name --no-data=true --add-drop-table=false > db.sql
Khôi phục từ bản sao lưu
mysql -u user -p db_name < db.sql

⚡️ Cơ sở dữ liệu (Database)

LệnhMô tả
CREATE DATABASE db;Tạo cơ sở dữ liệu
SHOW DATABASES;Liệt kê cơ sở dữ liệu
USE db;Chuyển đến db
CONNECT db ;Chuyển đến db
DROP DATABASE db;Xóa db

⚡️ Bảng (Table)

LệnhMô tả
SHOW TABLES;Liệt kê bảng trong cơ sở dữ liệu hiện tại
SHOW FIELDS FROM t;Liệt kê trường cho một bảng
DESC t;Hiển thị cấu trúc của bảng
SHOW CREATE TABLE t;Hiển thị SQL tạo bảng
TRUNCATE TABLE t;Xóa toàn bộ dữ liệu trong một bảng
DROP TABLE t;Xóa bảng

⚡️ Tiến trình (Proccess)

LệnhMô tả
show processlist;Liệt kê các tiến trình
kill pid;Kết thúc tiến trình

⚡️ Khác

LệnhMô tả
exit hoặc \qThoát khỏi phiên MySQL

2. MySQL Examples

⚡️ Quản lý bảng (Managing tables)

Tạo một bảng mới với ba cột
CREATE TABLE t (
id INT,
name VARCHAR DEFAULT NOT NULL,
price INT DEFAULT 0
PRIMARY KEY(id)
);
Xóa bảng khỏi cơ sở dữ liệu
DROP TABLE t ;
Thêm một cột mới vào bảng
ALTER TABLE t ADD column;
Xóa cột c khỏi bảng
ALTER TABLE t DROP COLUMN c ;
Thêm một ràng buộc
ALTER TABLE t ADD constraint;
Xóa một ràng buộc
ALTER TABLE t DROP constraint;
Đổi tên một bảng từ t1 thành t2
ALTER TABLE t1 RENAME TO t2;
Đổi tên cột c1 thành c2
ALTER TABLE t1 RENAME c1 TO c2;
Xóa toàn bộ dữ liệu trong một bảng
TRUNCATE TABLE t;

⚡️ Truy vấn dữ liệu từ một bảng (Querying data from a table)

Truy vấn dữ liệu trong các cột c1, c2 từ một bảng
SELECT c1, c2 FROM t
Truy vấn tất cả các hàng và cột từ một bảng
SELECT * FROM t
Truy vấn dữ liệu và lọc các hàng với điều kiện
SELECT c1, c2 FROM t
WHERE condition
Truy vấn các hàng duy nhất từ một bảng
SELECT DISTINCT c1 FROM t
WHERE condition
Sắp xếp kết quả theo thứ tự tăng dần hoặc giảm dần
SELECT c1, c2 FROM t
ORDER BY c1 ASC [DESC]
Bỏ qua offset hàng và trả về n hàng tiếp theo
SELECT c1, c2 FROM t
ORDER BY c1
LIMIT n OFFSET offset
Nhóm các hàng bằng một hàm tổng hợp
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
Lọc các nhóm bằng mệnh đề HAVING
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
HAVING condition

⚡️ Truy vấn từ nhiều bảng (Querying from multiple tables)

Inner join t1 và t2
SELECT c1, c2
FROM t1
INNER JOIN t2 ON condition
Left join t1 và t1
SELECT c1, c2
FROM t1
LEFT JOIN t2 ON condition
Right join t1 và t2
SELECT c1, c2
FROM t1
RIGHT JOIN t2 ON condition
Thực hiện full outer join
SELECT c1, c2
FROM t1
FULL OUTER JOIN t2 ON condition
Tạo ra một tích Cartesian của các hàng trong bảng
SELECT c1, c2
FROM t1
CROSS JOIN t2
Một cách khác để thực hiện cross join
SELECT c1, c2
FROM t1, t2
Join t1 với chính nó bằng INNER JOIN clause
SELECT c1, c2
FROM t1 A
INNER JOIN t1 B ON condition
Sử dụng SQL Operators để kết hợp các hàng từ hai truy vấn
SELECT c1, c2 FROM t1
UNION [ALL]
SELECT c1, c2 FROM t2
Trả về phần giao của hai truy vấn
SELECT c1, c2 FROM t1
INTERSECT
SELECT c1, c2 FROM t2
Trừ một tập kết quả khỏi một tập kết quả khác
SELECT c1, c2 FROM t1
MINUS
SELECT c1, c2 FROM t2
Truy vấn các hàng sử dụng kết hợp mẫu %, _
SELECT c1, c2 FROM t1
WHERE c1 [NOT] LIKE pattern
Truy vấn các hàng trong một danh sách
SELECT c1, c2 FROM t
WHERE c1 [NOT] IN value_list
Truy vấn các hàng giữa hai giá trị
SELECT c1, c2 FROM t
WHERE c1 BETWEEN low AND high
Kiểm tra xem giá trị trong một bảng có NULL hay không
SELECT c1, c2 FROM t
WHERE c1 IS [NOT] NULL

⚡️ Sử dụng ràng buộc SQL (Using SQL constraints)

Đặt c1 và c2 làm khóa chính
CREATE TABLE t(
c1 INT, c2 INT, c3 VARCHAR,
PRIMARY KEY (c1,c2)
);
Đặt cột c2 làm khóa ngoại
CREATE TABLE t1(
c1 INT PRIMARY KEY,
c2 INT,
FOREIGN KEY (c2) REFERENCES t2(c2)
);
Đảm bảo các giá trị trong c1 và c2 là duy nhất
CREATE TABLE t(
c1 INT, c1 INT,
UNIQUE(c2,c3)
);
Đảm bảo c1 > 0 và giá trị trong c1 >= c2
CREATE TABLE t(
c1 INT, c2 INT,
CHECK(c1> 0 AND c1 >= c2)
);
Đặt giá trị trong cột c2 không NULL
CREATE TABLE t(
c1 INT PRIMARY KEY,
c2 VARCHAR NOT NULL
);

⚡️ Sửa đổi dữ liệu (Modifying Data)

Chèn một hàng vào bảng
INSERT INTO t(column_list)
VALUES(value_list);
Chèn nhiều hàng vào bảng
INSERT INTO t(column_list)
VALUES (value_list),
(value_list),;
Chèn các hàng từ t2 vào t1
INSERT INTO t1(column_list)
SELECT column_list
FROM t2;
Cập nhật giá trị mới trong cột c1 cho tất cả các hàng
UPDATE t
SET c1 = new_value;
Cập nhật giá trị trong cột c1, c2 phù hợp với điều kiện
UPDATE t
SET c1 = new_value,
c2 = new_value
WHERE condition;
Xóa tất cả dữ liệu trong một bảng
DELETE FROM t;
Xóa một phần của các hàng trong một bảng
DELETE FROM t
WHERE condition;

⚡️ Quản lý views (Managing Views)

Tạo một view mới gồm c1 và c2
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
Tạo một view mới với tùy chọn kiểm tra
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
WITH [CASCADED | LOCAL] CHECK OPTION;
Tạo một view đệ quy
CREATE RECURSIVE VIEW v
AS
select-statement -- phần neo
UNION [ALL]
select-statement; -- phần đệ quy
Tạo một view tạm thời
CREATE TEMPORARY VIEW v
AS
SELECT c1, c2
FROM t;
Xóa một view
DROP VIEW view_name;

⚡️ Quản lý Triggers (Managing triggers)

Tạo hoặc sửa một trigger
CREATE OR MODIFY TRIGGER trigger_name
WHEN EVENT
ON table_name TRIGGER_TYPE
EXECUTE stored_procedure;

⚡️ WHEN trong MySQL

Loại TRIGGERMô tả
BEFOREKích hoạt trước khi sự kiện xảy ra
AFTERKích hoạt sau khi sự kiện xảy ra

⚡️ EVENT trong MySQL

Loại sự kiệnMô tả
INSERTKích hoạt cho sự kiện INSERT
UPDATEKích hoạt cho sự kiện UPDATE
DELETEKích hoạt cho sự kiện DELETE

⚡️ TRIGGER TYPE trong MySQL

Loại TRIGGERMô tả
FOR EACH ROWÁp dụng trigger cho mỗi dòng dữ liệu
FOR EACH STATEMENTÁp dụng trigger cho mỗi câu lệnh thực hiện

⚡️ Quản lý chỉ mục (Managing indexes)

Tạo một index trên c1 và c2 của bảng t
CREATE INDEX idx_name
ON t(c1,c2);
Tạo một unique index trên c3, c4 của bảng t
CREATE UNIQUE INDEX idx_name
ON t(c3,c4)
Xóa một index
DROP INDEX idx_name;

3. MySQL Data Types

⚡️ Kiểu chuỗi trong MySQL

LoạiMô tả
CHARChuỗi (0 - 255)
VARCHARChuỗi (0 - 255)
TINYTEXTChuỗi (0 - 255)
TEXTChuỗi (0 - 65535)
BLOBChuỗi (0 - 65535)
MEDIUMTEXTChuỗi (0 - 16777215)
MEDIUMBLOBChuỗi (0 - 16777215)
LONGTEXTChuỗi (0 - 429496­7295)
LONGBLOBChuỗi (0 - 429496­7295)
ENUMMột trong các lựa chọn cố định
SETLựa chọn từ các tùy chọn cố định

⚡️ Date & Time trong MySQL

LoạiĐịnh dạng
DATEyyyy-MM-dd
TIMEhh:mm:ss
DATETIMEyyyy-MM-dd hh:mm:ss
TIMESTAMPyyyy-MM-dd hh:mm:ss
YEARyyyy

⚡️ Số (Numberic) trong MySQL

LOẠIPHẠM VI
TINYINT xSố nguyên (-128 đến 127)
SMALLINT xSố nguyên (-32768 đến 32767)
MEDIUMINT xSố nguyên (-8388608 đến 8388607)
INT xSố nguyên (-2147­483648 đến 214748­3647)
BIGINT xSố nguyên (-9223­372­036­854­775808 đến 922337­203­685­477­5807)
FLOATSố thập phân (chính xác đến 23 chữ số)
DOUBLESố thập phân (24 đến 53 chữ số)
DECIMAL"­DOU­BLE­" lưu trữ dưới dạng chuỗi

4. MySQL Functions & Operators

👉 Xem chi tiết tại đây

II. Tài liệu tham khảo

Chia sẻ: