文章目录
一、创建数据库
1.创建数据库的基本语法
创建数据库使用的是create指令,输入指令create database XXX;
就可以简单地创建一个数据库,其中XXX代表的是数据库的名称。数据库的名称一般需要用反引号括起来,也可以不用。但是如果数据库的名称与某些关键字重复了,就必须使用反引号括起来,否则会报错,例如我们想要创建一个名字为create的数据库:
切记这里使用的是反引号,不是单引号!
我们还可以在创建数据库的时候加上if not exists选项,表示如果该数据库不存在才创建,如果存在了就不创建了。这个选项是可以选择填或者不填的。例如:create database is not exists XXX
。
2.指定字符集和校验集
数据库是用来存储数据的,所以数据库在创建的时候必须有统一的编码。当我们用数据库存储数据时,需要按照特定的编码来进行存储,这由字符集保证。当我们从数据库中取数据时,需要按照特定的编码来比较数据,这由数据库的校验编码来保证。所以我们在创建数据库时规定好了统一的编码之后,一般字符集和校验规则是匹配的。
我们可以使用指令show charset;
来查看当前MySQL支持的所有字符集:
同样的,我们可以输入指令show collation;
查看当前MySQL支持的所有校验集:
在使用create命令创建数据库时,可以指定该数据库使用的字符集和校验集是什么,只需要在后面带上相应的选项即可。比如我们在创建一个数据库时,想要将它的字符集设置为gbk,则输入指令create database test_d1 charset=gbk;
,就可以成功创建一个字符集为gbk的数据库:
我们可以在Linux中MySQL存储数据的路径下查看刚刚创建好的数据库,test_d1目录下有一个db.opt文件,我们可以看一下这个文件的内容,文件里保存的就是该数据库的字符集和校验集:
除了上述方法设置字符集外,还可以使用这种方法:create database test_d1 character set gbk;
。
我们也可以在创建数据库的时候指定校验集,但是一般不需要我们自己指定,因为我们只需要指定字符集,MySQL就会帮我们自动匹配对应的校验集。如果要自己指定校验集,可以使用指令create database test_d1 charset=utf8 collate utf8_general_ci;
进行设置。
如果我们在创建数据库的时候没有指明字符集和校验集,那么该数据库被创建之后会采用my.cnf配置文件中设置好的默认字符集和校验集。
二、删除数据库
删除数据库使用的是drop指令,其语法为drop database [if exists] XXX;
。其中if exists是可以选择的选项,如果填上了if exists则代表当数据库存在时才删除。例如我们想删除名字为test_d1的数据库,输入指令drop database test_d1;
。
三、查看数据库
1.查看当前创建的数据库
查看数据库使用的是show指令,输入指令show databases;
就可以查看当前已经创建好的数据库:
创建数据库本质上是在Linux指定路径下创建一个目录,如果我们在Linux的MySQL存放数据的路径下手动创建一个目录,在MySQL客户端使用show指令能不能查看到新创建的数据库呢?
测试一下我们发现,如果在Linux的MySQL存放数据路径下手动用mkdir创建一个目录,在MySQL客户端使用show指令是可以查看到这个新建的数据库的。但是及其不建议使用这种方法创建数据库。
2.显示创建语句
我们可以用show create database 数据库名;
来查看创建数据库时的语句。例如我们查看test_d1的创建语句,则输入指令show create database test_d1;
:
/*!40100 default… */ 这个不是注释,它表示当前mysql版本大于4.01版本,就执行这句话。
四、修改数据库
修改数据库使用的是alter指令,需要说明的是,修改数据库主要指对数据库的字符集、校验集的修改,MySQL语句早期是有修改数据库名称的语句的,但现在已经没有了,MySQL目前不支持修改数据库名称,要想修改只能删除数据库重新创建。
例如,原本test_d1的字符集是gbk,我们想将test_d1数据库的字符集改成utf8,输入指令alter database test_d1 charset=utf8;
我们在Linux的MySQL存储数据路径下查看test_d1数据库的字符集,发现确实修改成了utf8:
五、数据库的备份
数据库是用来存储数据的,所以为了防止数据库出问题导致数据丢失,我们将数据库进行备份是非常有必要的。MySQL数据库备份可以使用mysqldump工具,输入指令mysqldump -P3306 -uroot -p 密码 -B 数据库名 > 数据库备份存储的文件路径
,可以将指定的数据库备份到指定的文件里。
例如我们想将test_d1数据库备份起来,输入指令之后就将该数据库备份到了test_d1.sql文件当中了,我们查看一下文件的内容:
我们发现事实上MySQL的备份并不是将数据库的内容进行备份,而是将该数据库历史上的所有操作语句进行备份,只需要将该数据库的所有操作语句保存起来,未来在恢复的时候,只需要将该文件里的所有语句再从头到尾执行一次,就可以恢复出一模一样的数据库了。
六、数据库的恢复
我们使用mysqldump工具将数据库备份到指定的文件之后,可以使用source指令还原该数据库。在MySQL客户端执行指令source 备份文件带路径的文件名;
即可恢复数据库。
例如我们先使用drop指令删除test_d1数据库,然后利用刚刚备份好的test_d1.sql文件恢复test_d1数据库:
自此,被删除的test_d1数据库就成功恢复了:
七、查看连接情况
我们当前采用的MySQL是root用户,MySQL可以多个用户同时登录,也可以使用show processlist;
指令查看当前有哪些用户在使用我们的数据库: