目录
一、创建数据库
二、字符集和校验规则
1、查看系统默认字符集以及校验规则
2、查看系统支持的所有字符集以及字符集校验规则
3、指定字符集以及校验规则来创建数据库
4、校验规则对数据库的影响
三、操纵数据库
1、查看数据库
2、修改数据库
3、删除数据库
4、数据库的备份与恢复
5、查看连接情况
一、创建数据库
先连接服务器:mysql -h 127.0.0.1 -P 3306 -u root -p
没有写-h 127.0.0.1默认连接本地
没有写 -P 3306默认连接3306端口号
create database db_name;创建一个名字为db_name的数据库
在Linux的/var/lib/mysql目录下可以看到新建的数据库目录d1:
同样地在Linux这个目录下也可以创建一个新的目录在mysql里面相当于创建了新的数据库,但是一般不会这样写。
create database if not exists db_name ;创建一个数据库,但是若是这个数据库已经存在就不会创建了。
二、字符集和校验规则
mysql的编码分为字符集编码和校验编码;
字符集就是系统支持哪种字符能够被MySQL编码使用(就是支持哪种语言),校验编码定义了MySQL对字符集的比较以及排序规则;
1、查看系统默认字符集以及校验规则


2、查看系统支持的所有字符集以及字符集校验规则
show charset;//查看支持的所有字符集;
show collation;//查看支持的所有校验规则;
3、指定字符集以及校验规则来创建数据库
create database db_name charset=指定字符集;
create database db_name collate 指定字符集校验规则;(也可以是collate=)
实验:
就选取所有字符集以及对应规则的第一行的来实验;即charset=big5和 collate big5_chinese_ci;
4、校验规则对数据库的影响
校验规则不同,数据库的表中的规则遵从的也是不同的校验规则,那么表对数据比较以及排序的方式就不同;
实验:
创建两个数据库,它们的字符集相同,但是校验规则不同,来查看相关数据操作呈现结果的不同:
分别使用utf8_general_ci(不区分大小写)、utf8_bin(区分大小写);
接下来在这两个数据库里面创建一个表并且在表里面插入相同的数据;
use db_name;表示此时要使用哪个数据库;
接下来分别对两表进行查找 select * person where name= 'a';
发现结果不一样这是校验编码不同导致的字符比较规则的不同的原因;
再按照大小查询name呢?
select * from person order by name ;
默认按照大小去排序,但是d4不区分大小写,所以a A在前,d5区分,所以A在最前。
三、操纵数据库
1、查看数据库
show databases;查看全部数据库;
show create database db_name;查看创建这个数据库时的细节;
MySQL建议使用大写但不是必须的;
user_db的引号是为了避免这个数据库的名称与关键字同名;
后面的/*……*/不是注释,当当前MySQL版本大于4.01时就执行这句话。
select database();使用函数查看当前在使用哪个数据库;
2、修改数据库
对数据库的修改主要修改的是数据库的字符集以及校验规则;
alter database db_name charset=指定字符集 collate=指定校验规则;
先看是现在的字符集和校验规则:
alter database user_db charser=big5 collate=big5_chinese_ci;
3、删除数据库
drop database if exist db_name;
删除这个数据库之后这个数据库里面的所有内容全部被删除,包括数据。
所以不要随意删除数据库。
4、数据库的备份与恢复
备份的操作在Linux命令行进入操作,命令是:
mysqldump -P 指定端口号 -u root -p 密码 -B db_name > 备份的指定路径
vim 打开user_sql可以看到创建数据库、建表、导入数据的语句都在这里面:
还原的操作在mysql界面进行操作 :
source 路径以及备份的文件名;
如果备份时没有加-B选项,那么备份的文件中只有数据库的数据而没有创建数据库时的相关语句,那么此时再进行还原的时候需要先手动创建数据库,然后use这个数据库之后再source才行
不加-B选项时的备份文件
那么还原时进行和之前一样的操作之后并没有出现想要还原出来的数据库:
要手动创建并且use这个数据库之后再进行source才行:
备份多个数据库时:mysqldump -u root -p 数据库1 数据库2 > 备份文件
备份数据库里面的表时: mysqldump -u root -p 数据库 表1 表2 > 备份文件
还原时是一样的操作。
5、查看连接情况
show processlist;
查看哪些用户连接了我们的mysql,当MySQL运行很慢时可能被入侵了,此时可以使用这个来查看;