MYSQL的資料型態
-
數字型態 :與一般表示法相同、科學記號5.3e+5、16進位oxff表示255
-
字串型態:以''、""標注。如'123456'或"123456"
在字符串內,某個順序有特殊的意義。這些順序的每一個以一條反斜線(“\”)開始,稱為轉義字符。
MySQL識別下列轉義字符:-
\0 一個ASCII 0 (NUL)字符。
-
\n 一個新行符。 \t 一個定位符。
-
\r 一個回車符。 \b 一個退格符。
-
\' 一個單引號(“'”)符。
-
\" 一個雙引號(“"”)符。
-
\\ 一個反斜線(“\”)符。
-
-
NULL值意味著“無數據”或"未知值"並且不同於例如數字類型的0為或字符串類型的空字符串""
MYSQL的欄位型態(請自行參考研習用書p18-9)
數值型態:
列類型 | 需要的儲存量 |
TINYINT | 1 字元 |
SMALLINT | 2 個字元 |
MEDIUMINT | 3 個字元 |
INT | 4 個字元 |
INTEGER | 4 個字元 |
BIGINT | 8 個字元 |
FLOAT(X) | 4 如果 X < = 24 或 8 如果 25 < = X < = 53 |
FLOAT | 4 個字元 |
DOUBLE | 8 個字元 |
DOUBLE PRECISION | 8 個字元 |
REAL | 8 個字元 |
DECIMAL(M,D) | M 字元(D +2 , 如果M <>) |
NUMERIC(M,D) | M 字元(D +2 , 如果M <>) |
如
INT列的範圍是-2147483648到2147483647
INT UNSIGNED,的範圍是0和4294967295
日期型態:
型 態 | 需要的儲存量 | 預設格式 | 支援的範圍 |
DATE | 3 個字元 | 'YYYY-MM-DD' | '1000-01-01 00:00:00'到'9999-12-31 23:59:59' |
DATETIME | 8 個字元 | 'YYYY-MM-DD HH:MM:SS' | '1000-01-01'到'9999-12-31' |
TIMESTAMP | 4 個字元 | 'YYYYMMDDHHMMSS' | |
TIME | 3 個字元 | 'HH:MM:SS' | '-838:59:59'到'838:59:59' |
YEAR | 1 字元 | 'YYYY' | '1901'到'2155' |
-
除預設格式以外,還有其他表達格式如:DATE("YY-MM-DD")、DATE("YYYY/MM/DD")
-
如果以二位表示年份需注意
-
在範圍00-69的年值被變換到2000-2069。
-
在範圍70-99的年值被變換到1970-1999。
-
-
TIMESTAMP
類型 | 顯示格式 |
TIMESTAMP(14) | YYYYMMDDHHMMSS |
TIMESTAMP(12) | YYMMDDHHMMSS |
TIMESTAMP(10) | YYMMDDHHMM |
TIMESTAMP(8) | YYYYMMDD |
TIMESTAMP(6) | YYMMDD |
TIMESTAMP(4) | YYMM |
TIMESTAMP(2) | YY |
註:不合法DATETIME, DATE或TIMESTAMP值被變換到適當類型的“零”值('0000-00-00 00:00:00', '0000-00-00'或00000000000000)。
字串型態:
型 態 | 需要的儲存量 |
CHAR(M) | M 字元,1 <= M <= 255 |
VARCHAR(M) | L +1 字元, 在此L <= M 和1 <= M <= 255 |
TINYBLOB , TINYTEXT | L +1 字元, 在此L <> |
BLOB , TEXT | L +2 字元, 在此L <> |
MEDIUMBLOB , MEDIUMTEXT | L +3 字元, 在此L <> |
LONGBLOB , LONGTEXT | L +4 字元, 在此L <> |
ENUM('value1','value2',...) | 1 或 2 個字元, 取決於枚舉值的數目(最大值65535) |
SET('value1','value2',...) | 1,2,3,4或8個字元, 取決於集合成員的數量(最多64個成員) |
-
VARCHAR和BLOB和TEXT類型是變長類型,對於其儲存需求取決於列值的實際長度
-
CHAR和VARVHAR的差異
值 | CHAR(4) | 儲存需求 | VARCHAR(4) | 儲存需求 |
'' | ' ' | 4 個字元 | '' | 1 字元 |
'ab' | 'ab ' | 4 個字元 | 'ab' | 3 個字元 |
'abcd' | 'abcd' | 4 個字元 | 'abcd' | 5 個字元 |
'abcdefgh' | 'abcd' | 4 個字元 | 'abcd' | 5 個字元 |
註:CHAR不足的部分會在其後補足空白字元 ,varchar 是變長類型,有些情形較節省空間但執行負擔較char為大
沒有留言:
張貼留言