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 表名;
相关推荐
惊起白鸽4502 小时前
MySQL全量,增量备份与恢复
数据库·mysql
暮雨疏桐3 小时前
MySQL SQL Mode及其说明
数据库·sql·mysql·sql mode
Tangcan-4 小时前
【MySQL】数据库基础
数据库·mysql
蔡蓝4 小时前
Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
数据库·mysql
jstart千语4 小时前
【Redis】分布式锁的实现
数据库·redis·分布式
亚林瓜子4 小时前
AWS EC2源代码安装valkey命令行客户端
redis·云计算·aws·cli·valkey
菜菜why5 小时前
AutoDL租用服务器教程
服务器
IT专业服务商5 小时前
联想 SR550 服务器,配置 RAID 5教程!
运维·服务器·windows·microsoft·硬件架构
一把年纪学编程5 小时前
【牛马技巧】word统计每一段的字数接近“字数统计”
前端·数据库·word
极小狐5 小时前
极狐GitLab 通用软件包存储库功能介绍
java·数据库·c#·gitlab·maven