MariaDB數據類型總結

    數據類型是數據的一種屬性,它決定了數據的存儲格式、有效范圍及其它相應的限制。MariaDB的數據類型包括:字符型、整型、浮點值、日期時間型、布爾型及內建類型。

一、字符型

    1、CHAR和VARCHAR類型

        CHAR類型的長度是固定的,其取值范圍為0-255。

        VARCHAR類型的長度是可變,其取值范圍為0-65535。

        CHAR類型的長度定義了多少就會分配多少,適用于內容固定的內容;而VARCHAR類型的長度定義的是最大值,用多少分配多少,適用于內容不確定的內容。

        比如:

            CHAR(10)表示指定長度為10字節,插入值‘1’或‘1234’都會占用10個字節;

            VARCHAR(10)表示指定最大長度為10字節,而其占用的實際長度為字符串的長度加1,插入值‘1’時占用2個字節,插入值為‘1234’時占用5個字節。

    2、TEXT類型

        TEXT類型是一種特殊的字符串類型。只能用于保存諸如新聞之類的字符數據。

        TEXT類型包括TINYTEXT、TEXT、MEDIUMTEXT、LOGNTEXT。其區別如下表所示:

           類    型          長 度 范 圍          占 用 空 間
         TINYTEXT          0-255字節         值的長度+2個字節
         TEXT          0-65535字節         值的長度+2個字節
         MEDIUMTEXT          0-2^24字節         值的長度+3個字節
         LONGTEXT          0-2^32字節         值的長度+4個字節

    3、BINARY和VARBINARY類型

        這兩種數據類型都用于存放二進制數據的,二者的區別與CHAR和VARCHAR的區別相同,BINARY是定長的,取值范圍為0-255,VARBINARY是變長取值范圍為0-65535。

    4、BLOB類型

        BLOB類型是一種特殊二進制類型。用于保存數據量大的二進制數據,比如圖片等。BLOB類型包括TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。這幾種數據類型的區別與TEXT類型相似,主要是能夠保存的數據大小不同。

    對于字符類型可以使用以下修飾符進行限定:

        NULL:表示該字段可以為空值;

        NOT NULL:表示該字段不能為空值; 

    可以在插入的字符中使用通配符:

        %:匹配任意長度的任意字符;

        _:匹配任意單個字符。

二、數值型

    1、整型

        此種數據類型用于存儲整數值。其包含的類型及取值范圍如下表所示:

        類  型 占用字節數 無符號數的取值范圍 有符號數的取值范圍
TINYINT 1 0-255 -128-127
SMALLINT 2 0-65535 -32768-32767
MEDIUMINT 3 0-(2^24-1) -(2^24/2)-(2^24/2-1)
INT 4 0-(2^32-1) -(2^32/2)-(2^32/2-1)
BIGINT 8 0-(2^64-1) -(2^64/2)-(2^64/2-1)

    2、浮點型和定點型

        MariaDB中使用浮點數和定點數來表示小數。浮點弄包括單精度浮點數(FLOAT)和雙精度浮點數(DOUBLE)。定點型使用DECIMAL(m,d)表示。

        其中:FLOAT占用4字節,DOUBLE占用8字節,DECIMAL占用(m+2)個字節。

        DECIMAL(m,d)中,m表示數字的總長度,小數點不占位;d表示小數點后面的數字長度。

        例如:DECIMAL(10,5)表示數據為DECIMAL型,數據長度為10,小數點后保留5位。

        注意浮點數也可以使用(m,d)的方法來指定精度,但這不是浮點數的標準用法,不建議使用,可能會對數據庫的遷移造成影響。

    對于數值類型可以使用以下修飾符進行限定:

        UNSIGNED:表示只能插入無符號數值;

        NULL:表示該字段可以為空值;

        NOT NULL:表示該字段不能為空值;

        DEFAULT #:為該字段設置默認值;

        AUTO_INCREMENT:使該字段的數值自動增長。

