MYSQL指令合集一文詳解
一、基礎(chǔ) CRUD(增刪查改)
1. 查詢(SELECT)
SELECT * FROM table_name; SELECT name, age FROM users; SELECT * FROM users WHERE id = 1; SELECT * FROM users WHERE name = 'Elias';
2. 插入(INSERT)
INSERT INTO users(name, age) VALUES ('Jack', 20);
INSERT INTO users(id, name, age) VALUES (1, 'Lily', 22);
插入多條:
INSERT INTO users(name, age)
VALUES ('A', 10), ('B', 20), ('C', 30);
3. 更新(UPDATE)
UPDATE users SET age = 25 WHERE id = 1; UPDATE users SET name = 'Mike', age = 18 WHERE id = 2;
4. 刪除(DELETE)
DELETE FROM users WHERE id = 1; DELETE FROM users WHERE age < 10;
二、表的創(chuàng)建與修改
1. 創(chuàng)建表(包含主鍵)
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT
);
2. 刪除表
DROP TABLE users;
3. 修改表(ADD / DROP / MODIFY)
增加字段:
ALTER TABLE users ADD email VARCHAR(100);
刪除字段:
ALTER TABLE users DROP COLUMN email;
修改字段類型:
ALTER TABLE users MODIFY age INT NOT NULL;
修改表名:
ALTER TABLE users RENAME TO members;
三、條件查詢(WHERE)
常用條件:
SELECT * FROM users WHERE age >= 18; SELECT * FROM users WHERE age BETWEEN 18 AND 30; SELECT * FROM users WHERE name LIKE 'A%'; -- A 開頭 SELECT * FROM users WHERE name LIKE '%abc%'; -- 包含 abc SELECT * FROM users WHERE age IN (18, 20, 25); SELECT * FROM users WHERE age IS NULL; SELECT * FROM users WHERE age IS NOT NULL;
復(fù)合條件:
SELECT * FROM users WHERE age > 18 AND name = 'Jack'; SELECT * FROM users WHERE age < 18 OR age > 60;
四、排序(ORDER BY)
SELECT * FROM users ORDER BY age DESC; SELECT * FROM users ORDER BY age ASC, name ASC;
五、分頁(LIMIT)
SELECT * FROM users LIMIT 10; -- 前 10 條 SELECT * FROM users LIMIT 5 OFFSET 10;
前端常用分頁:
SELECT * FROM users LIMIT (page-1)*size, size;
六、連接查詢(JOIN)
1. 內(nèi)連接(常用)
SELECT u.name, o.order_id FROM users u JOIN orders o ON u.id = o.user_id;
2. 左連接(主表全部 + 匹配)
SELECT u.name, o.order_id FROM users u LEFT JOIN orders o ON u.id = o.user_id;
3. 右連接
SELECT u.name, o.order_id FROM users u RIGHT JOIN orders o ON u.id = o.user_id;
七、分組統(tǒng)計(jì)(GROUP BY + HAVING)
求每個(gè)年齡段人數(shù):
SELECT age, COUNT(*) FROM users GROUP BY age;
統(tǒng)計(jì)后過濾(HAVING):
SELECT age, COUNT(*) AS cnt FROM users GROUP BY age HAVING cnt >= 2;
求平均值:
SELECT AVG(age) FROM users; SELECT SUM(age), MIN(age), MAX(age) FROM users;
八、子查詢
SELECT * FROM users WHERE age > (SELECT AVG(age) FROM users); SELECT name FROM users WHERE id IN (SELECT user_id FROM orders);
九、索引(提高查詢速度)
1. 創(chuàng)建索引
CREATE INDEX idx_name ON users(name);
2. 刪除索引
DROP INDEX idx_name ON users;
3. 唯一索引
CREATE UNIQUE INDEX idx_email ON users(email);
十、約束(提高數(shù)據(jù)可靠性)
主鍵
PRIMARY KEY (id)
唯一
UNIQUE(email)
外鍵
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id)
十一、事務(wù)(保證數(shù)據(jù)一致性)
開啟事務(wù):
START TRANSACTION;
修改:
UPDATE users SET age = age - 1 WHERE id = 1; UPDATE users SET age = age + 1 WHERE id = 2;
提交:
COMMIT;
回滾:
ROLLBACK;
十二、數(shù)據(jù)庫/表管理
切換數(shù)據(jù)庫:
USE dbname;
查看所有數(shù)據(jù)庫:
SHOW DATABASES;
查看所有表:
SHOW TABLES;
查看表結(jié)構(gòu):
DESC users;
十三、字符集(防止中文亂碼)
SET NAMES utf8mb4;
或 C++ 設(shè)置:
mysql_options(conn, MYSQL_SET_CHARSET_NAME, "utf8mb4");
一個(gè)“真實(shí)項(xiàng)目常用 SQL 組合”
創(chuàng)建用戶表 + 插入用戶 + 查詢用戶 + 登錄驗(yàn)證
CREATE TABLE user(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) UNIQUE,
password VARCHAR(100),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO user(name, password) VALUES ('Elias', '123456');
SELECT id, name FROM user WHERE name='Elias' AND password='123456';到此這篇關(guān)于MYSQL指令合集一文詳解的文章就介紹到這了,更多相關(guān)mysql指令大全內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解讀MySQL中一個(gè)B+樹能存儲多少數(shù)據(jù)
這篇文章主要介紹了解讀MySQL中一個(gè)B+樹能存儲多少數(shù)據(jù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
在IDEA中直接使用可視化方式創(chuàng)建項(xiàng)目數(shù)據(jù)庫的具體步驟
使用IDEA進(jìn)行數(shù)據(jù)庫操作隨著科技的發(fā)展和全球數(shù)字化的推進(jìn),數(shù)據(jù)庫已經(jīng)成為企業(yè)和組織運(yùn)作的核心組件之一,這篇文章主要介紹了在IDEA中直接使用可視化方式創(chuàng)建項(xiàng)目數(shù)據(jù)庫的具體步驟,需要的朋友可以參考下2025-10-10
mysql中inner join和left join使用詳解
本文主要介紹了mysql中inner join和left join使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
一個(gè)案例徹底弄懂如何正確使用mysql inndb聯(lián)合索引
今天小編就為大家分享一篇關(guān)于一個(gè)案例徹底弄懂如何正確使用mysql inndb聯(lián)合索引,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
一文揭秘MySQL導(dǎo)致索引失效的隱式類型轉(zhuǎn)換規(guī)則與案例
隱式類型轉(zhuǎn)換是個(gè)隱形殺手,它潛藏在代碼細(xì)節(jié)中,很容易影響著性能優(yōu)化,MySQL的隱式類型轉(zhuǎn)換規(guī)則和典型案例,能幫助你提前識破這些問題,下面小編就為大家簡單介紹一下吧2025-10-10

