目录
一、创建数据库
二、创建数据库案例
三、字符集和校验规则
四、校验规则对数据库的影响
五、操纵数据库
1、查看数据库
2、显示创建语句
3、修改数据库
4、删除数据库
六、数据库的备份与恢复
1、数据库的备份
2、数据库的恢复
3、表的备份
4、表的恢复
5、查看连接情况
一、创建数据库
语法:
create database [if not exists] db_name [create_specification [create_specification]...]
create_specification:
[default] character set charset_name
[default] collate collation_name
• SQL中大写的表示关键字,[ ] 中代表是可选项
• charset 用于指定数据库所采用的编号格式
• collate 用于指定数据困所采用的校验规则
注意: 如果如果在创建数据库时没有显示的指名数据库的编码格式或校验规则,则默认会使用MySQL配置文件中对应的编码格式或校验规则。
例如:在 /etc/my.cnf 这个文件就可以看到,此时都会默认采用 utf-8的编码格式。
二、创建数据库案例
1. 创建数据库时,不指明数据库的编码格式或校验规则,如下:
此时对应在系统目录 /var/lib/mysql 这个下面就会多出一个 test1 的目录,而创建数据库的本质也是在系统下创建目录。
此时默认采用的编码格式和校验规则为:utf8 / utf8_general-ci
2. 创建数据库时,指明编码格式以及校验规则:
此时采用的编码格式和对应的校验规则就是:gbk的了
三、字符集和校验规则
查看系统默认的字符集
通过查看MySQL系统变量中 variables 中的character_set_database,可以得知系统默认的字符集,如下:
注意:如果在指定数据库下使用该SQL,查看的就是对应该数据库的字符集。
查看系统默认的字符集校验规则
通过查看MySQL系统变量中 variables 中的 collation_database,可以得知系统默认的字符集校验规则,如下:
注意:如果在指定数据库下使用该SQL,查看的就是对应该数据库的校验规则。
查看数据库支持的字符集
查看数据库支持的校验规则
字符集编码格式:指的是存储数据时各个字符的底层编码,用于指定数据的存储格式。
字符集校验规则:指的是字符集内用于比较字符的一套规格,用于对数据进行对比。
(字符集编码格式 - 字符集校验规则 要保持一致)
四、校验规则对数据库的影响
创建一个数据库,校验规则使用 utf8_general_ci (不区分大小写)
在数据库中创建一个person表,因为创建未指定表的编码格式和校验规则,因此person表会采用就近原则,直接使用数据库的编码格式和校验规则。
此时在表中插入一些数据:
此时通过 select 语句查看表中的数据,指定select 时加上where条件,因为是不区分大小写的,所以会把 A 和 a 一起显示出来:
创建一个数据库,校验规则采用 utf8_bin (区分大小写)
这里操作与刚刚一致,直接select 查看结果:
可以看到 utf8_bin 的校验规则是区分大小写的。
五、操纵数据库
1、查看数据库
mysql> show databases;
示例:
2、显示创建语句
mysql> show create database d1;
示例:
• MySQL中建议关键字使用大写,但是不是必须的。
• 数据库的名字加上反引号 `` (ESC下面那个,英文输入法的时候),为了防止数据库名字与关键字冲突。
• /*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。
3、修改数据库
注意:对数据库的修改主要是指修改数据库的字符集或者校验规则。
示例:将数据库的字符集改为gbk,并且将校验规则改为gbk_chinses_ci
4、删除数据库
mysql> drop databse [if exists] db_name;
示例:
在删除数据库之后,数据库中所有的表也随之删除,所以不要随意删除数据库。
六、数据库的备份与恢复
1、数据库的备份
对指定数据库进行备份,语法如下:
# mysqldump -P 端口号 -u 用户名 -p 密码 -B 数据库名1 数据库名2 ... > 数据库备份存储的文件路径
直接拿之前的 d1 数据库做测试:
打开这个备份的.sql文件,可以看到里面的内容都是,之前对该数据库操作的SQL语句,包括:创建数据库,创建表等,
2、数据库的恢复
先将进行测试的 d1 数据库进行删除操作:
语法:
# source 指定文件路径
查看表中的内容是否正确:(可以看到是与之前一致的)
3、表的备份
语法,如下:
# mysqldump -P 端口号 -u 用户名 -p 密码 数据库名 表名1 表名2 ... > 表备份存储的文件路径
4、表的恢复
语法,如下:
# source 表备份存储的文件路径
这里的表备份与恢复操作基本上与数据库的备份和恢复一致,不做出演示。
5、查看连接情况
使用 show processlist SQL可以查看当前MySQL连接的用户情况,示例:
• Id:一个标识,可以在MySQL中通过 kill Id 杀死指定 Id 的线程。
• User:显示当前用户,如果不是root,这个命名就只显示普通用户权限范围内的SQL语句。
• Host:显示这个语句是从哪个IP的哪个端口上发出的,可以追踪出问题语句的用户。
• db:当前执行的命名是在哪一个数据库上,如果没有数据库则该值为NULL。
• Command:显示当前连接执行的命令,一般是休眠(Sleep),查询(Query),连接
(Connect)。
• Time:表示该线程处于当前状态的时间,单位为 秒。
• State:显示使用当前连接的SQL语句状态。
• Info:一般记录的是线程执行的语句,默认只显示100个字符,看全部使用 (show full processlist)。