MySQL常用命令之汇总(Summary of Commonly Used Commands in MySQL)

MySQL常用命令汇总

简介

‌MySQL是一个广泛使用的开源关系型数据库管理系统,由瑞典的MySQL AB公司开发,现属于Oracle公司。‌ MySQL支持SQL(结构化查询语言),这是数据库操作的标准语言,用户可以使用SQL进行数据查询、插入、更新和删除操作。‌

MySQL的主要特点包括:

  • 开源‌:用户可以免费下载、使用和修改其源代码,尽管现在属于Oracle公司,但其社区版仍然保留开源模式。
  • 高性能和扩展性‌:MySQL能够处理从小型应用程序到大型系统的多种数据工作负载,适合高并发的在线事务处理(OLTP)系统。
  • 跨平台支持‌:MySQL支持多种操作系统,包括Linux、Windows和macOS,这使得它可以在不同的开发环境中广泛使用。
  • 多种存储引擎‌:MySQL支持多种存储引擎,如InnoDB和MyISAM,用户可以根据具体需求选择适合的引擎。

MySQL的应用场景非常广泛,特别是在网络应用中十分流行。许多Web开发框架(如PHP、Python的Django)都可以与MySQL无缝集成,适用于内容管理系统(CMS)、电子商务、社交媒体平台等方面。

MySQL命令是很多的,如果全面列出的话,篇幅较长,我在这里面只是罗列了一些常用的,供大家参考。

1. 登录与退出

登录 MySQL

复制代码
mysql [OPTIONS]

mysql -uroot -p
选项 说明 示例
-u 指定用户名 -u root
-p 提示输入密码(密码可跟在后面但不安全) -p1234 或 -p
-h 指定主机名(默认 localhost) -h 192.168.1.100
-P 指定端口(默认 3306) -P 3307
--ssl 启用 SSL 安全连接 --ssl
--socket 指定套接字文件 --socket=/tmp/mysql.sock
--database 登录后直接使用指定数据库 --database=testdb

退出 MySQL

复制代码
SQL> exit;

或:

复制代码
SQL> quit;

2. 数据库管理

查看数据库列表

复制代码
show databases;

创建数据库

复制代码
CREATE DATABASE 数据库名 [OPTIONS];

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
选项 说明 示例
DEFAULT CHARACTER SET 设置数据库的默认字符集 DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE 设置数据库的排序规则(与字符集匹配) DEFAULT COLLATE utf8mb4_general_ci

删除数据库

复制代码
drop databases 数据库名;

使用指定数据库

复制代码
USE 数据库名;
use mysql;

查看当前使用的数据库

复制代码
SELECT DATABASE();

查看数据库大小

复制代码
SELECT table_schema AS 数据库名,
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 大小_MB
FROM information_schema.tables
GROUP BY table_schema;

3. 表管理

查看当前数据库的所有表

复制代码
SHOW TABLES;

查看表结构

复制代码
DESC 表名;

或:

复制代码
SHOW COLUMNS FROM 表名;

创建表

复制代码
CREATE TABLE 表名 (
    列名 数据类型 [约束条件],
    ...
) [OPTIONS];

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
选项 说明 示例
ENGINE 设置存储引擎(如 InnoDB、MyISAM) ENGINE=InnoDB
DEFAULT CHARSET 设置表的默认字符集 DEFAULT CHARSET=utf8mb4
AUTO_INCREMENT 指定自增主键 id INT AUTO_INCREMENT PRIMARY KEY

查看表的创建语句

复制代码
SHOW CREATE TABLE 表名;

修改表结构

添加列:

复制代码
ALTER TABLE 表名 ADD 列名 数据类型 [位置];

位置:FIRST(在最前),AFTER 列名(在指定列后)。

修改列:

复制代码
ALTER TABLE 表名 MODIFY 列名 数据类型;

删除列:

复制代码
ALTER TABLE 表名 DROP 列名;

重命名列:

复制代码
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型;

删除表

复制代码
DROP TABLE 表名;

清空表(保留结构)

