网站首页 > 开源技术 正文
MySQL 正式版 8.0.26已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能。
查看MySQL版本号:mysql --version
演示CentOS 8中安装部署和配置 MySQL 8.0 的完整过程
一、CharacterSet和Collation简述
A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set.
Character Set: 一套字符及其编码,即字符集;
Collation:在字符集内用于比较或排序字符的一套规则,即校验规则。
- MySQL服务器支持多种字符集(Character Set)
- 每个字符集至少有一个Collation
- 大部分字符集都有多个Collation
- 每个字符集都有一个默认的Collation
- 两个不同的字符集不会有相同的Collation
- MySQL可以在服务器、数据库、表或字段 级别 指定使用的字符集
下面是一些常见的Collation后缀:
二、查看MySQL Server默认字符集
MySQL官方文档可查看默认的Charset和Collation:
- <=5.7 doc MySQL Server 5.7或之前版本默认的Charset和Collation是: latin1 和 latin1_swedish_ci
- 8.x doc MySQL Server 8.x(当前版本)默认的Charset和Collation是: utf8mb4 和 utf8mb4_0900_ai_ci
查看MySQL Server当前的Charset和Collation:
show variables like 'character_set_server';
show variables like 'collation_server';
或者使用语句:
select @@character_set_server, @@collation_server;
默认的charset是utf8mb4, 而且 utf8mb4 默认的collation是 utf8mb4_0900_ai_ci。
或者使用如下命令查看:
show variables like 'character%';
show variables like 'collation%';
MySQL中utf8字符集使用三个字节编码一个字符,自2004(MySQL 4.1)年被引入,能够支持绝大多数语言,但依然有些字符不能正确编码,如表情字符,为此MySQL 5.5引入了utf8mb4字符集,提供了另一种选择。在MySQL 5.7对utf8mb4进行了大幅优化,并丰富了校验字符集。
MySQL 8 默认编码使用utf8mb4,utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
MySQL数据库的 "utf8"并不是真正概念里的 UTF-8,MySQL中的"utf8"编码只支持最大3字节每字符,真正的大家正在使用的UTF-8编码是应该能支持4字节每个字符。
三、数据库(Database)的Charset和Collation
创建数据库的时候,如果没有指定character set 和 collation,会自动用MySQL Server的 character set和collation。
(1)查看数据的Character Set和Collation
USE db_name;
SELECT @@character_set_database, @@collation_database;
不想改变当前数据库的话,可以使用语句:
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'db_name';
(2)指定或修改数据库(Database)的Character Set和Collation
创建db时指定:
CREATE DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
修改:
ALTER DATABASE db_name CHARACTER SET latin1 COLLATE latin1_swedish_ci;
四、表(Table)的Charset和Collation
如果创建表的时候没有指定表级别Charset和Collation,会默认使用数据库(Database)的Charset和Collation。
查看表(Table)的Charset和Collation
SELECT
t.TABLE_SCHEMA,
t.table_name,
ccsa.*
FROM
information_schema.`TABLES` t,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` ccsa
WHERE ccsa.collation_name = t.table_collation
AND t.table_schema = "db_name"
AND t.table_name = "table_name";
指定或修改表(Table)的Character Set和Collation
CREATE TABLE tbl_name (column_list)
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]]
ALTER TABLE tbl_name
[[DEFAULT] CHARACTER SET charset_name]
[COLLATE collation_name]
五、列(Column)的Charset和Collation
如果创建表的时候没有指定列的Charset和Collation,会默认使用表(Table)的Charset和Collation。
查看列(Column)的Charset和Collation
SELECT
*
FROM information_schema.`COLUMNS`
WHERE table_schema = "db_name"
AND table_name = "table_name";
猜你喜欢
- 2024-09-10 上了这么多年的班,你们知道doc和docx有什么区别?
- 2024-09-10 天天用Word DOC文件与DOCX文件“傻傻分不清”
- 2024-09-10 告别文件格式困扰!doc与docx大揭秘
- 2024-09-10 python读取当当首页的全部商品分类
- 2024-09-10 接私活利器丨X-SpringBoot轻量级的Java快速开发平台,源码分享
- 2024-09-10 Elasticsearch v7.x 集群最佳实践(Best practices)和核心概念
- 2024-09-10 X公司生产车间绩效考核制度.doc(生产企业车间绩效考核标准)
- 2024-09-10 《黑神话:悟空》现已解锁可玩,多家厂商推出联名款显卡
- 2024-09-10 阿里推出全新升级的DocOwl2文档理解LLM,性能飞跃提升
- 2024-09-10 XQuery编程 FLWOR + HTML(html编程技巧)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)