最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別

 更新時間:2015年09月02日 11:07:46   投稿:hebedich  
char是一種固定長度的類型,varchar則是一種可變長度的類型,那么他們具體使用過程中有什么區(qū)別嗎

區(qū)別

CHAR與VARCHAR類型類似,但它們保存和檢索的方式不同。CHAR有固定的長度,而VARCHAR屬于可變長的字符類型。它們最大長度和是否尾部空格被保留等方面也不同。在存儲和檢索過程中不進行大小寫轉(zhuǎn)換。

下面的表格顯示了將各種字符串值保存到CHAR(4)和VARCHAR(4)列后的結(jié)果,說明了CHAR和VARCHAR之間的差別:

值 CHAR(4) 存儲需求 VARCHAR(4) 存儲需求
'' ' ' 4個字節(jié) '' 1個字節(jié)
'ab' 'ab ' 4個字節(jié) 'ab' 3個字節(jié)
'abcd' 'abcd' 4個字節(jié) 'abcd' 5個字節(jié)
'abcdefgh' 'abcd' 4個字節(jié) 'abcd' 5個字節(jié)

從上面可以看得出來CHAR的長度是固定的,不管你存儲的數(shù)據(jù)是多少他都會都固定的長度。而VARCHAR則處可變長度但他要在總長度上加1字節(jié),這個用來存儲字符長度(如果聲明的長度超過255,則使用2個字節(jié))。所以實際應(yīng)用中用戶可以根據(jù)自己的數(shù)據(jù)類型來做。

請注意,上表中最后一行的值只適用不使用嚴(yán)格模式時;如果MySQL運行在嚴(yán)格模式,超過列長度的值不被保存,并且會出現(xiàn)錯誤。

從CHAR(4)和VARCHAR(4)列檢索的值并不總是相同,因為檢索時從CHAR列刪除了尾部的空格。通過下面的例子說明差別:

mysql> CREATE TABLE test(a VARCHAR(4), b CHAR(4));

mysql> INSERT INTO test VALUES ('ab ', 'ab ');

mysql> SELECT CONCAT(a, '+'), CONCAT(b, '+') FROM test;

結(jié)果如下:

CONCAT(a, '+') CONCAT(b, '+')
ab + ab+

從上面可以看出來,由于某種原因CHAR有固定長度,所以在處理速度上要比VARCHAR快很多,但是相對浪費存儲空間,所以對存儲不大,但在速度上有要求的可以使用CHAR類型,反之可以用VARCHAR類型來實現(xiàn)。

建議

MyISAM存儲引擎 建議使用固定長度,數(shù)據(jù)列代替可變長度的數(shù)據(jù)列
INNODB 存儲引擎 建議使用VARCHAR類型

總結(jié)分析:

文字字段若長度固定,如:身分證號碼,就不要用 varchar 或 nvarchar,應(yīng)該用 char 或 nchar。
支持多語言的站點應(yīng)考慮使用 Unicode nchar 或 nvarchar 數(shù)據(jù)類型以盡量減少字符轉(zhuǎn)換問題
文字字段若長度不固定,如:地址,則該用 varchar 或 nvarchar。除了可節(jié)省存儲空間外,存取硬盤時也會較有效率

相關(guān)文章

  • mysql安裝忘記初始密碼簡單有效的解決方法

    mysql安裝忘記初始密碼簡單有效的解決方法

    在本篇文章里小編給大家整理的是一篇關(guān)于mysql安裝忘記初始密碼簡單有效的解決方法,有需要的朋友們參考學(xué)習(xí)下。
    2020-01-01
  • sql server自動編號的三種方法

    sql server自動編號的三種方法

    自增列是最簡單和常見的方法,適用于大多數(shù)情況,本文介紹了SQL Server中三種常見的自動編號方法:自增列、序列和觸發(fā)器,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • MySQL之Explain詳解

    MySQL之Explain詳解

    使用Explain關(guān)鍵字可以模擬優(yōu)化器執(zhí)行SQL語句,分析你的查詢語句或是結(jié)構(gòu)的性能瓶頸,感興趣的的同學(xué)可以參考閱讀
    2023-04-04
  • mysql刪除重復(fù)記錄并且只保留一條的實現(xiàn)方法

    mysql刪除重復(fù)記錄并且只保留一條的實現(xiàn)方法

    本文主要介紹了mysql刪除重復(fù)記錄并且只保留一條的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • MySQL安裝出現(xiàn)starting the server報錯的解決方案

    MySQL安裝出現(xiàn)starting the server報錯的解決方案

    如果電腦是第一次安裝MySQL,一般不會出現(xiàn)這樣的報錯,如下圖所示,本文主要介紹了MySQL安裝出現(xiàn)starting the server報錯的解決方案,感興趣的可以了解一下
    2024-07-07
  • MySQL復(fù)合查詢和內(nèi)外連接的操作代碼

    MySQL復(fù)合查詢和內(nèi)外連接的操作代碼

    實際開發(fā)中往往數(shù)據(jù)來自不同的表,所以需要多表查詢,但是可以將多張表做笛卡爾積后的表當(dāng)做是一張表,也就是單表查詢,這篇文章主要介紹了MySQL復(fù)合查詢和內(nèi)外連接,需要的朋友可以參考下
    2022-09-09
  • 增刪改查sql語法基礎(chǔ)教程

    增刪改查sql語法基礎(chǔ)教程

    為了準(zhǔn)備面試,整理了一些SQL基本語句和自己的理解,作為備份,下面這篇文章主要給大家介紹了關(guān)于增刪改查sql語法基礎(chǔ)教程的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Mysql TIMESTAMPDIFF函數(shù)示例詳解

    Mysql TIMESTAMPDIFF函數(shù)示例詳解

    這篇文章主要介紹了Mysql TIMESTAMPDIFF函數(shù)示例詳解,TIMESTAMPDIFF函數(shù)返回datetime_expr2 - datetime_expr1的結(jié)果,其中datetime_expr1和datetime_expr2可以是DATE或DATETIME類型值,本文給大家詳細(xì)講解,需要的朋友可以參考下
    2023-03-03
  • 結(jié)合PHP腳本添加和查詢MySQL數(shù)據(jù)的基本教程

    結(jié)合PHP腳本添加和查詢MySQL數(shù)據(jù)的基本教程

    這篇文章主要介紹了結(jié)合PHP腳本添加和查詢MySQL數(shù)據(jù)的基本教程,即在PHP程序中使用基本的SELECT FROM和INSERT INTO語句,需要的朋友可以參考下
    2015-12-12
  • MySQL查詢中LIMIT的大offset導(dǎo)致性能低下淺析

    MySQL查詢中LIMIT的大offset導(dǎo)致性能低下淺析

    這篇文章主要給大家介紹了關(guān)于MySQL查詢中LIMIT的大offset導(dǎo)致性能低下的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12

最新評論

曲周县| 万山特区| 邓州市| 垦利县| 界首市| 应城市| 互助| 仙居县| 曲阜市| 壶关县| 灵寿县| 延寿县| 丰宁| 壶关县| 延寿县| 西乡县| 通化市| 遵义县| 建宁县| 长武县| 五峰| 潜山县| 合作市| 邓州市| 环江| 绍兴市| 黎川县| 贺州市| 仲巴县| 三都| 汤阴县| 理塘县| 米泉市| 太原市| 库尔勒市| 凤台县| 分宜县| 外汇| 清丰县| 乌审旗| 石河子市|