數據類型是數據的一種屬性,它決定了數據的存儲格式、有效范圍及其它相應的限制。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