2.库的操作
2.1 创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification]….]create_spcification:[DEFAULT] CHARACTER SET charset_nam[DEFAULT] COLLATE collation_name
说明:
- 大写的表示关键字
- [] 是可选项
- CHARACTER SET: 指定数据库采用的字符集
- COLLATE: 指定数据库字符集的校验规则
也可以写成 charset =utf-8 collate <所对应的校准集>
2.2 创建数据库案例
- 创建一个名为 db1 的数据库
说明: 当我们创建数据库没有制定字符集和检验规则时,系统使用默认字符集:utf8,检验规则是:utf8_general_ci (不同的系统不同的版本,默认的并不相同,当基本上都是这样类似的)create database db1;
- 创建一个使用utf8字符集和db2数据库
create database db2 chrest=utf8;
- 创建一个使用utf字符集,并带校对规则的db3数据库。
create database db3 charset=utf8 collate utf8_general_ci;
2.3 字符集和检验规则
2.3.1 查看系统默认字符集以及校验规则
show variables like 'character_set_database';show variables like 'collation_database';
2.3.2 查看数据库支持的字符集
show charset;
上图显示的是所有的字符集以及字符集所对应的校验规则
字符集主要是控制在数据库中用什么样的语言,比如utf8就可以使用中文。
2.3.3 查看数据库支持的字符集校验规则
show collation;
字符集检验规则 太多,这里不进行展示了。
我们可以通过上面字符集的图片看到部分校验规则。
查看单独一个字符集所对应的校验规则
show collation like 'utf8%';
这是utf8所对应的所有校验规则,其中校验规则的命名有如下规则:
校对规则名称通常由字符集名称、一些特性描述以及排序规则类型组成,其通用格式为:
字符集名称_特性描述_排序规则类型
其中排序规则,这部分定义了字符的比较和排序方式,
常见的类型有:
- ai (Accent Insensitive):不区分重音,即带有重音的字符和其无重音形式被视为相同。例如,é 和 e 会被认为是相同的字符。
- as (Accent Sensitive):区分重音,é 和 e 会被视为不同的字符。
- ci (Case Insensitive):不区分大小写,A 和 a 会被视为相同的字符。
- cs (Case Sensitive):区分大小写,A 和 a 会被视为不同的字符。
2.3.4 校验规则对数据库的影响
我们分别创建使用两个校验规则创建数据库,一个区分大小写,一个不区分大小写,查看效果
- 不区分大小写
create database db1 collate utf8mb4_0900_ai_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
- 区分大小写
create database db2 COLLATE utf8mb4_zh_0900_as_cs ;
use db2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
- 进行查询
不区分大小写的查询以及结果
区分大小写的查询以及结果
- 结果排序
不区分大小写排序以及结果:
区分大小写排序以及结果:
2.4 操纵数据库
语法:
ALTER DATABASE db_name[alter_spacification [,alter_spacification]...]alter_spacification:[DEFAULT] CHARACTER SET charset_name
TER SET charset_name[DEFAULT] COLLATE collation_name
说明:
对数据库的修改主要指的是修改数据库的字符集,校验规则。
示例:将db3数据库字符集改为gbk
修改后
show create database
此语句能够展示创建数据库时所用的完整 SQL 语句,其中会包含数据库的字符集信息。
2.4.4 数据库删除
DROP DATABASE [IF EXISTS] db_ name;
执行删除之后的结果:
- 数据库内部看不到对应的数据库
- 对应的数据库文件被删除,级联删除,里面的数据表全部被删除(就是直接将目录删除)
注意:不要随意删除数据库