日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

13、设置默认字符集和校对规则

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 13、设置默认字符集和校对规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL 服務器可以支持多種字符集,在同一臺服務器、同一個數據庫甚至同一個表的不同字段中,都可以使用不同的字符集。Oracle 等其它數據庫管理系統都只能使用相同的字符集,相比之下,MySQL 明顯存在更大的靈活性。

MySQL 的字符集和校對規則有 4 個級別的默認設置,
即服務器級、
數據庫級、
表級、
字段級。
它們分別在不同的地方設置,作用也不相同。

服務器字符集和校對規則

修改服務器默認字符集和校對規則的方法如下。

1)可以在 my.ini 配置文件中設置服務器字符集和校對規則,添加內容如下:

[mysqld] character-set-server=字符集名稱

2)連接 MySQL 服務器時指定字符集:

mysql --default-character-set=字符集名稱 -h 主機IP地址 -u 用戶名 -p 密碼

如果沒有指定服務器字符集,MySQL 會默認使用 latin1 作為服務器字符集。
如果只指定了字符集,沒有指定校對規則,MySQL 會使用該字符集對應的默認校對規則。
如果要使用字符集的非默認校對規則,需要在指定字符集的同時指定校對規則。

可以用 SHOW VARIABLES LIKE 'character_set_server' 和 SHOW VARIABLES LIKE 'collation_server' 命令查詢當前服務器的字符集和校對規則。

mysql> SHOW VARIABLES LIKE 'character_set_server'; +----------------------+--------+ | Variable_name | Value | +----------------------+--------+ | character_set_server | gbk | +----------------------+--------+ 1 row in set, 1 warning (0.01 sec) mysql> SHOW VARIABLES LIKE 'collation_server'; +------------------+-------------------+ | Variable_name | Value | +------------------+-------------------+ | collation_server | gbk_chinese_ci | +------------------+-------------------+ 1 row in set, 1 warning (0.01 sec)

數據庫字符集和校對規則

數據庫的字符集和校對規則在創建數據庫時指定,也可以在創建完數據庫后通過 ALTER DATABASE 命令進行修改。

設置數據庫字符集的規則如下:

  • 如果指定了字符集和校對規則,則使用指定的字符集和校對規則;
  • 如果指定了字符集沒有指定校對規則,則使用指定字符集的默認校對規則;
  • 如果指定了校對規則但未指定字符集,則字符集使用與該校對規則關聯的字符集;
  • 如果沒有指定字符集和校對規則,則使用服務器字符集和校對規則作為數據庫的字符集和校對規則。

為了避免受到默認值的影響,推薦在創建數據庫時指定字符集和校對規則。

可以使用 SHOW VARIABLES LIKE 'character_set_database' 和 SHOW VARIABLES LIKE 'collation_database' 命令查看當前數據庫的字符集和校對規則。

mysql> SHOW VARIABLES LIKE 'character_set_database'; +------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | character_set_database | latin1 | +------------------------+--------+ 1 row in set, 1 warning (0.00 sec) mysql> SHOW VARIABLES LIKE 'collation_database'; +--------------------+-------------------+ | Variable_name | Value | +--------------------+-------------------+ | collation_database | latin1_swedish_ci | +--------------------+-------------------+ 1 row in set, 1 warning (0.00 sec)

表字符集和校對規則

表的字符集和校對規則在創建表的時候指定,也可以在創建完表后通過 ALTER TABLE 命令進行修改,

同樣,如果表中已有記錄,修改字符集后,原有的記錄不會按照新的字符集重新存放。表的字段仍然使用原來的字符集。

設置表的字符集規則和設置數據庫字符集的規則基本類似:

  • 如果指定了字符集和校對規則,使用指定的字符集和校對規則;
  • 如果指定了字符集沒有指定校對規則,使用指定字符集的默認校對規則;
  • 如果指定了校對規則但未指定字符集,則字符集使用與該校對規則關聯的字符集;
  • 如果沒有指定字符集和校對規則,使用數據庫字符集和校對規則作為表的字符集和校對規則。

為了避免受到默認值的影響,推薦在創建表的時候指定字符集和校對規則。

可以使用 SHOW CREATE TABLE 命令查看當前表的字符集和校對規則,SQL 語句和運行結果如下:

