菜鸟科技网

MySQL访问命令有哪些基础用法?

MySQL 是一款广泛使用的开源关系型数据库管理系统,掌握其访问命令是进行数据库操作的基础,MySQL 的访问命令主要通过命令行客户端(如 mysql)或图形化工具(如 MySQL Workbench、Navicat)执行,其中命令行方式是最直接且高效的手段,以下将从连接 MySQL、数据库操作、表操作、数据操作、权限管理等方面详细介绍 MySQL 的核心访问命令。

MySQL访问命令有哪些基础用法?-图1
(图片来源网络,侵删)

连接 MySQL 服务器

要使用 MySQL,首先需要连接到 MySQL 服务器,基本命令格式为:

mysql -h 主机名 -P 端口号 -u 用户名 -p

参数说明:

  • -h:指定 MySQL 服务器的 IP 地址或主机名,本地连接可省略或使用 localhost
  • -P:端口号,默认为 3306,若未修改可省略。
  • -u:用户名,如 root(管理员账户)。
  • -p:提示输入密码,输入后按回车即可连接。

示例(连接本地 MySQL 服务器):

mysql -u root -p

连接成功后,会显示 mysql> 提示符,此时可输入 SQL 命令或特定管理命令。

MySQL访问命令有哪些基础用法?-图2
(图片来源网络,侵删)

数据库操作

显示所有数据库

SHOW DATABASES;

创建数据库

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

utf8mb4 支持 emoji 和特殊字符,推荐使用)

选择数据库

USE 数据库名;

删除数据库

DROP DATABASE 数据库名;

表操作

显示当前数据库的所有表

SHOW TABLES;

创建表

CREATE TABLE 表名 (
    字段名1 数据类型 [约束],
    字段名2 数据类型 [约束],
    ...
);

示例(创建用户表):

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    age INT DEFAULT 18,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

查看表结构

DESC 表名;

修改表结构

  • 添加字段:
    ALTER TABLE 表名 ADD 字段名 数据类型 [约束];
  • 修改字段:
    ALTER TABLE 表名 MODIFY 字段名 新数据类型 [约束];
  • 删除字段:
    ALTER TABLE 表名 DROP 字段名;

    删除表

    DROP TABLE 表名;

数据操作(CRUD)

插入数据(INSERT)

INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);

示例:

INSERT INTO users (username, email, age) VALUES ('Alice', 'alice@example.com', 25);

查询数据(SELECT)

  • 基本查询:
    SELECT 字段1, 字段2 FROM 表名 WHERE 条件;
  • 示例(查询年龄大于 30 的用户):
    SELECT username, email FROM users WHERE age > 30;
  • 排序与分页:
    SELECT * FROM 表名 ORDER BY 字段名 [ASC/DESC] LIMIT 起始位置, 记录数;

    更新数据(UPDATE)

    UPDATE 表名 SET 字段1=新值1, 字段2=新值2 WHERE 条件;

    注意:未加 WHERE 条件会更新全表数据,需谨慎操作)

    MySQL访问命令有哪些基础用法?-图3
    (图片来源网络,侵删)

    删除数据(DELETE)

    DELETE FROM 表名 WHERE 条件;

    (同样需注意 WHERE 条件,避免误删全表数据)

用户与权限管理

创建用户

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

示例(创建本地用户):

CREATE USER 'dev'@'localhost' IDENTIFIED BY 'Dev@123';

授权

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';
  • 权限列表:如 SELECT, INSERT, UPDATE, DELETE(可使用 ALL 表示所有权限)。
  • 数据库名和表名可用 表示所有数据库和表。
    示例(授予用户对 test_db 的所有权限):
    GRANT ALL ON test_db.* TO 'dev'@'localhost';

    刷新权限

    FLUSH PRIVILEGES;

    撤销权限

    REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

其他常用命令

  • 退出 MySQL:
    EXIT;
    -- 或
    QUIT;
  • 显示当前版本:
    SELECT VERSION();
  • 显示当前数据库:
    SELECT DATABASE();
  • 导入/导出数据:
    • 导出(使用 mysqldump 命令):
      mysqldump -u 用户名 -p 数据库名 > 导出文件.sql
    • 导入:
      mysql -u 用户名 -p 数据库名 < 导入文件.sql

相关操作命令速查表

操作分类 命令示例
连接 MySQL mysql -u root -p
显示数据库 SHOW DATABASES;
创建数据库 CREATE DATABASE db_name;
选择数据库 USE db_name;
创建表 CREATE TABLE table_name (id INT PRIMARY KEY);
查看表结构 DESC table_name;
插入数据 INSERT INTO table_name (name) VALUES ('John');
查询数据 SELECT * FROM table_name WHERE age > 20;
更新数据 UPDATE table_name SET age=25 WHERE name='John';
删除数据 DELETE FROM table_name WHERE name='John';
删除表 DROP TABLE table_name;
创建用户 CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass';
授权 GRANT SELECT ON db_name.* TO 'user'@'localhost';
退出 EXIT;

相关问答FAQs

Q1:忘记 MySQL root 密码如何重置?
A1:重置 root 密码的步骤如下(以 Linux 系统为例):

  1. 停止 MySQL 服务:sudo systemctl stop mysql
  2. 跳过权限表启动 MySQL:sudo mysqld_safe --skip-grant-tables &
  3. 无密码登录 MySQL:mysql -u root
  4. 执行以下命令重置密码(MySQL 8.0+ 需使用 ALTER USER):
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    FLUSH PRIVILEGES;
  5. 重启 MySQL 服务:sudo systemctl restart mysql,即可使用新密码登录。

Q2:如何查看 MySQL 当前正在执行的 SQL 语句?
A2:可以通过查询 information_schema 数据库中的 PROCESSLIST 表或使用 SHOW PROCESSLIST 命令实现:

SHOW PROCESSLIST;

该命令会显示所有连接的线程信息,包括 ID(线程 ID)、USER(用户)、HOST(主机)、DB(数据库)、COMMAND(当前命令)、TIME(执行时长)等字段,若需查看特定线程的详细 SQL,可结合 SHOW PROCESSLIST 中的 ID 使用以下命令(需有 SUPER 权限):

SELECT id, state, info FROM sys.schema_processlist WHERE id = [线程ID];

通过监控 COMMANDQuery 的线程,可实时定位正在执行的 SQL 语句。

分享:
扫描分享到社交APP
上一篇
下一篇