当前位置 主页 > 技术大全 >

    MySQL终极备忘单:常用命令一网打尽,速查收藏必备(下篇)

    栏目:技术大全 时间:2025-09-20 23:03

    接上篇,这篇继续为大家介绍一些MySQL 命令指南
    四、 数据操作 (CRUD)**
    1. 插入数据 (INSERT)
    ```sql
    INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
     
    -- 示例 1:插入一条完整记录(为所有列赋值)
    INSERT INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 25);
     
    -- 示例 2:插入多条记录
    INSERT INTO users (username, email, age) VALUES
    ('alice', 'alice@example.com', 30),
    ('bob', 'bob@example.com', 28);
    ```
     
    2. 查询数据 (SELECT)
    ```sql
    -- 查询所有列的所有数据
    SELECT * FROM 表名;
     
    -- 查询特定列
    SELECT 列1, 列2 FROM 表名;
    SELECT username, email FROM users; -- 示例
     
    -- 带条件的查询 (WHERE)
    SELECT * FROM 表名 WHERE 条件;
    SELECT * FROM users WHERE age > 25; -- 示例:年龄大于25的用户
    SELECT * FROM users WHERE username = 'john_doe'; -- 示例:用户名为 john_doe
     
    -- 排序 (ORDER BY)
    SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC]; -- ASC 升序 (默认), DESC 降序
    SELECT * FROM users ORDER BY created_at DESC; -- 示例:按创建时间降序(最新在前)
     
    -- 限制结果数量 (LIMIT)
    SELECT * FROM 表名 LIMIT 数量;
    SELECT * FROM users LIMIT 5; -- 示例:只取前5条
    SELECT * FROM users LIMIT 5, 10; -- 示例:跳过前5条,取接下来的10条(常用于分页)
     
    -- 模糊查询 (LIKE)
    SELECT * FROM 表名 WHERE 列名 LIKE '模式';
    SELECT * FROM users WHERE email LIKE '%@example.com'; -- 示例:查找 example.com 结尾的邮箱
    -- % 代表任意多个字符,_ 代表一个任意字符
    ```
     
    3. 更新数据 (UPDATE)
    ```sql
    UPDATE 表名 SET 列1 = 新值1, 列2 = 新值2 WHERE 条件;
     
    -- 示例:将用户 john_doe 的年龄更新为 26
    UPDATE users SET age = 26 WHERE username = 'john_doe';
     
    -- **警告:如果不加 WHERE 条件,会更新表中所有记录!**
    ```
     
    4. 删除数据 (DELETE)
    ```sql
    DELETE FROM 表名 WHERE 条件;
     
    -- 示例:删除用户名为 bob 的用户
    DELETE FROM users WHERE username = 'bob';
     
    -- **警告:如果不加 WHERE 条件,会删除表中所有记录!**
    -- 清空表(删除所有数据,但保留表结构)通常使用 TRUNCATE,更快
    TRUNCATE TABLE 表名;
    ```
     
    ---
     
    五、 用户与权限管理**
     
    1. 创建用户
    ```sql
    CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; -- 示例:本地连接
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; -- 示例:允许任何主机连接
    ```
     
    2. 授予权限
    ```sql
    GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'主机';
     
    -- 示例 1:授予用户对 mydb 数据库所有表的所有权限
    GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
     
    -- 示例 2:授予用户对特定表的 SELECT, INSERT, UPDATE 权限
    GRANT SELECT, INSERT, UPDATE ON mydb.users TO 'myuser'@'localhost';
     
    -- 授予权限后必须刷新权限
    FLUSH PRIVILEGES;
    ```
     
    3. 查看用户权限
    ```sql
    SHOW GRANTS FOR '用户名'@'主机';
    ```
     
    4. 撤销权限
    ```sql
    REVOKE 权限类型 ON 数据库名.表名 FROM '用户名'@'主机';
    REVOKE ALL PRIVILEGES ON mydb.* FROM 'myuser'@'localhost'; -- 示例
    FLUSH PRIVILEGES;
    ```
     
    5. 删除用户
    ```sql
    DROP USER '用户名'@'主机';
    ```
     
    ---
     
    六、 其他实用命令**
     
    1. 查看 MySQL 版本
    ```sql
    SELECT VERSION();
    ```
     
    2. 显示当前状态信息
    ```sql
    STATUS;
    ```
     
    3. 执行 SQL 脚本文件
    在 MySQL 命令行中:
    ```sql
    SOURCE /path/to/your/file.sql;
    ```
    在系统 Shell 中:
    ```bash
    mysql -u root -p 数据库名 < /path/to/your/file.sql
    ```
     
    4. 将查询结果导出到文件
    在 MySQL 命令行中:
    ```sql
    SELECT * FROM users INTO OUTFILE '/tmp/users.csv'
    FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    LINES TERMINATED BY '\n';
    ```
    (需要 `FILE` 权限,且输出路径 MySQL 要有写入权限)
     
    ---
     
    **总结与注意事项**
     
    1. **分号是必须的**:绝大多数 SQL 语句必须以分号 `;` 结尾才能执行。
    2. **大小写**:SQL 关键字(如 `SELECT`, `FROM`) 不区分大小写。但数据库名、表名、列名在 Linux/Unix 系统下是**区分大小写**的,在 Windows 下不区分。建议始终保持一致,使用小写和下划线是一种好习惯(如 `my_database`)。
    3. **反引号 ``**:如果数据库/表/列名是 MySQL 的保留字(如 `order`, `user`),必须用反引号括起来。
    ```sql
    CREATE TABLE `order` (`id` INT, `user` VARCHAR(50)); -- 正确
    CREATE TABLE order (id INT, user VARCHAR(50)); -- 会报错
    ```
    4. **WHERE 子句**:在执行 `UPDATE` 和 `DELETE` 时,**务必**仔细检查 `WHERE` 条件,否则可能误修改或误删大量数据。
    5. **备份!备份!备份!**:在执行任何可能破坏数据的操作(如 `DROP`, `DELETE`, `UPDATE`)前,确保你有可用的备份。
    另外搭配一款非常便捷的MYSQL备份工具,可定时备份、异地备份,MYSQL导出导入。可本地连接LINUX里的MYSQL,简单便捷。可以大大地提高工作效率喔。
    接上篇,这篇继续为大家介绍一些MySQL 命令指南
    四、 数据操作 (CRUD)**
    1. 插入数据 (INSERT)
    
    
    
    
    INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...); -- 示例 1:插入一条完整记录(为所有列赋值) INSERT INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 25); -- 示例 2:插入多条记录 INSERT INTO users (username, email, age) VALUES ('alice', 'alice@example.com', 30), ('bob', 'bob@example.com', 28);
    1. 查询数据 (SELECT)
    
    
    
    
    -- 查询所有列的所有数据 SELECT * FROM 表名; -- 查询特定列 SELECT 列1, 列2 FROM 表名; SELECT username, email FROM users; -- 示例 -- 带条件的查询 (WHERE) SELECT * FROM 表名 WHERE 条件; SELECT * FROM users WHERE age > 25; -- 示例:年龄大于25的用户 SELECT * FROM users WHERE username = 'john_doe'; -- 示例:用户名为 john_doe -- 排序 (ORDER BY) SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC]; -- ASC 升序 (默认), DESC 降序 SELECT * FROM users ORDER BY created_at DESC; -- 示例:按创建时间降序(最新在前) -- 限制结果数量 (LIMIT) SELECT * FROM 表名 LIMIT 数量; SELECT * FROM users LIMIT 5; -- 示例:只取前5条 SELECT * FROM users LIMIT 5, 10; -- 示例:跳过前5条,取接下来的10条(常用于分页) -- 模糊查询 (LIKE) SELECT * FROM 表名 WHERE 列名 LIKE '模式'; SELECT * FROM users WHERE email LIKE '%@example.com'; -- 示例:查找 example.com 结尾的邮箱 -- % 代表任意多个字符,_ 代表一个任意字符
    1. 更新数据 (UPDATE)
    
    
    
    
    UPDATE 表名 SET 列1 = 新值1, 列2 = 新值2 WHERE 条件; -- 示例:将用户 john_doe 的年龄更新为 26 UPDATE users SET age = 26 WHERE username = 'john_doe'; -- **警告:如果不加 WHERE 条件,会更新表中所有记录!**
    1. 删除数据 (DELETE)
    
    
    
    
    DELETE FROM 表名 WHERE 条件; -- 示例:删除用户名为 bob 的用户 DELETE FROM users WHERE username = 'bob'; -- **警告:如果不加 WHERE 条件,会删除表中所有记录!** -- 清空表(删除所有数据,但保留表结构)通常使用 TRUNCATE,更快 TRUNCATE TABLE 表名;

    五、 用户与权限管理**
    1. 创建用户
    
    
    
    
    CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; -- 示例:本地连接 CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; -- 示例:允许任何主机连接
    1. 授予权限
    
    
    
    
    GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'主机'; -- 示例 1:授予用户对 mydb 数据库所有表的所有权限 GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; -- 示例 2:授予用户对特定表的 SELECT, INSERT, UPDATE 权限 GRANT SELECT, INSERT, UPDATE ON mydb.users TO 'myuser'@'localhost'; -- 授予权限后必须刷新权限 FLUSH PRIVILEGES;
    1. 查看用户权限
    
    
    
    
    SHOW GRANTS FOR '用户名'@'主机';
    1. 撤销权限
    
    
    
    
    REVOKE 权限类型 ON 数据库名.表名 FROM '用户名'@'主机'; REVOKE ALL PRIVILEGES ON mydb.* FROM 'myuser'@'localhost'; -- 示例 FLUSH PRIVILEGES;
    1. 删除用户
    
    
    
    
    DROP USER '用户名'@'主机';

    六、 其他实用命令**
    1. 查看 MySQL 版本
    
    
    
    
    SELECT VERSION();
    1. 显示当前状态信息
    
    
    
    
    STATUS;
    1. 执行 SQL 脚本文件
    在 MySQL 命令行中:
    
    
    
    
    SOURCE /path/to/your/file.sql;
    在系统 Shell 中:
    
    
    
    
    mysql -u root -p 数据库名 < /path/to/your/file.sql
    1. 将查询结果导出到文件
    在 MySQL 命令行中:
    
    
    
    
    SELECT * FROM users INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
    (需要 FILE 权限,且输出路径 MySQL 要有写入权限)

    总结与注意事项
    1. 分号是必须的:绝大多数 SQL 语句必须以分号 ; 结尾才能执行。
    2. 大小写:SQL 关键字(如 SELECT, FROM) 不区分大小写。但数据库名、表名、列名在 Linux/Unix 系统下是区分大小写的,在 Windows 下不区分。建议始终保持一致,使用小写和下划线是一种好习惯(如 my_database)。
    3. 反引号 “:如果数据库/表/列名是 MySQL 的保留字(如 order, user),必须用反引号括起来。 CREATE TABLE `order` (`id` INT, `user` VARCHAR(50)); -- 正确 CREATE TABLE order (id INT, user VARCHAR(50)); -- 会报错
    4. WHERE 子句:在执行 UPDATEDELETE 时,务必仔细检查 WHERE 条件,否则可能误修改或误删大量数据。
    5. 备份!备份!备份!:在执行任何可能破坏数据的操作(如 DROP, DELETE, UPDATE)前,确保你有可用的备份。
    另外搭配一款非常便捷的MYSQL备份工具,可定时备份、异地备份,MYSQL导出导入。可本地连接LINUX里的MYSQL,简单便捷。可以大大地提高工作效率喔。
    接上篇,这篇继续为大家介绍一些MySQL 命令指南
    四、 数据操作 (CRUD)**
    1. 插入数据 (INSERT)
    
    
    
    
    INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...); -- 示例 1:插入一条完整记录(为所有列赋值) INSERT INTO users (username, email, age) VALUES ('john_doe', 'john@example.com', 25); -- 示例 2:插入多条记录 INSERT INTO users (username, email, age) VALUES ('alice', 'alice@example.com', 30), ('bob', 'bob@example.com', 28);
    1. 查询数据 (SELECT)
    
    
    
    
    -- 查询所有列的所有数据 SELECT * FROM 表名; -- 查询特定列 SELECT 列1, 列2 FROM 表名; SELECT username, email FROM users; -- 示例 -- 带条件的查询 (WHERE) SELECT * FROM 表名 WHERE 条件; SELECT * FROM users WHERE age > 25; -- 示例:年龄大于25的用户 SELECT * FROM users WHERE username = 'john_doe'; -- 示例:用户名为 john_doe -- 排序 (ORDER BY) SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC]; -- ASC 升序 (默认), DESC 降序 SELECT * FROM users ORDER BY created_at DESC; -- 示例:按创建时间降序(最新在前) -- 限制结果数量 (LIMIT) SELECT * FROM 表名 LIMIT 数量; SELECT * FROM users LIMIT 5; -- 示例:只取前5条 SELECT * FROM users LIMIT 5, 10; -- 示例:跳过前5条,取接下来的10条(常用于分页) -- 模糊查询 (LIKE) SELECT * FROM 表名 WHERE 列名 LIKE '模式'; SELECT * FROM users WHERE email LIKE '%@example.com'; -- 示例:查找 example.com 结尾的邮箱 -- % 代表任意多个字符,_ 代表一个任意字符
    1. 更新数据 (UPDATE)
    
    
    
    
    UPDATE 表名 SET 列1 = 新值1, 列2 = 新值2 WHERE 条件; -- 示例:将用户 john_doe 的年龄更新为 26 UPDATE users SET age = 26 WHERE username = 'john_doe'; -- **警告:如果不加 WHERE 条件,会更新表中所有记录!**
    1. 删除数据 (DELETE)
    
    
    
    
    DELETE FROM 表名 WHERE 条件; -- 示例:删除用户名为 bob 的用户 DELETE FROM users WHERE username = 'bob'; -- **警告:如果不加 WHERE 条件,会删除表中所有记录!** -- 清空表(删除所有数据,但保留表结构)通常使用 TRUNCATE,更快 TRUNCATE TABLE 表名;

    五、 用户与权限管理**
    1. 创建用户
    
    
    
    
    CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword'; -- 示例:本地连接 CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; -- 示例:允许任何主机连接
    1. 授予权限
    
    
    
    
    GRANT 权限类型 ON 数据库名.表名 TO '用户名'@'主机'; -- 示例 1:授予用户对 mydb 数据库所有表的所有权限 GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; -- 示例 2:授予用户对特定表的 SELECT, INSERT, UPDATE 权限 GRANT SELECT, INSERT, UPDATE ON mydb.users TO 'myuser'@'localhost'; -- 授予权限后必须刷新权限 FLUSH PRIVILEGES;
    1. 查看用户权限
    
    
    
    
    SHOW GRANTS FOR '用户名'@'主机';
    1. 撤销权限
    
    
    
    
    REVOKE 权限类型 ON 数据库名.表名 FROM '用户名'@'主机'; REVOKE ALL PRIVILEGES ON mydb.* FROM 'myuser'@'localhost'; -- 示例 FLUSH PRIVILEGES;
    1. 删除用户
    
    
    
    
    DROP USER '用户名'@'主机';

    六、 其他实用命令**
    1. 查看 MySQL 版本
    
    
    
    
    SELECT VERSION();
    1. 显示当前状态信息
    
    
    
    
    STATUS;
    1. 执行 SQL 脚本文件
    在 MySQL 命令行中:
    
    
    
    
    SOURCE /path/to/your/file.sql;
    在系统 Shell 中:
    
    
    
    
    mysql -u root -p 数据库名 < /path/to/your/file.sql
    1. 将查询结果导出到文件
    在 MySQL 命令行中:
    
    
    
    
    SELECT * FROM users INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
    (需要 FILE 权限,且输出路径 MySQL 要有写入权限)

    总结与注意事项
    1. 分号是必须的:绝大多数 SQL 语句必须以分号 ; 结尾才能执行。
    2. 大小写:SQL 关键字(如 SELECT, FROM) 不区分大小写。但数据库名、表名、列名在 Linux/Unix 系统下是区分大小写的,在 Windows 下不区分。建议始终保持一致,使用小写和下划线是一种好习惯(如 my_database)。
    3. 反引号 “:如果数据库/表/列名是 MySQL 的保留字(如 order, user),必须用反引号括起来。 CREATE TABLE `order` (`id` INT, `user` VARCHAR(50)); -- 正确 CREATE TABLE order (id INT, user VARCHAR(50)); -- 会报错
    4. WHERE 子句:在执行 UPDATEDELETE 时,务必仔细检查 WHERE 条件,否则可能误修改或误删大量数据。
    5. 备份!备份!备份!:在执行任何可能破坏数据的操作(如 DROP, DELETE, UPDATE)前,确保你有可用的备份。
    另外搭配一款非常便捷的MYSQL备份工具,可定时备份、异地备份,MYSQL导出导入。可本地连接LINUX里的MYSQL,简单便捷。可以大大地提高工作效率喔。
    添加图片注释,不超过 140 字(可选)
     
1分钟搞定MySQL部署!Docker最强实操指南,含所有常用命令和配置
忘记MySQL密码怎么办?别慌!用这一招跳过验证,轻松重置管理员权限
MySQL自增主键用完怎么办?从原理到实战,全面破解开发中的高频难题
MySQL权限混乱?这几个命令让你彻底理清用户清单与权限归属
你的数据库安全吗?读懂MySQL这几种日志,关键时刻能「救你一命」
MySQL性能上不去?八成是这里没配好!手把手教你搞定my.cnf核心配置
修改MySQL字段长度别乱来!这3个核心要点和1个致命陷阱,新手必看
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
你的MySQL数据库为什么总是又慢又卡?掌握这五大优化法则,查询速度快十倍!(上篇)
你的MySQL数据库为什么总是又慢又卡?掌握这五大优化法则,查询速度快十倍!(下篇)