MySQL -- 库和表的操作
文章目录
一、库的操作
注意:
- MySQL语句的关键词是不区分大小写的!
- MySQL语句需要以 ; 结尾;
1.创建数据库
语法:
IF NOT EXITS:如果数据库不存在再创建,存在了就不创建了,可省略;
CHARACTER SET:指定数据库采用的字符集;
COLLATE:指定数据库字符集的校验规则;
sql
create databases [if not exits]数据库名;
MySQL创建一个数据库就是在/var/lib/mysql路径下创建了一个目录:
数据库名称如果和系统中的某些关键字重合,创建就会失败,需要加上反引号修饰:
- 建议创建库和表的时候,名称都加上反引号;
补充:
- MySQL语句中没有清屏的命令,可以通过system clear 命令使用Linux中的清屏命令;
2.查看数据库
sql
show databases;
显示创建语句:
sql
show create databases 数据库名;
- 能够显示出来创建数据库时的语句细节,这时系统帮我们优化过的结果;
- 后面的 /!40100 default.../不是注释,表示当前MySQL版本大于4.01时,就执行这个选项;
3.删除数据库
sql
drop database 数据库名称;
若删除了数据库,里面的表和数据都会一并被删除!
4.字符集和校验规则
创建数据库的时候,后面有选项可以指定字符集和校验规则;
查看系统默认字符集和校验规则:
sql
show variables like 'character_set_database';
show variables like 'collation_database';
查看数据库支持的字符集和校验规则:
sql
show charset; #查看字符集
show collation; #查看校验规则
- 如果创建数据库时没有指定字符集和校验规则 ,系统会以默认值为基准创建数据库;
- 默认字符集和校验规则可以在配置文件中修改;
- 字符集是指数据存储的时候,按照什么格式存储;
校验规则是指在用户要取数据的时候,使用什么样的规则来校验数据库中的数据; - 字符集和校验规则是匹配的,一个字符集可以对应多个校验规则;
在创建数据库时指定字符集和校验规则:
打印出配置文件:
5.校验规则对数据库的影响
-
创建一个数据库,校验规则使用utf8_general_ci [不区分大小写] ;
向数据库中写数据:
查看数据:
在表中查询数据:
可以看出这个校验规则是不区分大小写的; -
创建一个数据库,校验规则使用utf8_bin [区分大小写] ;
向数据库中写数据:
在表中查询数据:
可以看出这个校验规则是区分大小写的;
6.修改数据库
修改数据库主要是修改数据库的字符集,校验规则;
7.备份和恢复
备份:
在Linux的bash命令行,启动mysqldump服务:
bash
mysqldump -P 3306 -u root -p -B 数据据名 > 数据库备份存储的文件路径
-
查看备份完成的文件:
数据库备份就是将历史上所有的sql语句全部备份下来,恢复的时候,相当于重新创建一个相同的数据库; -
如果备份的不是整个数据库,而是其中的一张表:
bash
mysqldump -u root -p 数据据名 表名1 表名2 > 数据库备份存储的文件路径
- 同时备份多个数据库:
bash
mysqldump -u root -p -B 数据据名1 数据据名2 > 数据库备份存储的文件路径
- 如果备份数据库是,没有带上-B参数 ,在恢复数据库的时候,需要先创建空数据库 ,然后使用数据库,再使用source来还原;
这是因为**-B参数的意义是备份时会连着create database语句一起备份;**
恢复:
在mysql客户端:
sql
source 备份文件所在的路径;
8.查看连接情况
sql
show processlist;
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
二、表的操作
1.创建表
- field表示列名;
- datatype表示列的类型;
- character set字符集,如果没有指定字符集,则以所在数据库的字符集为准;
- collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;
- comment:后面的是备注;
- 查看数据库中的表:
- 查看创建表的语句:
- 不同引擎的表,文件结构不同:
2.查看表结构
查看表中元素的属性:
sql
desc 表名;
查看表的数据:
sql
select * from 表名;
3.修改表
增加列:
sql
alter table 表名 add 增加的列名 列的数据类型 comment '备注' after 在原来的哪一列后面增加;
- 注:这里的NULL和空字符串是不同的,空串是有数据,但是数据是空字符串,而NULL是没有数据;
调整列属性:
sql
alter table 表名 modify 需调整的列名 调整的目标类型;
- 注:这里列的属性的修改是直接覆盖的,会覆盖掉之前的备注等信息,创建表的语句也会修改,因此修改的时候,最好将修改之前的其他列信息都带上;
删除列:
sql
alter table 表名 drop 列名;
注:
- 删除列后,列中的数据也会删除;
- 不能删除所有的列,删到最后一列就无法删除了;
修改列名:
sql
alter table 表名 change 原列名 目标列名 数据类型 comment '备注';
修改表名:
sql
alter table 原表名 rename 目标表名;
4.删除表
sql
deop table [if exists] 要删除的表名;![在这里插入图片描述](https://img-blog.csdnimg.cn/e2198126d85843988945af579b8c1ce9.png)