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 表名;
相关推荐
NineData27 分钟前
NineData云原生智能数据管理平台新功能发布|2025年5月版
数据库·云原生·oracle·devops·ninedata
不会编程的猫星人27 分钟前
Oracle杀进程注意事项
数据库·microsoft·oracle
GUIQU.31 分钟前
【Oracle】安装单实例
数据库·oracle
老胖闲聊36 分钟前
Python Django完整教程与代码示例
数据库·python·django
践行见远42 分钟前
django之请求处理过程分析
数据库·django·sqlite
Antonio91544 分钟前
【Linux】 Linux 进程控制
linux·运维·服务器
行星0081 小时前
Postgresql常用函数操作
数据库·postgresql
程序员葵安1 小时前
【Java Web】9.Maven高级
java·数据库·后端·maven
不想头秃a1 小时前
JavaEE初阶-网络编程
java·运维·服务器·网络
Lx3522 小时前
UNION ALL与UNION的性能差异及选择技巧
sql·mysql·oracle