说明
本博客的默认数据库名称是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
命令行命令
退出命令行
显示所有数据库
使用数据库
在操作数据库之前必须先使用(切换)对应的数据库
新建数据库
简单创建
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 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
| 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
然后我们可以执行一条命令,然后通过下面命令查看执行时间,Duration的单位是秒
我们还可以通过下面命令根据上面的Query_ID查看详细信息
1
| show profile for query 6;
|
备份和还原数据库
备份指定数据库命令如下,是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
|