侧边栏壁纸
博主头像
lance

不为失败找借口,只为成功找方法。

  • 累计撰写 28 篇文章
  • 累计创建 0 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

MySQL常用命令汇总.md

lance
2025-07-01 / 0 评论 / 0 点赞 / 128 阅读 / 1,103 字
温馨提示:
本文最后更新于 2025-08-27,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1.登录与退出

登录MySQL

mysql [options]
mysql -uroot -p
选项 说明 示例
-u 指定用户名 -uroot
-p 提示输出密码 -p1234 或 -p
-h 指定主机名(默认localhost) -h192.168.1.100
-P 指定端口(默认3306) -P3307
–ssl 启用SSL安全连接 –ssl
–socket 指定套接字文件 –socket=/tmp/mysql.sock
–database 登入后直接使用指定数据库 –database=testdb

退出MySQL

exit 
quit

2.数据库管理

查看数据库列表

show databases;

创建数据库

create  database 数据库名 [options]

create database kuming 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();

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、MylSAM) engine=InnnoDB
default charset 设置表的默认字符集 default charset=utf8mb4
auto_increment 指定自增主键 id int auto_increment primary key

表的创建语句

show create table 表名;

修改表的结构

添加列:

alter table 表名 add  列名 数据类型  [位置];

位置:first(在最前),after列名(在指定列后)

修改列:

alter table 表名 midify 列名 数据类型

删除列:

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','li@example.com');

批量插入

insert into 表明(列名1,列名2)values
(值1,值2),
(值3,值4),

查询数据

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='new email@example.com' where name='alice';

删除数据

default  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  '用户名'@'主机';

grant select,insert on mydb.* to 'testuser'@'localhost';
权限 说明
all privileges 授予所有权限
select 允许读取表中的数据
insert 允许向表中插入数据
update 允许修改表中的数据
delete 允许删除表中的数据
create 允许创建数据库和表
drop 允许删除数据库和表

撤销权限

revoke  权限列表 on  数据库.表  from  '用户名'@'主机';

revoke insert on mydb.* from  'testuser'@'localhost';

刷新权限

flush privileges;

6.性能优化

查询执行计划

explain select 查询语句;

explain select * from users where email='test@example.com';

优化表

optimize table 表名;

查看慢查询

show variables like 'slow_query_log';

启用慢查询:

set global slow_query_log=1;

检查表

check table 表名;

修复表

repair table 表名;

0

评论区