目录
1. 字符集和校验规则
一般可以理解为字符集表示数据按什么编码写入数据库,检验规则表示数据按什么编码读出数据库。所以字符集和校验规则一般是匹配的
1.1 查看系统默认字符集以及检验规则
show variables like 'character_set_database';
show variables like 'collation_database';
1.2 查看数据库支持的字符集
1.3 查看数据库支持的字符集检验规则
1.4 校验规则对数据库的影响
utf8_general-ci -- 不区分大小写。
当前有一张 person 表,内容如上,校验规则是 utf8_general-ci,使用 select * from person where name='a'; 查询时,大写的 a 也会匹配到。
utf8_bin -- 区分大小写。如校验集为 utf_8_bin 时,则不会匹配到 A。
2. 数据库的操作
2.1 创建数据库
2.1.1 语法
CREATE DATABASE [IF NOT EXISTS] database_name
[CHARACTER SET charset_name]
[COLLATE collation_name];
CREATE DATABASE
:创建数据库的核心命令,必须使用。
IF NOT EXISTS
:此为可选参数。加上它后,当要创建的数据库已经存在时,就不会报错。
database_name
:这是必选的,用于指定数据库的名称,且在 MySQL 服务器中必须是唯一的。
CHARACTER SET
:为可选设置,可用来指定数据库的字符集,像 utf8mb4
就是常用的字符集。
COLLATE
:同样是可选的,用于设定字符集的排序规则,例如 utf8mb4_unicode_ci
。
2.1.2 示例
(1)创建名为 db1 的数据库
create database db1;
当创建数据库没有指定字符集和校验规则时,默认使用系统默认的字符集和校验规则。
(2)创建一个使用 utf8 字符集 的 db2 数据库
create database db2 charset=utf8;
(3)创建一个使用utf字符集,并带校对规则的 db3 数据库。
create database db3 charset=utf8 collate utf8_general_ci;
知识点1:
创建数据库一般就使用默认或者配置中设置好的字符集和校验集就行,常用的语句就是(1)中创建数据库的语句。
2.2 查看数据库
2.2.1 语法
SHOW DATABASES;
2.2.2 查看当前使用的数据库
select dadtabase();
2.2.3 显示数据库创建语句
show create database 数据库名;
MySQL 建议关键字使用大写,但是不是必须的。数据库名反引号'',是为了防止使用的数据库名刚好是关键字。 /*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。
后续对数据库进行修改,会改变该语句的查询结果。
2.3 删除数据库
2.3.1 语法
DROP DATABASE [IF EXISTS] db_ name;
2.3.2 示例
执行删除之后,数据库服务内部看不到对应的数据库目录文件,对应的数据库目录被删除,级联删除,里面的数据表全部被删除。
2.4 修改数据库
2.4.1 语法
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
对数据库的修改主要指的是修改数据库的字符集,校验规则。
2.4.2 示例
3. 数据库的备份和恢复
3.1 备份
mysqldump -P3306 -u root -B 数据库名 -p > 数据库备份存储的文件路径
上述语句在命令行中执行,不是在 mysql 中执行。 执行后输入密码即可。
-B 选项表示会备份数据库名,如果没有带 -B 选项进行备份,则在还原的时候需要先创建空的数据库,这时候就可以创建不同的数据库名,实现数据库的重命名。
上图表示将数据库 test1 备份到当前目录的 test1.sql 文件中。整个创建数据库,建表,导入数据的语句都装载这个文件中。
3.2 还原
source 备份文件的文件路径
3.2.1 备份数据库中的几张表
mysqldump -u root -p 数据库名 表名1 表名2 > /home/xxx/xxx.sql
3.2.2 备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
4. 查看连接情况
show processlist;
这可以知道当前有哪些用户连接到我们的MySQL。