三、布爾型

    MariaDB中沒有專用布爾型,可以使用BOOLENG來進行數據類型的定義,但在查詢會顯示為TINYINT(1)。

    在TINYINT(1)中‘1’表示顯示出來的位數。

四、日期時間型

    MariaDB中有多種用于表示日期和時間的數據類型。其包含的數據類型及取值范圍見下表:

     類  型     字節數                       取 值 范 圍
      DATE       4 1000/01/01-9999/12/31 
      TIME       3 -838:59:59-838:59:59
      YEAR       1 1901-2155
      DATETIME       8 1000/01/01 00:00:00-9999/12/31 23:59:59
      TIMESTAMP       4 19700101080001-20380119111407

    對于日期時間類型可以使用以下修飾符進行限定:

        NULL

        NOT NULL

        DEFAULT 'value'

五、內建類型

    1、ENUM類型

        ENUM類型稱為枚舉類型,表示僅能從給出的選項中選擇其中一個。

            例如:ENUM (‘a’, ‘b’,‘c’)表示插入的值只能在a,b,c中進行選擇,其它的值都是無效的。 

    2、SET類型

        SET類型稱為集合類型,表示能使用給出的元素組合成字符串。

            例如:SET (‘a’,’b’,’c’)表示插入的值可以是a,b,c三個字符的任意組合,即插入‘a',‘ac',‘abc'都是合法的。

 對于內建類型可以使用以下修飾符進行限定:

        NULL

        NOT NULL

        DEFAULT 'value'

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/5264

(3)
petmasterpetmaster
上一篇 2015-06-30 17:00
下一篇 2015-07-01 10:19

相關推薦

  • nginx狀態監控

    通過查看Nginx的并發連接,我們可以更清除的知道網站的負載情況。Nginx并發查看有兩種方法(之所以這么說,是因為筆者只知道兩種),一種是通過web界面,一種是通過命令,web查看要比命令查看顯示的結果精確一些。下面介紹這兩種查看方法 No1、通過瀏覽器查看 通過web界面查看時Nginx需要開啟status模塊,也就是安裝Nginx時加上 &n…

    Linux干貨 2016-10-19
  • Linux sed命令詳則

    sed命令 sed是一種流編輯器,它是文本處理中非常好的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當前的行儲存在臨時緩存區中,稱為“模式空間”(pattern space),接著用sed命令處理緩存區中的內容,處理完成后,把緩存區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。Sed…

    2017-08-11
  • shell編程——讓你又愛又恨的東西

    變量類型:      不同的數據類型在系統中所占資源不同,并且表示的范圍也不同      數值型:          短整型short:      &…

    Linux干貨 2016-08-12
  • Nginx 功能概述與基礎應用!

           本篇博客主要有三個部分組成,目的在于讓大家了解ningx的主要功用及作為web server的基礎配置;通過本篇博客能夠讓您對nginx理解更加深入,以便于更好的使用它!                  …

    2017-05-14
  • lvs三種基礎模型

    1: LVS-DR 模式(調度器與實際服務器都有一塊網卡連在同一物理網段上)簡要的網絡結構如下所示 lvs-DR模型是lvs的默認模型,也是企業中用到的最多的模型    解讀:直接路由模型,每個Real Server上都有兩個IP:VIP和RIP,但是VIP是隱藏的,就是不能提高解析等功能,只是用來做請求回復的源IP的,Director上…

    Linux干貨 2016-08-15
  • centos7源碼編譯安裝Apache2.4.25服務

    ?一、源碼包下載 ?二、安裝開發環境以及編譯環境 ?三、編譯安裝以及報錯排查 ?四、調試Apache服務 前言: 本文主要介紹了在Centos7環境中如何通過源碼編譯的方式安裝Apache服務(也就是我們的httpd服務)由于本文整理時間有限,所以難免有些紕漏之處,歡迎大家在閱讀后在評論區指出,本人看到會在第一時間修改文中錯誤的地方。 為什么要進行源碼編譯安…

    2017-04-22
欧美性久久久久