使用数据库数据库编码
7.4 数据库编码
在MySQL中,会为创建的每个数据库指定一个字符编码。如果在创建数据库时没有为数据库指定字符编码,则MySQL会为数据库指定一个默认的字符编码,这个默认的字符编码在MySQL的配置文件my.cnf中进行配置。
[client]
default-character-set = utf8mb4
[mysqld]
character_set_server = utf8mb4
[mysql]
default-character-set=utf8mb4
另外,创建数据库后也可以修改数据的字符编码。
7.4.1 创建数据库时指定字符编码
1.语法格式
创建数据库时指定字符编码的语法格式如下:
CREATE DATABASE [IF NOT EXISTS] database_name DEFAULT CHARACTER SET character_name COLLATE collate_name
[DEFAULT ENCRYPTION='N'];
2.简单示例
在MySQL命令行创建名称为test_character的数据库,并指定数据库的字符编码为UTF-8,校验规则为utf8_unicode_ci,不使用MySQL的加密技术。
mysql> CREATE DATABASE IF NOT EXISTS test_character DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci
DEFAULT ENCRYPTION='N';
Query OK, 1 row affected, 2 warnings (0.09 sec)
可以看到,名称为test_character的数据库创建成功。
接下来,查看名称为test_character的数据库的字符编码。
mysql> SHOW CREATE DATABASE test_character \G
*************************** 1. row ***************************
Database: test_character
Create Database: CREATE DATABASE `test_character` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_
unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */
1 row in set (0.00 sec)
创建的名称为test_character的数据库使用的字符编码为UTF-8,校验规则为utf8_unicode_ci,没有使用MySQL的加密技术。
创建名称为goods的数据库时没有指定字符编码,此时就会使用默认的字符编码utf8mb4,读者可参见7.2.3节中的内容查看goods数据库的字符编码。
MySQL中也提供了查看数据库默认字符编码的SQL语句。
mysql> SHOW VARIABLES LIKE '%character_set_database%';
+------------------------+---------+
| Variable_name | Value |
+------------------------+---------+
| character_set_database | utf8mb4 |
+------------------------+---------+
1 row in set (0.00 sec)
MySQL中默认的数据库编码为utf8mb4,与在my.cnf文件中配置的默认字符编码一致。
7.4.2 修改数据库的字符编码
1.语法格式
修改数据库的字符编码的语法格式如下:
ALTER DATABASE database_name CHARACTER SET character_name collate collate_name;
2.简单示例
将名称为test_character的数据库的字符编码修改为utf8mb4,检验规则修改为utf8mb4_0900_ai_ci。
mysql> ALTER DATABASE test_character CHARACTER SET utf8mb4 collate utf8mb4_0900_ai_ci;
Query OK, 1 row affected (0.00 sec)
接下来,查看test_character数据库的字符编码。
mysql> SHOW CREATE DATABASE test_character \G
*************************** 1. row ***************************
Database: test_character
Create Database: CREATE DATABASE `test_character` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE
utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */
1 row in set (0.00 sec)
此时test_character数据库的字符编码为utf8mb4,校验规则为utf8mb4_0900_ai_ci。说明数据库的字符编码修改成功。
- 点赞
- 收藏
- 关注作者
评论(0)