1,標准SQL數據類型
2,Oracle數據類型
類型 | 含義 | 存儲描述 | 備注 |
CHAR | 固定長度字符串 | 最大長度2000bytes | |
VARCHAR2 | 可變長度的字符串, | 最大長度4000bytes | 可做索引的最大長度749 |
NCHAR | 根據字符集而定的固定長度字符串 | 最大長度2000bytes | |
NVARCHAR2 | 根據字符集而定的可變長度字符串 | 最大長度4000bytes | |
DATE | 日期(日-月-年) | DD-MM-YY(HH-MI-SS),經過嚴格測試,無千蟲問題 | |
TIMESTAMP | 日期(日-月-年) | DD-MM-YY(HH-MI-SS:FF3),經過嚴格測試,無千蟲問題 | 與DATE相比較,TIMESTAMP有小數位秒信息 |
LONG | 超長字符串 | 最大長度2G,足夠存儲大部頭著作 | |
RAW | 固定長度的二進制數據 | 最大長度2000bytes | 可存放多媒體圖象聲音等 |
LONG RAW | 可變長度的二進制數據 | 最大長度2G | 可存放多媒體圖象聲音等 |
BLOB | 二進制數據 | 最大長度4G | |
CLOB | 字符數據 | 最大長度4G | |
NCLOB | 根據字符集而定的字符數據 | 最大長度4G | |
BFILE | 存放在數據庫外的二進制數據 | 最大長度4G | |
ROWID | 數據表中記錄的唯一行號 | 10bytes | ********.****.****格式,*為0或1 |
NROWID | 二進制數據表中記錄的唯一行號 | 最大長度4000bytes | |
NUMBER(P,S) | 數字類型 | P為整數位,S為小數位 | |
DECIMAL(P,S) | 數字類型 | P為整數位,S為小數位 | |
INTEGER | 整數類型 | 小的整數 | |
FLOAT | 浮點數類型 | NUMBER(38),雙精度 | |
REAL | 實數類型 | NUMBER(63),精度更 |
3,SQL Server數據類型
第一大類:整數數據
bit:bit數據類型代表0,1或NULL,就是表示true,false.占用1byte.
int:以4個字節來存儲正負數.可存儲范圍為:-2^31至2^31-1.
smallint:以2個字節來存儲正負數.存儲范圍為:-2^15至2^15-1
tinyint: 是最小的整數類型,僅用1字節,范圍:0至此^8-1
第二大類:精確數值數據
numeric:表示的數字可以達到38位,存儲數據時所用的字節數目會隨着使用權用位數的多少變化.
decimal:和numeric差不多
第三大類:近似浮點數值數據
float:用8個字節來存儲數據.最多可為53位.范圍為:-1.79E+308至1.79E+308.
real:位數為24,用4個字節,數字范圍:-3.04E+38至3.04E+38
第四大類:日期時間數據
datatime:表示時間范圍可以表示從1753/1/1至9999/12/31,時間可以表示到3.33/1000秒.使用8個字節.
smalldatetime:表示時間范圍可以表示從1900/1/1至2079/12/31.使用4個字節.
第五大類:字符串數據
char:長度是設定的,最短為1字節,最長為8000個字節.不足的長度會用空白補上.
varchar:長度也是設定的,最短為1字節,最長為8000個字節,尾部的空白會去掉.
text:長寬也是設定的,最長可以存放2G的數據.
第六大類:Unincode字符串數據
nchar:長度是設定的,最短為1字節,最長為4000個字節.不足的長度會用空白補上.儲存一個字符需要2個字節.
nvarchar:長度是設定的,最短為1字節,最長為4000個字節.尾部的空白會去掉.儲存一個字符需要2個字節.
ntext:長度是設定的,最短為1字節,最長為2G.尾部的空白會去掉,儲存一個字符需要2個字節.
第七大類:貨幣數據類型
money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8 個字節.
smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個字節.
第八大類:標記數據
timestamp:該數據類型在每一個表中是唯一的!當表中的一個記錄更改時,該記錄的timestamp字段會自動更新.
uniqueidentifier:用於識別數據庫里面許多個表的唯一一個記錄.
第九大類:二進制碼字符串數據
binary:固定長度的二進制碼字符串字段,最短為1,最長為8000.
varbinary:與binary差異為數據尾部是00時,varbinary會將其去掉
image:為可變長度的二進制碼字符串,最長2G.
4,MySQL數據類型
1、整型
MySQL數據類型 | 含義(有符號) |
tinyint(m) | 1個字節 范圍(-128~127) |
smallint(m) | 2個字節 范圍(-32768~32767) |
mediumint(m) | 3個字節 范圍(-8388608~8388607) |
int(m) | 4個字節 范圍(-2147483648~2147483647) |
bigint(m) | 8個字節 范圍(+-9.22*10的18次方) |
(MySQL可以為整型類型指定寬度,例如Int(11),對絕大多數應用這是沒有意義的:它不會限制值的合法范圍,只是規定了MySQL的一些交互工具(例如MySQL命令行客戶端)用來顯示字符的個數。對於存儲和計算來說,Int(1)和Int(20)是相同的。)
2、浮點型(float和double)
MySQL數據類型 | 含義 |
float(m,d) | 單精度浮點型 8位精度(4字節) m總個數,d小數位 |
double(m,d) | 雙精度浮點型 16位精度(8字節) m總個數,d小數位 |
設一個字段定義為float(5,3),如果插入一個數123.45678,實際數據庫里存的是123.457,但總個數還以實際為准,即6位。
3、定點數
MySQL5.0和更高版本將數字打包保存到一個二進制字符串中(每4個直接存9個數字)。例如,decimal(18,9)小數點兩邊將各存儲9個數字,一共使用9個字節:小數點前的數字用4個字節,小數點后的數字用4個字節,小數點本身占1個字節。
浮點類型在存儲同樣范圍的值時,通常比decimal使用更少的空間。float使用4個字節存儲。double占用8個字節。
因為需要額外的空間和計算開銷,所以應該盡量只在對小數進行精確計算時才使用decimal——例如存儲財務數據。但在數據量比較大的時候,可以考慮使用bigint代替decimal。
4、字符串(char,varchar,_text)
MySQL數據類型 | 含義 |
char(n) | 固定長度,最多255個字符 |
varchar(n) | 固定長度,最多65535個字符 |
tinytext | 可變長度,最多255個字符 |
text | 可變長度,最多65535個字符 |
mediumtext | 可變長度,最多2的24次方-1個字符 |
longtext | 可變長度,最多2的32次方-1個字符 |
5.二進制數據(_Blob)
6.日期時間類型
MySQL數據類型 | 含義 |
date | 日期 '2008-12-2' |
time | 時間 '12:25:36' |
datetime | 日期時間 '2008-12-2 22:06:44' |
timestamp | 自動存儲記錄修改時間 |
若定義一個字段為timestamp,這個字段里的時間數據會隨其他字段修改的時候自動刷新,所以這個數據類型的字段可以存放這條記錄最后被修改的時間。