目录
1、查看数据库
在创建数据库之前,我们可以查看一下,我们当前都有哪些数据库,使用以下命令。
show databases;
我们知道这些数据库都是以目录形式存在于我们的文件系统中,通常数据库的数据默认存储在/var/lib/mysql中。
从图片得知表明访问权限的一个字母为d,正是表明是目录。
数据库都是目录了,那我们呢通过文件系统创建一个目录,mysql中会不会显示该数据库被创建呢?
如图,明显是可以的,但是严禁这么做,通过文件系统操作了,还要MySQL干嘛。
2、创建数据库
create database XXX;
我们可以查看下建库的细节。
show create database XXX;
我们会发现其中的命令是大写的,并且库的名字加上 `` 。
MySql对大小写不敏感实际上我们应该打大写,库的名字加上``,我们使用的场景是一般在该名字与MySql中的关键字起冲突的情况下。
3、删除数据库
drop database XXX;
4、字符集和校验规则
存数据以什么编码存储数据由字符集来保证,由什么形式读取数据由校验规则来保证。
①查看字符集和校验规则
查看字符集
show variables like "character_set_database";
查看校验规则
show variables like 'collation_database';
查看所有字符集:
查看所有的校验规则:
show collation;
我们在创建数据库的时候也可以指定数据库的字符集和检验规则。如果数据库有默认的字符集和校验规则,但我们在创建时指明了,Mysql会遵守就近原则选择字符集和检验规则。
我们建立一个默认的database,在该数据库的目录下的dp.opt文件中,我们看到该数据库的字符集和检验规则。
我们再建立一个数据库,这次指定字符集。
当然也可以这样写:
②校验规则对数据库的影响
为了验证我们首先建立一个表,表的操作后面会讲,表中插入如图的数据。
我们当前的数据库的字符集与校验规则如图所示:
当我们从中筛选数据的时候会发现当前对大小写是模糊不敏感的,忽略大小写。
在另一个数据库中进行相同的操作,只不过该数据库的字符集校验规则是:
当我们从中筛选数据的时候会发现当前对大小写是敏感的,只查询对应的字母。
5、修改数据库
对数据库的修改主要指的是修改数据库的字符集,校验规则。
alter database XXX charset=XXX;
alter database XXX collate=XXX;
一般情况单独更改校验规则是不行的,所以建议直接更改字符集,校验规则会跟着改变。
至于修改数据库的名字在Mysql中是被禁止的,这是有他自己的考量。但是你可以通过修改目录的名字,来越界操作,当然这是严重不推荐的。
6、备份和恢复
备份:
mysqldump -P3306 -u root -p -B 数据库名 > 数据库备份存储的文件路径
我们查看test.sql文件,发现里面都是我们当操作的sql语句。
恢复:
source 需要恢复数据库的路径;
这样我们删除过后的test1数据库又出现了。