標籤雲

搜尋此網誌

2008/03/07

SQL資料類型

建立欄位:
欄位名 欄位類型 [屬性]
例:
username VARCHAR(30) NOT NULL
user_id INTEGER AUTO_INCREMENT

常用 SQL 資料類型:
SMALLINT -- 16 位元整數
INT -- 4 位元整數, -2147483648 ~ 2147483647
BIGINT -- 8 位元整數, -9223372036854775808 ~9223372036854775807
FLOAT -- 4 位元浮點數, 精度低到 6 位, 範圍介於 1x10 的正負 37 次方
DOUBLE PRECISION-- 8 位元浮點數, 精度低到 15 位, 範圍介於 1x10 的 -307 次方~ 1x10 的 308 次方
REAL -- 在 MySQL 中為 FLOAT 的別名
NUMERIC(p,d) -- 10進位數字, 指定精度 p 與小數位數 d (皆為正整數), 非近似值, 效能不佳
DECIMAL(p,d) -- 10進位數字, 指定精度 p 與小數位數 d (皆為正整數), 非近似值, 效能極差

SQL 日期時間類型:
DATE -- 日期
TIME -- 時間
TIMESTAMP -- 日期時間 (MySQL 為 DATETIME )

常用字元 SQL 資料類型:
CHAR(n) -- 固定長度字串, 一般狀況下最大允許值為 255
VARCHAR(n) -- 可變長度字串, 一般最大允許值為 255
TEXT -- 非 ANSI SQL 標準, 用來儲存大量文字資料
NCHAR(n) -- CHAR(n)的變體, 對於不能指定整個資料庫或表的"預設字元集"的 server, 用於輸入 unicode 字元
NVARCHAR(n) -- VARCHAR(n)的變體, 對於不能指定整個資料庫或表的"預設字元集"的 server, 用於輸入 unicode 字元

常用二進位 SQL 資料類型:
BLOB -- MySQL, Oracle 使用 -- MySQL中最大可到 216 bytes, 更大檔案可用 MEDIUMBLOB( 2 的 24次方 bytes) 和 LONGBLOB( 2 的 32次方 bytes); Oracle 的 BLOB 則可到 4GB
image -- MS SQL server 使用 -- 最大 2GB
bytea -- PostgreSQL 使用

欄位屬性:
NOT NULL -- 不允許為空
DEFAULT value -- 給定預設值
AUTO_INCREMENT -- 自動遞增
PRIMARY KEY -- 主鍵
UNIQUE -- 唯一值

沒有留言: