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
下一篇 2015-07-01

相關推薦

  • linux權限管理

    linux文件權限    文件的屬性和權限的設置對于linux系統來說是相當重要的,如果對這一塊的知識沒有一個深入的了解,你的系統就有可能有很大的危險。那么首先我們來看一看文件的屬性所對應的都是什么意思吧。 上圖第一個字符是d,他代表了文件的類型,d的意思就是目錄文件,那么除了目錄文件還有什么文件呢?    …

    Linux干貨 2016-08-04
  • linux軟鏈接與硬鏈接的區別

    硬鏈接:相于當給文件增加了一個新名 在添加鏈接時會增加鏈接數,其inode結點數不會增加 支持絕對路徑與相對路徑 硬鏈接不能對目錄來創建 不能跨分區來創建鏈接 硬鏈接鏈接到文件被刪除時,依舊可以通過鏈接文件來訪問被刪文件的數據 軟鏈接:可以支持對目錄來創建鏈接 (注,當你用rm -rf 刪除目錄的時候,目錄不會刪除,但目錄中的內容會被刪除,并且會刪除源文件)…

    Linux干貨 2013-07-15
  • 正則

    Edit 正則 概述: 正則表達式,Regular Expression,縮寫regex、regexp、RE 正則表達式是文本處理極為重要的技術,用它可以對字符串按照某種規則進行檢索、替換 1970年,Unix之父ken Thompson將正則表達式引入到Unix中文本編輯器ed和grep命令中,由此正則表達式普及開來 1980年后,perl語言對Henry…

    Linux干貨 2017-11-06
  • shell腳本1

    shell腳本基礎 shell腳本: 包含一些命令或聲明,并符合一定格式的文本文件 格式要求:首行shebang機制 #!/bin/bash #!/usr/bin/python #!/usr/bin/perl shell腳本的用途有: 自動化常用命令 執行系統管理和故障排除 創建簡單的應用程序 處理文本或文件 創建shell腳本 第一步:使用文本編輯器來創建…

    2017-08-05
  • 計算機的組成以及OS的發展歷程

        根據馮諾依曼提出的體系架構,計算機基本上可以分為五大部件。這五大部件分別為運算器,控制器,內存,輸入設備與輸出設備,其中運算器與控制器是CPU的重要組成部分。下面分別介紹這5大部件:     CPU:運算器、控制器、寄存器、緩存      &…

    Linux干貨 2016-10-30
  • 第三周作業

    1、列出1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。[root@localhost ~]# who | cut -d ‘ ‘ -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。[root@localhost ~]# who | tail -1 | export &am…

    Linux干貨 2017-12-16
欧美性久久久久