说明

本博客的默认数据库名称是db_student,默认表是t_student

MySQL命令行必须以;\g结束,不然按回车键是换行

进入MySQL命令行

执行下面命令前需要先打开cmd进入MySQL安装目录的bin文件夹,再执行下面命令即可进入MySQL命令行

1
mysql -h localhost -P 3306 -u root -p
参数 说明
-h 后面接IP地址(有空格),如果是本地可省略
-P 后面接端口后(有空格),如果是3306可省略
-u 后面接用户名(有空格)
-p 后面可以接密码(无空格),但是这是不安全的,不建议在命令上输入密码

如果不想进入bin文件夹,打开cmd直接可以使用mysql等命令,我们需要去配置系统变量Path,把bin文件夹的路径添加进去,我的路径是D:\Java\mysql_5.6.24_winx64\mysql-5.6.24-winx64\bin

image-20230224201715126

命令行命令

退出命令行

1
quit

显示所有数据库

1
show databases;

使用数据库

在操作数据库之前必须先使用(切换)对应的数据库

1
use db_student;

新建数据库

简单创建
1
create database db_student;
判断数据库是否已经存在
1
create database if not exists db_student;
指定字符集和校对规则
1
create database db_student default character set utf8 default collate utf8_general_ci;

删除数据库

1
drop database db_student;

显示创建数据库的语句

1
show create database db_student;

显示所有表

1
show tables;

创建表

如果不指定字符集和校对规则的话,会默认使用数据库的

1
2
3
4
5
create table t_student(
id int(11) not null primary key auto_increment comment '编号',
name varchar(100) not null comment '姓名',
age int(11) not null comment '年龄'
)character set utf8 collate utf8_general_ci;

删除表

1
drop table t_student;

查看表结构

1
desc t_student;
1
show columns from t_student;

显示创建表语句

1
show create table t_student;

修改表名

1
alter table t_student rename student;

添加表字段

在最后一个字段后添加
1
alter table t_student add nickName varchar(100) not null;
在第一个字段前添加
1
alter table t_student add nickName varchar(100) not null first;
在某个字段后添加
1
alter table t_student add nickName varchar(100) not null after name;

修改字段

name是原字段名,name2是要修改的字段名(即使不修改也要写出来),数据类型、长度以及是否可以为空也要写出来

1
alter table t_student change name name2 varchar(100) not null;

删除字段

1
alter table t_student drop nickName;

给字段添加外键

下面语句创建的外键名是fk_student_class,外键字段是t_student表的classId,对应的主键字段是t_class表的id,如果要查看一张表有什么外键可以通过显示创建表语句来查看

1
alter table t_student add constraint fk_student_class foreign key(classId) references t_class(id);

设置级联删除,添加外键时在最后面加上on delete cascade

1
alter table t_student add constraint fk_student_class foreign key(classId) references t_class(id) on delete cascade;

设置级联更新,添加外键时在最后面加上on update cascade

1
alter table t_student add constraint fk_student_class foreign key(classId) references t_class(id) on update cascade;

同时设置级联删除和级联更新,添加外键时在最后面加上on delete cascade on update cascade

1
alter table t_student add constraint fk_student_class foreign key(classId) references t_class(id) on delete cascade on update cascade;

删除外键

1
alter table t_student drop foreign key fk_student_class;

虽然执行上面语句删除了外键关联,但是这个键fk_student_class还是存在的,可以执行下面语句来删除(需要先执行上面语句才可以执行下面语句),如果只是要修改外键的话可以不删除这个键

1
alter table t_student drop key fk_student_class;

修改外键

要修改一个外键,可以先删除,再重新添加

对数据进行增删改查

添加
1
insert into t_student(name,age)values('张三',18);
删除
1
delete from t_student where id=1;
修改
1
update t_student set name='张三2',age=22 where id=2;
查询

查询全部

1
select * from t_student;

分页查询,查出第1条数据之后的2条数据

1
select * from t_student limit 1,2;

查看SQL语句执行时间

首先查看profile是否开启,一关闭MySQL的命令行就会关闭profile

1
show variables like 'profiling';

如果上面的结果是OFF,那么我们要将其设置为ON

1
set profiling=1;

然后我们可以执行一条命令,然后通过下面命令查看执行时间,Duration的单位是秒

1
show profiles;

image-20230224230749690

我们还可以通过下面命令根据上面的Query_ID查看详细信息

1
show profile for query 6;
image-20230224231149146

备份和还原数据库

备份指定数据库命令如下,是cmd命令而不是MySQL命令行命令,db_student是要备份的数据库名称,db_student.sql是生成的备份文件,下面命令是在bin文件夹里面生成备份文件

1
mysqldump -u root -p db_student > db_student.sql

还原指定数据库的命令如下,是cmd命令而不是MySQL命令行命令,需要先创建一个名为db_student的数据库,不然会报错

1
mysql -u root -p db_student < db_student.sql