菜鸟科技网

MySQL所有命令有哪些?

MySQL 是一种广泛使用的开源关系型数据库管理系统,其命令行工具提供了丰富的功能,用于数据库的创建、管理、查询和维护,以下是 MySQL 常用命令的详细说明,涵盖连接数据库、数据库操作、表操作、数据操作、用户与权限管理、备份与恢复等多个方面。

MySQL所有命令有哪些?-图1
(图片来源网络,侵删)

连接与退出 MySQL

  1. 连接 MySQL 服务器

    mysql -u 用户名 -p

    执行后会提示输入密码,若连接远程服务器,可添加 -h 参数(如 -h 192.168.1.100),指定端口则用 -P(如 -P 3306)。

  2. 退出 MySQL

    exit;
    quit;
    \q;

数据库操作

  1. 显示所有数据库

    MySQL所有命令有哪些?-图2
    (图片来源网络,侵删)
    SHOW DATABASES;
  2. 创建数据库

    CREATE DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    示例:CREATE DATABASE mydb;

  3. 选择数据库

    USE 数据库名;
  4. 删除数据库

    MySQL所有命令有哪些?-图3
    (图片来源网络,侵删)
    DROP DATABASE 数据库名;
  5. 修改数据库字符集

    ALTER DATABASE 数据库名 CHARACTER SET utf8mb4;

表操作

  1. 显示当前数据库的所有表

    SHOW TABLES;
  2. 创建表

    CREATE TABLE 表名 (
        列名1 数据类型 [约束],
        列名2 数据类型 [约束],
        PRIMARY KEY (列名)
    );

    示例:

    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50) NOT NULL,
        email VARCHAR(100) UNIQUE
    );
  3. 查看表结构

    DESC 表名;
    SHOW COLUMNS FROM 表名;
  4. 修改表结构

    • 添加列:ALTER TABLE 表名 ADD 列名 数据类型;
    • 修改列:ALTER TABLE 表名 MODIFY 列名 新数据类型;
    • 删除列:ALTER TABLE 表名 DROP 列名;
    • 重命名表:RENAME TABLE 旧表名 TO 新表名;
  5. 删除表

    DROP TABLE 表名;

数据操作(CRUD)

  1. 插入数据(INSERT)

    INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);

    批量插入:

    INSERT INTO 表名 VALUES (值1, 值2), (值3, 值4);
  2. 查询数据(SELECT)

    SELECT 列名 FROM 表名 WHERE 条件 ORDER BY 列名 LIMIT 数量;

    示例:

    SELECT * FROM users WHERE age > 18 ORDER BY name LIMIT 10;
  3. 更新数据(UPDATE)

    UPDATE 表名 SET 列名=新值 WHERE 条件;

    注意:务必添加 WHERE 条件,否则会更新全表数据。

  4. 删除数据(DELETE)

    DELETE FROM 表名 WHERE 条件;

数据类型与约束

  1. 常用数据类型
    | 类型 | 说明 | 示例 |
    |---------------|-----------------------------|--------------------|
    | INT | 整数 | age INT |
    | VARCHAR | 可变长度字符串 | name VARCHAR(50) |
    | TEXT | 长文本 | content TEXT |
    | DATETIME | 日期时间(YYYY-MM-DD HH:MM:SS)| created_at DATETIME |
    | DECIMAL | 精确小数 | price DECIMAL(10,2) |

  2. 常用约束

    • PRIMARY KEY:主键,唯一标识记录。
    • UNIQUE:唯一约束,值不能重复。
    • NOT NULL:非空约束。
    • DEFAULT:默认值。
    • FOREIGN KEY:外键,用于关联表。

索引与优化

  1. 创建索引

    CREATE INDEX 索引名 ON 表名 (列名);
  2. 查看索引

    SHOW INDEX FROM 表名;
  3. 删除索引

    DROP INDEX 索引名 ON 表名;

用户与权限管理

  1. 创建用户

    CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';

    示例:CREATE USER 'admin'@'localhost' IDENTIFIED BY '123456';

  2. 授予权限

    GRANT 权限列表 ON 数据库名.* TO '用户名'@'主机';

    示例:GRANT SELECT, INSERT ON mydb.* TO 'admin'@'localhost';

  3. 刷新权限

    FLUSH PRIVILEGES;
  4. 撤销权限

    REVOKE 权限 ON 数据库名.* FROM '用户名'@'主机';
  5. 删除用户

    DROP USER '用户名'@'主机';

备份与恢复

  1. 备份数据库(mysqldump)

    mysqldump -u 用户名 -p 数据库名 > 备份文件.sql

    备份所有数据库:mysqldump -u root -p --all-databases > all.sql

  2. 恢复数据库

    mysql -u 用户名 -p 数据库名 < 备份文件.sql

其他常用命令

  1. 显示当前用户

    SELECT USER();
  2. 显示当前数据库版本

    SELECT VERSION();
  3. 清空表数据(保留表结构)

    TRUNCATE TABLE 表名;
  4. 执行 SQL 文件

    SOURCE /路径/文件名.sql;

相关问答 FAQs

Q1:如何查看 MySQL 的运行状态?
A1:可以通过以下命令查看 MySQL 服务器的运行状态:

SHOW STATUS;

或查看特定状态变量,如:

SHOW VARIABLES LIKE 'max_connections';

在 Linux 系统中,可通过 systemctl status mysql 查看服务运行状态。

Q2:忘记 MySQL root 密码怎么办?
A2:可通过以下步骤重置 root 密码:

  1. 停止 MySQL 服务:systemctl stop mysql(Linux)或通过任务管理器停止(Windows)。
  2. 跳过权限表启动 MySQL:
    • Linux:mysqld_safe --skip-grant-tables &
    • Windows:在命令行中执行 mysqld --skip-grant-tables
  3. 无密码登录 MySQL:mysql -u root
  4. 执行以下命令修改密码(假设新密码为 "newpassword"):
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('newpassword') WHERE User='root';
    FLUSH PRIVILEGES;
  5. 重启 MySQL 服务,使用新密码登录。
分享:
扫描分享到社交APP
上一篇
下一篇