MySQL命令行是数据库管理中不可或缺的工具,通过它可以高效地执行数据库操作、管理用户权限、优化查询等,以下从基础操作、数据库管理、表操作、数据操作、用户与权限管理、高级功能等方面详细介绍MySQL命令行的常用命令及使用方法。

基础操作与连接
连接MySQL服务器
mysql -h主机名 -u用户名 -p密码
若本地连接且用户为root,可简化为
mysql -u root -p,输入密码后进入命令行界面。退出MySQL
exit; 或 quit;
显示当前时间
(图片来源网络,侵删)SELECT NOW();
切换数据库
USE 数据库名;
数据库管理
创建数据库
CREATE DATABASE 数据库名 [CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci];
示例:创建名为
test_db的数据库,指定字符集为utf8mb4。查看所有数据库
(图片来源网络,侵删)SHOW DATABASES;
删除数据库
DROP DATABASE 数据库名;
修改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
表操作
创建表
CREATE TABLE 表名 ( 列名1 数据类型 [约束], 列名2 数据类型 [约束], PRIMARY KEY (主键列名) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;示例:创建
users表,包含id(自增主键)、name(varchar)、age(int)字段。查看所有表
SHOW TABLES;
查看表结构
DESCRIBE 表名; 或 SHOW COLUMNS FROM 表名;
修改表结构
- 添加列:
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [约束];
- 修改列类型:
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型;
- 删除列:
ALTER TABLE 表名 DROP COLUMN 列名;
- 添加列:
删除表
DROP TABLE 表名;
数据操作(增删改查)
插入数据
INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);
若插入所有列,可省略列名:
INSERT INTO 表名 VALUES (值1, 值2);查询数据
- 基础查询:
SELECT * FROM 表名;
- 条件查询:
SELECT * FROM 表名 WHERE 条件;
- 排序与分页:
SELECT * FROM 表名 ORDER BY 列名 [ASC/DESC] LIMIT 起始位置, 记录数;
- 基础查询:
更新数据
UPDATE 表名 SET 列名1=新值1 WHERE 条件;
删除数据
DELETE FROM 表名 WHERE 条件;
用户与权限管理
创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
示例:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY '123456';授权
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';
示例:授予
test_user对test_db库所有表的查询权限:GRANT SELECT ON test_db.* TO 'test_user'@'localhost';
刷新权限
FLUSH PRIVILEGES;
撤销权限
REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'主机';
删除用户
DROP USER '用户名'@'主机';
高级功能
备份与恢复
- 备份数据库(命令行):
mysqldump -u用户名 -p密码 数据库名 > 备份文件.sql
- 恢复数据库:
mysql -u用户名 -p密码 数据库名 < 备份文件.sql
- 备份数据库(命令行):
查询执行计划
EXPLAIN SELECT * FROM 表名 WHERE 条件;
事务处理
START TRANSACTION; -- 开始事务 -- 执行SQL语句 COMMIT; -- 提交事务 -- 或 ROLLBACK; -- 回滚事务
索引管理
- 创建索引:
CREATE INDEX 索引名 ON 表名(列名);
- 删除索引:
DROP INDEX 索引名 ON 表名;
- 创建索引:
常用命令速查表
| 功能分类 | 命令示例 |
|---|---|
| 连接与退出 | mysql -u root -p;exit; |
| 数据库操作 | CREATE DATABASE db;;SHOW DATABASES;;DROP DATABASE db; |
| 表操作 | CREATE TABLE t (id INT);;DESC t;;ALTER TABLE t ADD COLUMN name VARCHAR(20); |
| 数据查询 | SELECT * FROM t WHERE id=1;;SELECT * FROM t ORDER BY id LIMIT 10; |
| 数据修改 | UPDATE t SET name='Tom' WHERE id=1;;DELETE FROM t WHERE id=1; |
| 用户与权限 | CREATE USER 'u'@'%' IDENTIFIED BY 'pwd';;GRANT SELECT ON db.* TO 'u'@'%'; |
| 备份与恢复 | mysqldump -u root -p db > backup.sql;mysql -u root -p db < backup.sql |
相关问答FAQs
Q1: 如何在MySQL命令行中执行SQL脚本文件?
A1: 使用source命令或mysql命令行参数,在MySQL命令行中执行:
source /path/to/script.sql;
或直接在命令行执行:
mysql -u用户名 -p密码 数据库名 < /path/to/script.sql
Q2: 如何查看MySQL的版本和当前时间?
A2: 在MySQL命令行中执行以下命令:
SELECT VERSION(); -- 查看MySQL版本 SELECT NOW(); -- 查看当前服务器时间
也可通过命令行参数查看版本:mysql --version或mysqld --version。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/401322.html<
