搜尋
首頁資料庫mysql教程MySQL字符集是什麼?字符集的相關介紹
MySQL字符集是什麼?字符集的相關介紹Oct 17, 2018 pm 05:28 PM
gbkmysqlutf8字元集

本文帶給大家MySQL字符集是什麼?字符集的相關介紹。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

字元集介紹

  • #gbk/gb2312

    #gbk/gb2312
    採用雙位元組字元集,不論中、英文字元皆使用雙字元來表示,為了區分中文,將其最高位元都設定成1
    gb2312是gbk的子集,gbk是gb18030的子集,gb2312只能儲存簡體中文字元
    gbk包含中日韓字元的大字元集
    通常使用gbk字元集足夠
    國際通用性比utf8差,不過utf8佔用的資料庫比gbk大(utf8是三位元組字元集)

  • utf8/utf8mb4

    UTF全名(Unicode Transformation Format),是Unicode的一種儲存方式,可變長度字元編碼,又稱萬國碼;
    資料庫字元集盡量使用utf8(包括connect、result、及最終html頁面都必須要求一致為utf8);
    UTF8使用可變長度位元組來存儲Unicode字符,例如ASCII字母繼續使用1個字節存儲,重音文字、希臘字母、或西里爾字母等使用2個字節來存儲,而常用的漢字就要用3個位元組;也就是一個英文字元等於一個位元組,一個中文(含繁體)等於三個位元組。
    utf8mb4一個字元最多能存4字節,所以能支援更多的字元集;專案中常用utf8mb4存放emoji表情;
    latin1是8bit (1 bytes)字元集,但不能覆蓋亞洲、非洲語言;
    unidoce是latin1的擴展,增加了亞洲、非洲常規語言支持,但仍不支持全部語言,且ASCII用unidoce來表示效率不高(小字符集轉換成大字符集,往往便隨的就是字元的遺失);
    utf8是unicode的擴充;
    gbk、gb2312等字元集與utf8之間都必須透過Unicode編碼才能相互轉換。

字元集使用建議

#1、非常肯定只有中文終端使用者時,可選擇gbk / gb2312

2、為了方便資料遷移、以及多種終端展示,最好是utf8

3、字元無需區分大小寫時,採用預設的xx_ci校驗集可以,否則選擇xx_bin校驗集(生產環境中,盡量不要修改校驗集)

4、預設字元集是latin1,該字元集存放漢字是分開存放,以至於檢索結果時不夠精確,好處就是節省空間,不建議使用

MySQL字元集範圍

#伺服器層(server) > 資料庫成(database) > ; 資料表(table) > 欄位(column) > 連接(connection) | 結果集(result)

MySQL字元集優先權


連接(connection) | 結果集(result) > 欄位(column) > 資料表(table) > 資料庫成(database) > 伺服器層(server)

char型別

char(N):N代表的是字元數(也叫字元長度)、而非bytes# char(N):是固定長存儲,佔用定長的存儲空間,不足的部分用空格填充;MySQL處理char(N)類型時,需要將空格strip掉後return。 儲存空間:char(N)類型的儲存空間和字元集有關係,結合剛才字元集的知識點,一個中文在utf8字元集中佔用3個bytes、gbk佔用2個bytes、數字和字符統一用一個字元表示。

儲存機制:在不夠N​​長度時,MySQL在儲存資料時,需要用填滿特殊的空格,而非十六進位的20


思考:

char(30 ),在不同的字元集中最多能存放多少個字母、漢字,以及佔用空間狀況

gbk: 可以存放30個位元組佔用的空間30*2utf8:可以存放30個位元組佔用的空間30*3

#########varcahr類型############varchar(N):N代表的是字元個數(也叫字元長度)、而非bytes## #varchar(N):是變長儲存,僅使用必要的儲存空間.######儲存空間:varchar(N)類型的儲存空間和字元集有關係,結合剛才字元集的知識點,一個中文在utf8字元集中佔用3個bytes、gbk統一佔用2個bytes、數字和字元一個字元表示。 ###

儲存機制:varchar(N)欄位儲存實際上是從第二個位元組開始儲存,然後用1到2個位元組表示實際長度,剩下的才是可以儲存資料的範圍,因此最大可用存儲範圍是65535-3=65532位元組;第一個位元組標識是否為空.(長度小於255位元組,使用一個位元組來表示長度;大於255位元組使用兩個位元組來表示長度)

修改資料庫實例字元集

暫時生效

mysql> set character_set = 'gbk';
mysql> set character_set_client = 'gbk';

全域生效

mysql> set global character_set_client = 'gbk';
Query OK, 0 rows affected (0.00 sec)

永遠生效

vim /etc/my.cnf 
character-set-server=utf8

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多相關教學請造訪mysql資料庫圖文教學 MySQL影片教學bootstrap影片教學

以上是MySQL字符集是什麼?字符集的相關介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器