使用数据库数据库编码
【摘要】 7.4 数据库编码在MySQL中,会为创建的每个数据库指定一个字符编码。如果在创建数据库时没有为数据库指定字符编码,则MySQL会为数据库指定一个默认的字符编码,这个默认的字符编码在MySQL的配置文件my.cnf中进行配置。[client]default-character-set = utf8mb4[mysqld]character_set_server = utf8mb4[mysql]...
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。说明数据库的字符编码修改成功。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)