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


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

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

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

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

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