复制代码
TRUNCATE TABLE 表名;

4. 数据操作

插入数据

复制代码
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]');

批量插入

复制代码
INSERT INTO 表名 (列名1, 列名2) VALUES
(值1, 值2),
(值3, 值4),
(值5, 值6);

查询数据

复制代码
SELECT 列名1, 列名2, ... FROM 表名 [WHERE 条件] [ORDER BY 列名 ASC|DESC] [LIMIT 偏移量, 行数];

SELECT * FROM users WHERE email LIKE '%example.com' ORDER BY created_at DESC LIMIT 10;

常用子句:

子句 说明 示例
WHERE 指定条件 WHERE age > 30
ORDER BY 排序结果集 ORDER BY name ASC
LIMIT 限制返回行数,支持偏移量 LIMIT 5 OFFSET 10
GROUP BY 按列分组 GROUP BY department
HAVING 筛选分组结果 HAVING COUNT(*) > 1

更新数据

复制代码
UPDATE 表名 SET 列名1=值1, 列名2=值2 WHERE 条件;

示例:

复制代码
UPDATE users SET email='[email protected]' WHERE name='Alice';

删除数据

复制代码
DELETE FROM 表名 WHERE 条件;

DELETE FROM users WHERE id=10;

5. 用户管理

创建用户

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

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'mypassword';
参数 说明 示例
'用户名' 用户名 'testuser'
'主机' 用户允许访问的主机(% 表示任意主机) 'localhost' 或 '%'
'密码' 用户密码 'password123'

修改用户密码

复制代码
ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';

ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword123';

删除用户

复制代码
DROP USER '用户名'@'主机';

授予权限

复制代码
GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机';
权限 说明
ALL PRIVILEGES 授予所有权限
SELECT 允许读取表中的数据
INSERT 允许向表中插入数据
UPDATE 允许修改表中的数据
DELETE 允许删除表中的数据
CREATE 允许创建数据库和表
DROP 允许删除数据库和表
复制代码
GRANT SELECT, INSERT ON mydb.* TO 'testuser'@'localhost';

撤销权限

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

REVOKE INSERT ON mydb.* FROM 'testuser'@'localhost';

刷新权限

复制代码
FLUSH PRIVILEGES;

6. 性能优化

查看查询执行计划

复制代码
EXPLAIN SELECT 查询语句;

EXPLAIN SELECT * FROM users WHERE email='[email protected]';

优化表

复制代码
OPTIMIZE TABLE 表名;

慢查询查看

复制代码
SHOW VARIABLES LIKE 'slow_query_log';

启用慢查询:

复制代码
SET GLOBAL slow_query_log=1;

检查表

复制代码
CHECK TABLE 表名;

修复表

复制代码
REPAIR TABLE 表名;
相关推荐
SelectDB8 分钟前
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
大数据·数据库·数据分析
爱的叹息10 分钟前
华为高斯(GaussDB) 集中式数据库 的开发技术手册,涵盖核心功能、开发流程、优化技巧及常见问题解决方案
数据库·gaussdb
背太阳的牧羊人14 分钟前
使用 PyMuPDF(fitz)库打开 PDF 文件,并且是从内存中的字节流(BytesIO)读取 PDF 内容
数据库·pdf·文件处理·pymupdf·fitz
Bruce-li__20 分钟前
创建私人阿里云docker镜像仓库
阿里云·docker·云计算
@淡 定2 小时前
MySQL MVCC 机制解析
数据库·mysql
Chandler242 小时前
Redis:内存淘汰原则,缓存击穿,缓存穿透,缓存雪崩
数据库·redis·缓存
阳区欠2 小时前
【Linux】进程通信
linux·运维·服务器·共享内存·进程通信·system v·管道文件
SRC_BLUE_172 小时前
Python GUI 编程 | QObject 控件基类详解 — 定时器
开发语言·数据库·python
may_一一2 小时前
终端SSH连接工具SecureCRT安装和连接Linux
运维·服务器·ssh
DBWYX2 小时前
MySQL 进阶 面经级
数据库·mysql