MYSQL指令合集一文详解

 更新时间:2025年11月17日 09:53:20   作者:Elias不吃糖  
本文涵盖了SQL基础CRUD操作、表管理、条件查询、排序、分页、连接查询、分组统计、子查询、索引、约束、事务、数据库/表管理以及字符集设置等内容,适合初学者全面了解数据库操作,感兴趣的朋友跟随小编一起看看吧

 一、基础 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;

二、表的创建与修改

1. 创建表(包含主键)

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;

七、分组统计(GROUP BY + HAVING)

求每个年龄段人数:

SELECT age, COUNT(*) 
FROM users 
GROUP BY age;

统计后过滤(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. 创建索引

CREATE INDEX idx_name ON users(name);

2. 删除索引

DROP INDEX idx_name ON users;

3. 唯一索引

CREATE UNIQUE INDEX idx_email ON users(email);

十、约束(提高数据可靠性)

主键

PRIMARY KEY (id)

唯一

UNIQUE(email)

外键

CONSTRAINT fk_user
FOREIGN KEY(user_id) REFERENCES users(id)

十一、事务(保证数据一致性)

开启事务:

START TRANSACTION;

修改:

UPDATE users SET age = age - 1 WHERE id = 1;
UPDATE users SET age = age + 1 WHERE id = 2;

提交:

COMMIT;

回滚:

ROLLBACK;

十二、数据库/表管理

切换数据库:

USE dbname;

查看所有数据库:

SHOW DATABASES;

查看所有表:

SHOW TABLES;

查看表结构:

DESC users;

十三、字符集(防止中文乱码)

SET NAMES utf8mb4;

或 C++ 设置:

mysql_options(conn, MYSQL_SET_CHARSET_NAME, "utf8mb4");

一个“真实项目常用 SQL 组合”

创建用户表 + 插入用户 + 查询用户 + 登录验证

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指令大全内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql索引篇explain命令详解

    mysql索引篇explain命令详解

    这篇文章主要介绍了mysql索引篇explain命令详解,mysql中的explain命令可以用来查看sql语句是否使用了索引,用了什么索引,有没有做全表扫描,更多相关内容需要的小伙伴可以参考一下
    2022-08-08
  • linux下mysql数据库单向同步配置方法分享

    linux下mysql数据库单向同步配置方法分享

    mysql数据库单向同步又叫做主从复制,是通过二进制日志文件完成的,注意:mysql 数据库的版本,两个数据库版本要相同
    2012-06-06
  • Mysql数据库的主从同步配置

    Mysql数据库的主从同步配置

    这篇文章主要介绍了Mysql主从同步配置的相关资料,需要的朋友可以参考下文内容
    2021-08-08
  • mysql5.0入侵测试以及防范方法分享

    mysql5.0入侵测试以及防范方法分享

    这篇文章主要介绍了mysql5入侵测试以及防范方法,大家参考使用吧
    2013-12-12
  • MySQL 8.0.29 安装配置方法图文教程

    MySQL 8.0.29 安装配置方法图文教程

    这篇文章主要为大家详细介绍了MySQL 8.0.29 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • MySQL创建数据库和创建数据表

    MySQL创建数据库和创建数据表

    MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。但是,这篇文章主要介绍了数据库和数据表如何创建,想详细了解的小伙伴可以参考阅读一下
    2023-03-03
  • mysql 数据库安装经验问题汇总

    mysql 数据库安装经验问题汇总

    这篇文章主要介绍了mysql 数据库安装经验问题汇总,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • mysql数据校验过程中的字符集问题处理

    mysql数据校验过程中的字符集问题处理

    在日常应用中,我们经常会遇到在不同的字符集的数据库直接进行数据的导入导出操作,针对这个问题,我们来进行讨论下
    2014-05-05
  • MySQL覆盖索引和索引跳跃扫描方式

    MySQL覆盖索引和索引跳跃扫描方式

    这篇文章主要介绍了MySQL覆盖索引和索引跳跃扫描方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Mysql中的CHECK约束特性详解

    Mysql中的CHECK约束特性详解

    这篇文章主要介绍了Mysql中的CHECK约束特性详解的相关资料,讲解的十分浅显易懂,这里推荐给大家,需要的朋友可以参考下
    2022-08-08

最新评论