目录
创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]create_specification:
DEFAULT\] CHARACTER SET charset_name \[DEFAULT\] COLLATE collation_name
\]里的是可选项,\[IF NOT EXISTS\]就是只有当前数据库不存在时,才去创建  我们现在来创建一个数据库   创建了一个数据库后可以看到就在/var/lib/mysql下创建了一个目录  我们也可以反过来,在/var/lib/mysql下创建一个目录,这样也相当于创建一个数据库。但最后不要这样做。同样的,我们在这个目录里面删除一个目录,数据库中也会少一个数据库。 使用可选项  ### 数据库编码问题 只要是数据,就一定会有编码格式。数据库是与数据打交道的,就一定要有编码集,且存、取时采用的编码集一定是统一的。 > 创建数据库时有两个编码集 > > 1. 数据库字符集:数据库未来存储数据、检索数据、显示数据所采用的编码集 > > 2. 数据库校验集:数据库未来进行字符串比较、排序操作时所采用的编码集 #### 查看系统默认字符集以及校验规则 在一个数据库中,我们一定要保证这两个编码集是相同的 我们来看一下系统在创建数据库时默认的字符集 可以看到,默认使用的字符集是utf8 再来看看系统在创建数据库时默认的校验集 可以看到,默认使用的校验集也是utf8 我们可以使用show charset来查看一个数据库中支持的字符集及其对应的校验集 之所以我们创建数据库时默认的编码集是utf8,是因为我们在配置文件中已经指定了编码集,当然,我们也可以在创建数据库时自己指定编码集 新建的数据库里默认的文件中是可以看到这个数据库的字符集、校验集  #### 指定创建的数据库的编码集  #### 校验规则对数据库的影响 校验集的一个功能就是进行字符串比较,利用不同校验集的特性,可以来查看校验集对数据库的影响。校验集utf8_general_ci是不区分大小写的,校验集utf8_bin是区分大小写的。另外,数据库中表的编码规则继承于其所在的数据库。 创建两个数据库,校验集分别是utf8_general_ci和utf8_bin   我们现在test1这个数据库中创建一个表,并向这个表中插入一些数据     select是从这个表中查(此时使用的就是校验集),\*是指所有的意思,所以会显示这个表中所有的数据 此时可以发现校验集utf8_general_ci是不区分大小写的 再使用同样的方法,在test2这个数据库中创建一个表,并向这个表中插入一些数据   此时可以发现校验集utf8_bin是不区分大小写的 结论:校验集会影响比较  ### 删除数据库 > DROP DATABASE \[IF EXISTS\] db_ name; 执行删除之后的结果: 数据库内部看不到对应的数据库; 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删 **一定不要随意删除数据库** ### 查看数据库 > show databases; 也可以show databases(); ### 显示创建语句 > show create database 数据库名; 作用是查看创建数据库时的指令  说明: MySQL 建议我们关键字使用大写,但是不是必须的 数据库名字的反引号\`\`,是为了防止使用的数据库名刚好是关键字 /\*!40100 default.... \*/ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话 (也就是说,前面半句是一定执行的,但是后面半句是否执行需要看版本) ### 修改数据库 > ALTER DATABASE db_name > \[alter_spacification \[,alter_spacification\]...
alter_spacification:
DEFAULT\] CHARACTER SET charset_name \[DEFAULT\] COLLATE collation_name
对数据库的修改主要指的是修改数据库的字符集,校验规则
select database();是查看自己当前在那个数据库里面
修改后就可通过显示创建语句来查看
库的备份与恢复
备份
备份时最容易想到的是将这个数据库的存储目录直接拷贝一份,这样会有问题,若当前数据库版本是5.7,保存的是从5.0上保存的,可能会出错。并且MySQL是不允许对数据库进行重命名的(因为上层应用都是只认数据库名字的)。所以,需要使用MySQL自带的备份工具来备份。
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

数据库test1中有一个表person,现在对其进行备份
我们使用vim打开备份的文件test1.sql看看
可以看到不仅仅备份了数据,还将所有的有效操作都备份了,这是因为备份时带了-B后,就会把创建数据库的操作也备份过去。
恢复
我们先将数据库test1删掉
注意事项
如果备份的不是整个数据库,而是其中的一张表,怎么做?
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原
查看链接情况
show processlist
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。