標籤:
1、數值類資料列類型
資料列類型 |
儲存空間 |
說明 |
取值範圍 |
TINYINT |
1位元組 |
非常小的整數 |
帶符號值:-128~127 無符號值:0~255 |
SMALLINT |
2位元組 |
較小的整數 |
帶符號值:-32768~32767 無符號值:0~65535 |
MEDIUMINT |
3位元組 |
中等大小的整數 |
帶符號值:-8388608~8388607 無符號值:0~16777215 |
INT |
4位元組 |
標準整數 |
帶符號值:-2147483648~2147483647 無符號值:0~4294967295 |
BIGINT |
8位元組 |
大整數 |
帶符號值:-263~263-1 無符號值:0~264-1 |
FLOAT |
4或8位元組 |
單精確度浮點數 |
最小非零值:+- 1.175494351E-38 最大非零值:+- 3.402823466E+38 |
資料列類型 |
儲存空間 |
說明 |
取值範圍 |
DOUBLE |
8位元組 |
雙精確度浮點數 |
最小非零值:+- 2.225073E-308 最大非零值:+- 1.797693E+308 |
DECIMAL |
自訂 |
以字串形式表示的浮點數 |
取決於儲存單元位元組數 |
整型注意事項:
INT(3)、SMALLINT(3)等整型後面的數字不會影響數值的儲存範圍,只會影響顯示 整型後面的數字只有配合零填充的時候才有實際意義。 整型後面的數字可以省略 浮點型注意事項: 浮點型後面的數字會將存入的數字四捨五入,例如:把一個1.234存入FLOAT(6,1)資料列中,結果是1.2,6代表顯示長度,1代表小數位長度,會四捨五入。2、字串類資料列類型
資料列類型 |
儲存空間 |
說明 |
取值範圍 |
CHAR[(M)] |
M位元組 |
定長字串 |
M位元組 |
VARCHAR[(M)] |
L+1位元組 |
可變字串 |
M位元組 |
TINYBLOB,TINYTEXT |
L+1位元組 |
非常小的BLOB(二進位大對象)和文本串 |
28-1位元組 |
BLOB,TEXT |
L+2位元組 |
小BLOB和文本串 |
216-1位元組 |
MEDIUMBLOB, MEDIUMTEXT |
L+3位元組 |
中等的BLOB和文本串 |
224-1位元組 |
LONGBLOB, LONGTEXT |
L+4位元組 |
大BLOB和文本串 |
232-1位元組 |
ENUM(‘value1’,’value2’…) |
1或2位元組 |
枚舉:可賦予某個枚舉成員 |
65535個成員 |
SET(‘value1’,‘value2’…) |
1,2,3,4或8位元組 |
集合:可賦予多個集合成員 |
64個成員 |
字串類型注意事項: CHAR和VARCHAR類型的長度範圍都在0~255之間 在使用CHAR和VARCHAR類型時,當我們傳入的實際的值的長度大於指定的長度,字串會被截取至指定長度 在使用CHAR類型時,如果我們傳入的值的長度小於指定長度,實際長度會使用空格補至指定長度 在使用VARCHAR類型時,如果我們傳入的值的長度小於指定長度,實際長度即為傳入字串的長度,不會使用空格填補 CHAR要比VARCHAR效率更高,當佔用空間較大 BLOB和TEXT類型是可以存放任意大資料的資料類型 BLOB區分大小寫,TEXT不區分大小寫 ENUM和SET類型是特殊的的串類型,其列值必須從固定的串集中選擇 ENUM只能選擇其中一個值,SET可以選擇多個值3、日期和時間類資料列類型
資料列類型 |
儲存空間 |
說明 |
取值範圍 |
DATE |
3 位元組 |
“YYYY-MM-DD”格式表示的日期值 |
1000-01-01~9999-12-31 |
TIME |
3 位元組 |
“hh:mm:ss”格式表示的時間值 |
-838:59:59-838:59:59 |
DATETIME |
8 位元組 |
“YYYY-MM-DD hh:mm:ss”格式 |
1000-01-01 00:00:00~9999-12-31 |
TIMESTAMP |
4 位元組 |
“YYYYMMDDhhmmss”格式表示的時間戳記 |
19700101000000-2037年的某個時刻 |
YEAR |
1 位元組 |
“YYYY”格式的年份值 |
1901~2155 |
日期類型注意事項: 儲存日期時,我們可以使用整型來進行儲存時間戳記,這樣做便於我們進行日期的計算4、NULL值 NULL值注意事項: NULL意味著“沒有值”或“未知值” 可以測試某個值是否為NULL 不能對NULL值進行算術計算 對NULL值進行算術運算,其結果還是NULL 0或NULL都意味著假,其餘值都意味著真5、類型轉換
在MySQL的運算式中,如果某個資料值的類型與上下文所要求的類型不相符,MySQL則會根據將要進行的操作自動地對資料值進行類型轉換。如:
1+’2’ #會自動轉換成1+2=3
1+’abc’ #會自動轉換成1+0=1
6、資料欄位屬性
UNSIGNED 只能用於設定數實值型別,不允許出現負數 最大儲存長度會增加一倍 ZEROFILL 只能用於設定數實值型別,在數值之前會自動用0補齊不足的位元 AUTO_INCREMENT 用於設定欄位的自動成長屬性,每增加一條記錄,該欄位的值會自動加1 NULL和NOT NULL 預設為NULL,即插入值時沒有在此欄位插入值,預設為NULL值,如果指定了NOT NULL,則必須在插入值時在此欄位填入值 DEFAULT 可以通過此屬性來指定一個預設值,如果沒有在此列添加值,那麼預設添加此值
MySQL資料表設計