mysql> SHOW CREATE TABLE tb_students_info \G *************************** 1. row ***************************Table: tb_students_info Create Table: CREATE TABLE `tb_students_info` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(10) DEFAULT NULL,`age` int(11) DEFAULT NULL,`sex` char(1) DEFAULT NULL,`height` float DEFAULT NULL,`course_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 1 row in set (0.00 sec)

列字符集和校對規則

MySQL 可以定義列級別的字符集和校對規則,主要是針對相同表的不同字段需要使用不同字符集的情況。一般遇到這種情況的幾率比較小,這只是 MySQL 提供給我們一個靈活設置的手段。

列字符集和校對規則的定義可以在創建表時指定,或者在修改表時調整。語法格式如下:

ALTER TABLE 表名 MODIFY 列名 數據類型 CHARACTER SET 字符集名;

例 1
修改 tb_students_info 表中 name 列的字符集,并查看。SQL 語句和運行結果如下:

mysql> ALTER TABLE tb_students_info MODIFY name VARCHAR(10) CHARACTER SET gbk; mysql> SHOW CREATE TABLE tb_students_info \G *************************** 1. row ***************************Table: tb_students_info Create Table: CREATE TABLE `tb_students_info` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(10) CHARACTER SET gbk DEFAULT NULL,`age` int(11) DEFAULT NULL,`sex` char(1) DEFAULT NULL,`height` float DEFAULT NULL,`course_id` int(11) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 1 row in set (0.00 sec)

結果顯示,name 列字符集修改成功。
如果在創建列的時候沒有特別指定字符集和校對規則,默認使用表的字符集和校對規則。

連接字符集和校對規則

上面所講的 4 種設置方式,確定的都是數據保存的字符集和校對規則。實際應用中,還需要設置客戶端和服務器之間交互的字符集和校對規則。

對于客戶端和服務器的交互操作,MySQL 提供了 3 個不同的參數:character_set_client、character_set_connection 和 character_set_results,分別代表客戶端、連接和返回結果的字符集。通常情況下,這 3 個字符集是相同的,這樣可以確保正確讀出用戶寫入的數據,尤其是中文字符。字符集不同時,容易導致寫入的記錄不能正確讀出。

設置客戶端和服務器連接的字符集和校對規則有以下幾種方法:

1)在 my.ini 配置文件中,設置以下語句:

[mysql] default-character-set=gbk

這樣服務器啟動后,所有連接默認使用 GBK 字符集進行連接。

2)可以通過以下命令來設置連接的字符集和校對規則,這個命令可以同時修改以上 3 個參數(character_set_client、character_set_connection 和 character_set_results)的值。

SET NAMES gbk;

使用這個方法可以“臨時一次性地”修改客戶端和服務器連接時的字符集為 gbk。

3)MySQL 還提供了下列 MySQL 命令“臨時地”修改 MySQL“當前會話的”字符集和校對規則。

set character_set_client = gbk; set character_set_connection = gbk; set character_set_database = gbk; set character_set_results = gbk; set character_set_server = gbk; set collation_connection = gbk_chinese_ci; set collation_database = gbk_chinese_ci; set collation_server = gbk_chinese_ci;

總結

以上是生活随笔為你收集整理的13、设置默认字符集和校对规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩性网站 | 日本精品视频网站 | 爱爱一区二区三区 | 美女免费av| 在线视频一区二区 | 亚洲第5页 | 国产精品一区二区av | 欧美性猛交xxxx乱大交俱乐部 | 色哟哟精品一区 | 精品动漫一区二区三区在线观看 | 大黄网站在线观看 | 超色视频 | 成人无码一区二区三区 | sm在线观看 | 粉嫩av一区二区夜夜嗨 | 中出在线视频 | 国模在线观看 | 网站免费在线观看 | 二区视频在线观看 | jizz处女| 国产精品亲子伦对白 | 成人高清视频免费观看 | 啪啪网页 | 中文在线字幕观看 | 伊人啪啪 | 在线免费观看av片 | 操到喷水 | 女女互慰揉小黄文 | 四虎视频在线 | 男女网站视频 | 国产chinesehd精品露脸 | 亚洲网站视频 | 中文字幕乱码中文字幕 | 黄色短视频在线观看 | av香蕉| 在线观看日韩一区 | av免费观看网址 | 欧美大片免费播放器 | 青娱乐国产 | 伊人手机视频 | 亚洲成在线观看 | 无码任你躁久久久久久老妇 | 中文字幕第五页 | www.色就是色.com | aa视频免费观看 | 网站久久| 日韩精品www | 欧美成人午夜视频 | av电影在线不卡 | 中文在线字幕免费观看电 | 日本伦理片在线播放 | 色欲AV无码精品一区二区久久 | 99热热久久| 狠狠干av | 国产乱国产乱老熟 | 麻豆视频免费入口 | ts人妖另类精品视频系列 | 日韩视频免费看 | 99爱精品| 日本欧美国产 | 免费在线精品视频 | 一级免费观看视频 | 欧美少妇b | 久久精品国产亚洲AV成人婷婷 | 三级黄网| 很黄很污的视频网站 | 精品在线视频免费观看 | 香蕉传媒 | 日日骚一区 | 国产亚洲精品久久久久丝瓜 | 中文字幕25页 | 免费午夜视频在线观看 | 网站久久 | 性高湖久久久久久久久aaaaa | 丰满的人妻hd高清日本 | 91在线看 | 中文字幕永久在线播放 | 欲涩漫入口免费网站 | 久久人人看 | 97精品免费视频 | 亚洲午夜久久久 | 国产成人啪精品 | 国产精品夜夜夜爽张柏芝 | 变态另类ts人妖一区二区 | 黄色片怎么看 | 国产免费91 | 国产欧美日韩综合精品一区二区三区 | 色婷婷一区二区三区 | jizzjizzjizz亚洲女| 亚洲第一色播 | 亚洲国产精品久久久久爰性色 | 日本免费一区二区视频 | 欧美一区二区三区国产 | 摸摸摸bbb毛毛毛片 午夜爽爽影院 | 美女撒尿无遮挡网站 | 国产欧美一区二区三区在线看蜜臀 | www.亚洲| 日本aⅴ在线观看 | 国产伦精品一区二区三区照片 |