在MySQL中创建数据库时,使用默认字符集和使用默认字符集的区别是什么?

问题描述 投票:0回答:1

我试着用这两条SQL语句来创建数据库。

CREATE DATABASE IF NOT EXISTS `dbname` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

CREATE DATABASE IF NOT EXISTS `dbname` DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

这两个SQL都得到了同样的结果。

mysql> show create database `dbname`;
+----------------------+--------------------------------------------------------+
| Database | Create Database                                                    |
+----------------------+--------------------------------------------------------+
| dbname   | CREATE DATABASE `dbname` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------------------+--------------------------------------------------------+

但是,没有一个选项叫 CHARSET 在MySQL文档中创建数据库 https:/dev.mysql.comdocrefman8.0encreate-database.html。我想知道这两个语句之间的区别。

mysql database character-encoding
1个回答
1
投票

我试图找到任何关于的官方文档。CHARSET 也是,但所有的搜索结果都返回链接到 CHARACTER SET. 我发现的是 这个MariaDB文档 其中有 CREATE TABLE 查询使用 CHARSET. 所以,我猜测 CHARSET 是一个有效的同义词 CHARACTER SET.

顺便说一下:我注意到,MySQL有很多类似的功能,但略有 - 到适度不同的名称,如 - 。CURRENT_DATECURDATE(). 这些函数的名称几乎完全相同,只是在拼写上略有不同。然而,我所知道的有两个函数的名称完全不同,长度也有明显的差异,但执行的操作却完全相同。这两个函数是 CURRENT_TIMESTAMPNOW(). 这里是 示范.

© www.soinside.com 2019 - 2024. All rights reserved.