sql server 、oracle和mysql 三大数据库数据类型的比较
各大数据的数据库类型:
? Sql server 2008 的数据类型:type
??
数据库各个版本都一样
为对象分配数据类型时可以为对象定义四个属性:
???????? 对象包含的数据种类。
???????? 所存储值的长度或大小。
???????? 数值的精度(仅适用于数字数据类型)。
???????? 数值的小数位数(仅适用于数字数据类型)。
用户可以自定义类型,需要定义三个属性,自定义的类型名、基于那种数据类型,可否为空。
sp_add type ,[,system_data_bype][,'null_type']
type为自定义类型名,system_data_type系统提供的类型,null_type可否为空
关键字:
Stored Procedures、Tables、Columns、Views、Rules、Constraints、Defaults、Indexes、Filegroups、Triggers、Databases、Servers、User Defined Functions、Logins、Roles、UDF、Full-text catalogs、Files、User Defined Types
命名规则,
1 以任意字母开始,除开头以字母开始外,其他字符可以任意使用;
2 正常对象的名称可多达128字符,而临时对象的名称可多达116字符。
3 与SQLSERVER关键字相同或包含内嵌空格的名称必须使用双引号或方括号。
<!--朱利添加版权信息-->Oracle数据库类型:
?
数据类型
所属类型
所占字节
范围
CHAR
字符串类型
CHAR(n)?n个字节 存储固定长度的子字符串,如果没有明确说明长度,默认长度为1,如果长度不足规定长度,Oracle自动用空格填充
1—2000
VARCHAR2
字符串类型
可变长字符串类型。 VARCHAR2(n) n 如果最大长度不是n,不需要空格填充,推荐使用VARCHAR2
1—4000
NCHAR
字符串类型
?
?
NVARCHAR2
字符串类型
?
?
NUMBER
数字类型
?
?
DATE
?
?
?
LONG
?
存储最大长度为2GB的变长的变长字符串
2GB
RAW
?
用来存储非结构化数据的变长字符串
长度<= 2000字节
LONG RAW
?
用来存储非结构化数据的变长字符串
长度<=2GB
ROWID
伪列
?
?
BLOB
大型对象数据类型
存储二进制数据信息
?
CLOB
大型对象数据类型
只能存储字符数据
?
NCLOB
大型对象数据类型
存储本地语言字符集数据
?
BFILE
大型对象数据类型
存储在Oracle数据库以外的文件的指针
?
UROWID
?
用来存储表示任何类型列地址的二进制字符串
?
FLOAT
???Mysql的数据类型:
??
数据类型
所属类型
所占字节
范围
SMALLINT
数字类型(整数)
2
-32000——32000
INT
数字类型(整数)
4
-2000000000——2000000000
BIGINT
数字类型(整数)
8
不能用smallint或int描述的超大整数
FLOAT
数字类型(单精度浮点)
4
单精度浮点数
DOUBLE
数字类型(双节点浮点)
8
双精度浮点数
DECIMAL
数字类型(用户定义精度的浮点数据)
字节数取决于精度与长度
?
CHAR
字符串
Char(n)与n字节
?
VARCHAR
字符串
Varchar(n)占n+1个字节
?
TEXT
字符串
2+ 实际长度
没有最大长度限制的可变长度的字符串
BLOB
二进制字符串
变长 2+实际字符串长度
存储图片、附件、二进制文件
DATE
时间类型
3
存储日期yyyy-mm-dd
TIME
时间类型
3
存储时间或时间间隔
DATETIME
时间类型
8
存储包含日期和时间的数据
TIMESTAMP
时间类型(时间戳)
4
?
YEAR
时间类型
1
YYYY格式的年份
ENUM
?
1或2
一组数据,用户可以从中选择一个
SET
?
1—8取决于设置的大小
一组数据,用户可从中选择0,1或跟多
三中数据库,都有自己的类型,所以在处理时,需要做相关的映射!?