【MySQL】库的基本操作
目录
上篇博客我们讲了数据库的基本理解,对数据库有了一个大致的概念,下面我们来介绍一下库的基本操作
库的增删查改
增加库可用下面的语句
create database (if not exists) db_name;
其中括号中的句子可以不加,加上主要是为了安全
假如已经有了某个数据库,加上括号中的句子执行后是
如果要不加就会
当然我们知道create数据库本质就是在/var/lib/mysql目录下创建一个目录,那如果我们在/var/lib/mysql目录下创建一个目录其实查数据库时确实会变多,当然这样肯定是不合理的
删除库可用下面的语句
drop database db_name;
查询当前都有哪些数据库可以用下面的
show databases;
如果要改数据库,比如改数据库的字符集和校验集(下面会提到),就可以:
alter database test1 charset=gbk collate gbk_chinese_ci;
字符集与校验集
我们知道,内存和磁盘存储数据不可能存储一个字母或一个汉字,它存储的都是二进制,所以就需要把字符转成数字再去存储,那么把特定的字符转成什么数字呢?这就用到了不同的编码方式
创建数据库的时候,有两个编码集,
一个是数据库字符集:用于确定数据库未来如何存储数据(就是把数据变成什么码)
一个是数据库校验集:用于读取数据库时做字段的比较(就是把码变成什么数据)
所以数据库无论对数据做任何操作,都必须保证存储和取出时是编码一致的,这样才能保证存进去是什么,读出来还是什么
下面的指令可以输出数据库支持的所有字符集
show charset;
下面的指令可以输出数据库支持的所有校验集
show collation;
下面的指令可以输出数据库的字符集设置
show variables like 'character_set_database';
下面的指令可以输出数据库的校验集是什么
show variables like 'collation_database';
当然还可以用通配符来展示连接时,提供服务时用到的字符集和校验集
于是我们就可以指明字符集和校验集来创建数据库
下面我们就来看看相同字符集但是不同校验集对于最终结果会产生什么影响
我们先创建两个数据库test1和test2,它们的字符集都用utf8,但是test1的校验集用utf8_general_ci(不区分大小写),test2的校验集用utf8_bin(区分大小写)
然后对于两个数据库执行相同的操作:分别建立一张表并向表中插入aAbB四个字符
然后分别查询和排序,对于test1不区分大小写的结果是:
对于test2区分大小写的结果是:
有时候我们可能会忘记自己当前在那个数据库中正在操作,可以用下面的指令查看:
select database();
库的备份与恢复
我们可以在命令行中用下面的指令对于数据库进行备份
这里需要输入root登录mysql时的密码
其实这个.sql文件中存的就是当初创建数据库时的一些操作
如果备份的不是整个数据库,而是其中的一张表,可用下面的指令
mysqldump -u root -p 数据库名 表名1 表名2 > 路径
如果同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 > 路径
如果备份一个数据库时,没有加上-B参数,在恢复数据库时,需要先创建空数据库,然后再使用数据库,再用source来还原
其实不加-B就是.sql文件中没有创建数据库的操作
我们要恢复数据库可以:
如果要查看当前数据库正在执行哪些线程,可用
show processlist;
原文地址:https://blog.csdn.net/2201_76024104/article/details/144119188
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!