數(shù)據(jù)類型定義列中存放的值的種類。


SQL 通用數(shù)據(jù)類型

數(shù)據(jù)庫表中的每個列都要求有名稱和數(shù)據(jù)類型。Each column in a database table is required to have a name and a data type.

SQL 開發(fā)人員必須在創(chuàng)建 SQL 表時決定表中的每個列將要存儲的數(shù)據(jù)的類型。數(shù)據(jù)類型是一個標(biāo)簽,是便于 SQL 了解每個列期望存儲什么類型的數(shù)據(jù)的指南,它也標(biāo)識了 SQL 如何與存儲的數(shù)據(jù)進行交互。

下面的表格列出了 SQL 中通用的數(shù)據(jù)類型:

數(shù)據(jù)類型描述
CHARACTER(n)字符/字符串。固定長度 n。
VARCHAR(n) 或
CHARACTER VARYING(n)
字符/字符串??勺冮L度。最大長度 n。
BINARY(n)二進制串。固定長度 n。
BOOLEAN存儲 TRUE 或 FALSE 值
VARBINARY(n) 或
BINARY VARYING(n)
二進制串。可變長度。最大長度 n。
INTEGER(p)整數(shù)值(沒有小數(shù)點)。精度 p。
SMALLINT整數(shù)值(沒有小數(shù)點)。精度 5。
INTEGER整數(shù)值(沒有小數(shù)點)。精度 10。
BIGINT整數(shù)值(沒有小數(shù)點)。精度 19。
DECIMAL(p,s)精確數(shù)值,精度 p,小數(shù)點后位數(shù) s。例如:decimal(5,2) 是一個小數(shù)點前有 3 位數(shù)小數(shù)點后有 2 位數(shù)的數(shù)字。
NUMERIC(p,s)精確數(shù)值,精度 p,小數(shù)點后位數(shù) s。(與 DECIMAL 相同)
FLOAT(p)近似數(shù)值,尾數(shù)精度 p。一個采用以 10 為基數(shù)的指數(shù)計數(shù)法的浮點數(shù)。該類型的 size 參數(shù)由一個指定最小精度的單一數(shù)字組成。
REAL近似數(shù)值,尾數(shù)精度 7。
FLOAT近似數(shù)值,尾數(shù)精度 16。
DOUBLE PRECISION近似數(shù)值,尾數(shù)精度 16。
DATE存儲年、月、日的值。
TIME存儲小時、分、秒的值。
TIMESTAMP存儲年、月、日、小時、分、秒的值。
INTERVAL由一些整數(shù)字段組成,代表一段時間,取決于區(qū)間的類型。
ARRAY元素的固定長度的有序集合
MULTISET元素的可變長度的無序集合
XML存儲 XML 數(shù)據(jù)


SQL 數(shù)據(jù)類型快速參考手冊

然而,不同的數(shù)據(jù)庫對數(shù)據(jù)類型定義提供不同的選擇。

下面的表格顯示了各種不同的數(shù)據(jù)庫平臺上一些數(shù)據(jù)類型的通用名稱:

數(shù)據(jù)類型AccessSQLServerOracleMySQLPostgreSQL
booleanYes/NoBitByteN/ABoolean
integerNumber (integer)IntNumberInt
Integer
Int
Integer
floatNumber (single)Float
Real
NumberFloatNumeric
currencyCurrencyMoneyN/AN/AMoney
string (fixed)N/ACharCharCharChar
string (variable)Text (<256)
Memo (65k+)
VarcharVarchar
Varchar2
VarcharVarchar
binary objectOLE Object MemoBinary (fixed up to 8K)
Varbinary (<8K)
Image (<2GB)
Long
Raw
Blob
Text
Binary
Varbinary

lamp

注釋:在不同的數(shù)據(jù)庫中,同一種數(shù)據(jù)類型可能有不同的名稱。即使名稱相同,尺寸和其他細(xì)節(jié)也可能不同!請總是檢查文檔!