MySQL - Cheatsheet
Cheatsheet tổng hợp các câu lệnh SQL phổ biến nhất.
🔖 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)
mysqldump -u user -p db_name > db.sql
mysqldump -u user -p db_name --no-data=true --add-drop-table=false > db.sql
mysql -u user -p db_name < db.sql
⚡️ Cơ sở dữ liệu (Database)
Lệnh | Mô 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ệnh | Mô 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ệnh | Mô 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ệnh | Mô tả |
---|---|
exit hoặc \q | Thoát khỏi phiên MySQL |
2. MySQL Examples
⚡️ Quản lý bảng (Managing tables)
CREATE TABLE t (
id INT,
name VARCHAR DEFAULT NOT NULL,
price INT DEFAULT 0
PRIMARY KEY(id)
);
DROP TABLE t ;
ALTER TABLE t ADD column;
ALTER TABLE t DROP COLUMN c ;
ALTER TABLE t ADD constraint;
ALTER TABLE t DROP constraint;
ALTER TABLE t1 RENAME TO t2;
ALTER TABLE t1 RENAME c1 TO c2;
TRUNCATE TABLE t;
⚡️ Truy vấn dữ liệu từ một bảng (Querying data from a table)
SELECT c1, c2 FROM t
SELECT * FROM t
SELECT c1, c2 FROM t
WHERE condition
SELECT DISTINCT c1 FROM t
WHERE condition
SELECT c1, c2 FROM t
ORDER BY c1 ASC [DESC]
SELECT c1, c2 FROM t
ORDER BY c1
LIMIT n OFFSET offset
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
HAVING condition
⚡️ Truy vấn từ nhiều bảng (Querying from multiple tables)
SELECT c1, c2
FROM t1
INNER JOIN t2 ON condition
SELECT c1, c2
FROM t1
LEFT JOIN t2 ON condition
SELECT c1, c2
FROM t1
RIGHT JOIN t2 ON condition
SELECT c1, c2
FROM t1
FULL OUTER JOIN t2 ON condition
SELECT c1, c2
FROM t1
CROSS JOIN t2
SELECT c1, c2
FROM t1, t2
SELECT c1, c2
FROM t1 A
INNER JOIN t1 B ON condition
SELECT c1, c2 FROM t1
UNION [ALL]
SELECT c1, c2 FROM t2
SELECT c1, c2 FROM t1
INTERSECT
SELECT c1, c2 FROM t2
SELECT c1, c2 FROM t1
MINUS
SELECT c1, c2 FROM t2
SELECT c1, c2 FROM t1
WHERE c1 [NOT] LIKE pattern
SELECT c1, c2 FROM t
WHERE c1 [NOT] IN value_list
SELECT c1, c2 FROM t
WHERE c1 BETWEEN low AND high
SELECT c1, c2 FROM t
WHERE c1 IS [NOT] NULL
⚡️ Sử dụng ràng buộc SQL (Using SQL constraints)
CREATE TABLE t(
c1 INT, c2 INT, c3 VARCHAR,
PRIMARY KEY (c1,c2)
);
CREATE TABLE t1(
c1 INT PRIMARY KEY,
c2 INT,
FOREIGN KEY (c2) REFERENCES t2(c2)
);
CREATE TABLE t(
c1 INT, c1 INT,
UNIQUE(c2,c3)
);
CREATE TABLE t(
c1 INT, c2 INT,
CHECK(c1> 0 AND c1 >= c2)
);
CREATE TABLE t(
c1 INT PRIMARY KEY,
c2 VARCHAR NOT NULL
);
⚡️ Sửa đổi dữ liệu (Modifying Data)
INSERT INTO t(column_list)
VALUES(value_list);
INSERT INTO t(column_list)
VALUES (value_list),
(value_list), …;
INSERT INTO t1(column_list)
SELECT column_list
FROM t2;
UPDATE t
SET c1 = new_value;
UPDATE t
SET c1 = new_value,
c2 = new_value
WHERE condition;
DELETE FROM t;
DELETE FROM t
WHERE condition;
⚡️ Quản lý views (Managing Views)
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
WITH [CASCADED | LOCAL] CHECK OPTION;
CREATE RECURSIVE VIEW v
AS
select-statement -- phần neo
UNION [ALL]
select-statement; -- phần đệ quy
CREATE TEMPORARY VIEW v
AS
SELECT c1, c2
FROM t;
DROP VIEW view_name;
⚡️ Quản lý Triggers (Managing triggers)
CREATE OR MODIFY TRIGGER trigger_name
WHEN EVENT
ON table_name TRIGGER_TYPE
EXECUTE stored_procedure;
⚡️ WHEN trong MySQL
Loại TRIGGER | Mô tả |
---|---|
BEFORE | Kích hoạt trước khi sự kiện xảy ra |
AFTER | Kích hoạt sau khi sự kiện xảy ra |
⚡️ EVENT trong MySQL
Loại sự kiện | Mô tả |
---|---|
INSERT | Kích hoạt cho sự kiện INSERT |
UPDATE | Kích hoạt cho sự kiện UPDATE |
DELETE | Kích hoạt cho sự kiện DELETE |
⚡️ TRIGGER TYPE trong MySQL
Loại TRIGGER | Mô 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)
CREATE INDEX idx_name
ON t(c1,c2);
CREATE UNIQUE INDEX idx_name
ON t(c3,c4)
DROP INDEX idx_name;
3. MySQL Data Types
⚡️ Kiểu chuỗi trong MySQL
Loại | Mô tả |
---|---|
CHAR | Chuỗi (0 - 255) |
VARCHAR | Chuỗi (0 - 255) |
TINYTEXT | Chuỗi (0 - 255) |
TEXT | Chuỗi (0 - 65535) |
BLOB | Chuỗi (0 - 65535) |
MEDIUMTEXT | Chuỗi (0 - 16777215) |
MEDIUMBLOB | Chuỗi (0 - 16777215) |
LONGTEXT | Chuỗi (0 - 4294967295) |
LONGBLOB | Chuỗi (0 - 4294967295) |
ENUM | Một trong các lựa chọn cố định |
SET | Lựa chọn từ các tùy chọn cố định |
⚡️ Date & Time trong MySQL
Loại | Định dạng |
---|---|
DATE | yyyy-MM-dd |
TIME | hh:mm:ss |
DATETIME | yyyy-MM-dd hh:mm:ss |
TIMESTAMP | yyyy-MM-dd hh:mm:ss |
YEAR | yyyy |
⚡️ Số (Numberic) trong MySQL
LOẠI | PHẠM VI |
---|---|
TINYINT x | Số nguyên (-128 đến 127) |
SMALLINT x | Số nguyên (-32768 đến 32767) |
MEDIUMINT x | Số nguyên (-8388608 đến 8388607) |
INT x | Số nguyên (-2147483648 đến 2147483647) |
BIGINT x | Số nguyên (-9223372036854775808 đến 9223372036854775807) |
FLOAT | Số thập phân (chính xác đến 23 chữ số) |
DOUBLE | Số thập phân (24 đến 53 chữ số) |
DECIMAL | "DOUBLE" lưu trữ dưới dạng chuỗi |
4. MySQL Functions & Operators
👉 Xem chi tiết tại đây