国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL中查詢的有關英文字母大小寫問題的分析

2024-07-24 12:46:15
字體:
來源:轉載
供稿:網友

mysql數據庫在做查詢時候,有時候是英文字母大小寫敏感的,有時候又不是的,主要是由mysql的字符校驗規則的設置決定的,通常默認是不支持的大小寫字母敏感的。

 1. 什么是字符集和校驗規則?

字符集是一套符號和編碼。校對規則是在字符集內用于比較字符的一套規則。任何一個給定的字符集至少有一個校對規則,它可能有幾個校對規則。要想列出一個字符集的校對規則,使用SHOW COLLATION語句。

201557101023879.png (620×262)

校對規則一般有這些特征:

    兩個不同的字符集不能有相同的校對規則。
    每個字符集有一個默認校對規則。例如,utf8默認校對規則是utf8_general_ci。
    存在校對規則命名約定:它們以其相關的字符集名開始,通常包括一個語言名,并且以_ci(大小寫不敏感)、_cs(大小寫敏感)或_bin(二元)結束。

2. 不同級別的字符集和校驗規則可控制大小寫敏感

MySQL5.1在同一臺服務器、同一個數據庫或甚至在同一個表中使用不同字符集或校對規則來混合定義字符串。字符集和校對規則有4個級別的默認設置:服務器級、數據庫級、表級和連接級。

2.1服務器級

MySQL按照如下方法確定服務器字符集和服務器校對規則:

(1)修改配置文件/etc/my.cnf

在[mysqld]下添加:collation_server = utf8_bin

重啟實例

201557101048006.png (405×125)

更改服務器級的校驗規則(collation_server )后,數據庫校驗規則(collation_collation)默認會繼承服務器級的。

注意:

這個只適用于在重新啟動之后, 新建的庫,已存在的庫不受影響.

同樣的, 即使庫的校驗規則改了,已經存在的表不受修改影響;

同理與已經存在的列...

mysql> create database yutest0;Query OK, 1 row affected (0.00 sec)mysql> use yutest0;Database changedmysql> create table t1 (name varchar(10));Query OK, 0 rows affected (0.01 sec)mysql> insert into t1 values('AAA');Query OK, 1 row affected (0.00 sec)mysql> insert into t1 values('aaa');Query OK, 1 row affected (0.01 sec)mysql> select * from t1;+------+| name |+------+| AAA || aaa |+------+2 rows in set (0.00 sec)mysql> select * from t1 where name='aaa';+------+| name |+------+| aaa |+------+1 row in set (0.00 sec)

可以看出,在服務器級進行相應的校對規則設置,查詢大小寫敏感。

(2)當服務器啟動時根據有效的選項設置

當啟動mysqld時,根據使用的初始選項設置來確定服務器字符集和校對規則。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上林县| 禹城市| 富锦市| 西乡县| 东阿县| 西乌珠穆沁旗| 犍为县| 莎车县| 巩留县| 黑河市| 沙雅县| 措勤县| 陕西省| 肇庆市| 江北区| 麻城市| 宁化县| 北票市| 仙桃市| 九寨沟县| 青神县| 县级市| 郯城县| 彝良县| 南陵县| 马鞍山市| 竹溪县| 三河市| 海门市| 漳州市| 万安县| 寿阳县| 静海县| 武定县| 确山县| 晋州市| 宁晋县| 沭阳县| 宣城市| 永仁县| 泸定县|