数据库的创建查询
本文将介绍数据库的创建查询备份恢复操作。
数据库的创建
语法:
CREATE DATABASE [ IF NOT EXISTS ] db_name
[ DEFAULT ] CHARACTER SET charset_name [
DEFAULT ] COLLATE collation_name
[ ] 的含义:创建数据库时是可选的。
[ IF NOT EXISTS ]的含义:如果此前不存在这个数据库就创建。如果不写这个,如果现在创建的数据库与以前的数据库是一样的名字,就会报错。
CHARACTER SET 的含义:指定数据库采用的字符集,如果不指定字符集,默认utf8。
COLLATE的含义:指定数据库字符集的校对规则(常用的utf8_bin[区分大小写]、utf8_general_ci[不区分大小写] 默认是utf8_general_ci)
创建默认数据库(不指定字符集和字符集校对规则)
#创建数据库db02
CREATE DATABASE db02;
可以看到我们创建db02数据库时,没有指定字符集和字符集校对规则。
所以字符集默认是utf8
字符集校对规则默认是utf8_general_ci
创建字符集为utf16的数据库
#创建一个使用utf16字符集的数据库db03
CREATE DATABASE db03 CHARACTER SET utf16;
可以看到我们创建db03数据库时指定字符集为utf16
所以字符集是utf16
字符集校对规则默认是utf16_general_ci
创建字符集为utf8,字符集校对规则为uft8_bin的数据库
#创建一个使用utf-8字符集,并带校对规则的数据库db04
CREATE DATABASE db04 CHARACTER SET utf8 COLLATE utf8_bin;
可以看到我们创建db03数据库时指定字符集为utf8,字符集校对规则为utf8_bin
所以字符集是utf8
字符集校对规则默认是utf8_bin
演示utf8_bin和utf8_general_ci的区别
utf8_bin
在db01的数据库里创建了一个users表,因为db01数据库的校对规则是utf_bin,所以表users的校对规则也是utf_bin。
#查询db01中的users表中name为jack的所有所有字段
SELECT *FROM users WHERE NAME = 'jack'
可以看到结果只有1个jack,说明utf_bin校对规则的确会区分大小写。
utf8_general_ci
#查询db01中的users表中name为jack的所有所有字段
SELECT *FROM users WHERE NAME = 'jack'
可以看到结果有两个,一个是jack和JACK,说明utf_general_ci校对规则的确会不会区分大小写。
数据库的删除
DROP DATABASE da_name
#删除前面创建的db2数据库
DROP DATABASE db2;
查看数据库的相关信息
查看当前数据库服务器中所有的数据库
#查看当前数据库服务器中所有的数据库
SHOW DATABASES;
查看已经创建的数据库定义的信息
#查看前面创建的db01数据库定义的信息
SHOW CREATE DATABASE db01;
数据库的备份与恢复
当我们在使用数据库的过程中,有些很重要的数据难免会有丢失,所以我们需要学会数据库的备份与恢复。
数据库的备份
(注意:在DOS执行)命令行
mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n >路径文件名.sql
我们需要备份db01和db02两个数据库。
执行数据库备份操作
执行操作后可以发现D盘中有了su.sql文件
打开该文件可以看见有刚刚我们备份的数据库的信息
即数据库备份成功了
数据库的恢复
DOS命令行恢复
恢复数据库(注意:进入Mysql命令行再执行)
Source文件名.sql
我们先删掉数据库db01和数据库db2,然后利用之前备份的数据将其恢复
执行数据库恢复操作
我们刷新数据库,发现刚刚删掉的db01和db02已经恢复了,并且数据库里的表users也恢复了
即数据库恢复成功了
将备份的内容放到查询编辑器中执行
我们先删掉数据库db01和数据库db2,然后利用之前备份的数据将其恢复
将su.sql里的内容复制到查询编辑器中执行
我们刷新数据库,发现刚刚删掉的db01和db02已经恢复了,并且数据库里的表users也恢复了
即数据库恢复成功了