MYSQL指令合集一文詳解
更新時間:2025年11月17日 09:53:20 作者:Elias不吃糖
本文涵蓋了SQL基礎CRUD操作、表管理、條件查詢、排序、分頁、連接查詢、分組統(tǒng)計、子查詢、索引、約束、事務、數(shù)據(jù)庫/表管理以及字符集設置等內容,適合初學者全面了解數(shù)據(jù)庫操作,感興趣的朋友跟隨小編一起看看吧
一、基礎 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;
復合條件:
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. 內連接(常用)
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)計(GROUP BY + HAVING)
求每個年齡段人數(shù):
SELECT age, COUNT(*) FROM users GROUP BY age;
統(tǒng)計后過濾(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)
十一、事務(保證數(shù)據(jù)一致性)
開啟事務:
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;
查看表結構:
DESC users;
十三、字符集(防止中文亂碼)
SET NAMES utf8mb4;
或 C++ 設置:
mysql_options(conn, MYSQL_SET_CHARSET_NAME, "utf8mb4");
一個“真實項目常用 SQL 組合”
創(chuàng)建用戶表 + 插入用戶 + 查詢用戶 + 登錄驗證
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';到此這篇關于MYSQL指令合集一文詳解的文章就介紹到這了,更多相關mysql指令大全內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
linux下mysql數(shù)據(jù)庫單向同步配置方法分享
mysql數(shù)據(jù)庫單向同步又叫做主從復制,是通過二進制日志文件完成的,注意:mysql 數(shù)據(jù)庫的版本,兩個數(shù)據(jù)庫版本要相同2012-06-06
MySQL創(chuàng)建數(shù)據(jù)庫和創(chuàng)建數(shù)據(jù)表
MySQL?是最常用的數(shù)據(jù)庫,在數(shù)據(jù)庫操作中,基本都是增刪改查操作,簡稱CRUD。但是,這篇文章主要介紹了數(shù)據(jù)庫和數(shù)據(jù)表如何創(chuàng)建,想詳細了解的小伙伴可以參考閱讀一下2023-03-03
mysql 數(shù)據(jù)庫安裝經(jīng)驗問題匯總
這篇文章主要介紹了mysql 數(shù)據(jù)庫安裝經(jīng)驗問題匯總,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2016-09-09

