千家信息网

MySQL字符集和校对规则是什么

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容介绍了"MySQL字符集和校对规则是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!查看所
千家信息网最后更新 2025年01月31日MySQL字符集和校对规则是什么

本篇内容介绍了"MySQL字符集和校对规则是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

查看所有可用字符集:

mysql> show character set;

+----------+-----------------------------+---------------------+--------+

| Charset | Description | Default collation | Maxlen |

+----------+-----------------------------+---------------------+--------+

| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |

查看字符集(character):存儲方式 和 校對規則(collation):比較字符串的方式

select * from information_schema.character_sets

校對規則

mysql> show collation like '%gbk%';

+----------------+---------+----+---------+----------+---------+

| Collation | Charset | Id | Default | Compiled | Sortlen |

+----------------+---------+----+---------+----------+---------+

| gbk_chinese_ci | gbk | 28 | Yes | Yes | 1 |

| gbk_bin | gbk | 87 | | Yes | 1 |

+----------------+---------+----+---------+----------+---------+

2 rows in set (0.00 sec)

命名約定:
字符集名開始+:

_ci (大小寫不敏感)

_cs(大小寫敏感)

_bin(二元,比較字符編碼值,對大小寫不敏感)

例:

select case when 'A' COLLATE utf8_general_ci='a' collate utf8_general_ci then 1 else 0 end;

1

--校對規則是ci時認為A和a相同

select case when 'A' COLLATE utf8_bin='a' collate utf8_bin then 1 else 0 end;

0

Mysql字符集的設置

SERVER服務器級別、DB數據庫級、TABLE表級、字段級

SERVER服務器字符集和校對規則

1. my.cnf (ini) 設置

[mysql]

character-set-server=utf8

2. 啟動選項

mysqld --character-set-server=utf8

3. 編譯時指定

cmake . -DDEFAULT_CHARSET=utf8

如果以上都沒有指定則使用:latin1

mysql> show variables like 'character_set_server%';

+----------------------+-------+

| Variable_name | Value |

+----------------------+-------+

| character_set_server | utf8 |

+----------------------+-------+

1 row in set (0.00 sec)

mysql> show variables like 'collation_server%';

+------------------+-----------------+

| Variable_name | Value |

+------------------+-----------------+

| collation_server | utf8_general_ci |

+------------------+-----------------+

1 row in set (0.00 sec)

DB數據庫字符集合校對規則

在數據庫創建時指定,可以alter database修改,但是已有的數據不會修改

1>如果指定了DB字符集和校對則使用

2>如果指定了DB字符集沒指定校對,使用字符集默認校對

3>如果指定了DB校對沒指定字符集,使用校對相關字符集

4>如果沒有設定DB字符集和校對,使用server字符集和校對

mysql> show variables like 'character_set_database%';

+------------------------+-------+

| Variable_name | Value |

+------------------------+-------+

| character_set_database | utf8 |

+------------------------+-------+

1 row in set (0.00 sec)

mysql> show variables like 'collation_database%';

+--------------------+-----------------+

| Variable_name | Value |

+--------------------+-----------------+

| collation_database | utf8_general_ci |

+--------------------+-----------------+

1 row in set (0.00 sec)

Table表字符集和校對

CREATE TABLE `t` (

`id` varchar(100) DEFAULT NULL,

`context` text

) ENGINE=InnoDB DEFAULT CHARSET=utf8

創建table時指定,如果未設置根據db字符集

連接字符集

character_set_client 客戶端字符集

character_set_connection 連接字符集

character_ser_results 返回字符集

這3個參數確保相同,保證寫入讀出都正常

設置:

[mysql]

default-character-set=utf8

可統一設置:

Set names utf8

強制設置字符集

select _utf8 '字符集',_big5 '字符集'

"MySQL字符集和校对规则是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

字符 字符集 大小 校对 规则 相同 内容 方式 更多 知识 实用 学有所成 接下来 困境 字段 字符串 实际 情况 文章 案例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术方面考证有用吗 计算机网络技术监狱信息管理专业 泛解析服务器域名绑定 大学生数据库设计大赛 魔兽怀旧服灵风服务器介绍 联想服务器拆 印刷包装软件开发维护 长宁区网络技术开发产品 淮安新品服务器租用 网络安全主题班会设计总结 乡镇网络安全教育信息 单片机用什么触摸屏软件开发 郑州项目软件开发定制 思维决定行为 网络安全 查看数据库用户密码 姑苏区运营网络技术咨询热线 计算机三级数据库pdf 大学网络技术基础教程电子版 维护中国网络安全的人 一亿条数据插入数据库面试题 海康威视应用软件开发转算法 软件开发文档排版公众号 足球经理2022数据库的影响 crm系统软件开发 静安区网络技术咨询服务 郑州项目软件开发定制 创建数据库必须有服务器吗 餐饮个人微信小程序需要服务器吗 广州服务软件开发设计 数据库查询测试点
0