2007年4月23日 星期一

MYSQL的資料型態

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 <= M1 <= 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為大

【下列文章您可能也有興趣】

沒有留言: