实习总结(十三)---Mysql、Sql2005中的数据类型详解及比较

       用Java语言真正开发一个功能较大、齐全、性能较好的系统,必不可少的会用到数据库,现在的数据库类型较多,因此对于开发者来说选择较多。但是这一些数据库各有特点,开发者要做一个比较和权衡。对于各种数据库的比较在这里就不再列出来了,主要是想总结一下自己比较常用的两种数据库的数据类型,并加以比较。

+===========================================================================+

一、Mysql数据类型

数据类型

描述

字节

推荐使用

SMALLINT

整数,从-32000到 +32000范围

2

存储相对比较小的整数。

比如: 年纪,数量

INT

整数,从-2000000000 到 +2000000000 范围

4

存储中等整数

例如: 距离

BIGINT

不能用SMALLINT 或 INT描述的超大整数。

8

存储超大的整数

例如: 科学/数学数据

FLOAT

单精度浮点型数据

4

存储小数数据

例如:测量,温度

DOUBLE

双精度浮点型数据

8

需要双精度存储的小数数据

例如:科学数据

DECIMAL

用户自定义精度的浮点型数据

变量;取决于精度与长度

以特别高的精度存储小数数据。

例如:货币数额,科学数据

CHAR

固定长度的字符串

特定字符串长度(高达255字符)

存储通常包含预定义字符串的变量

例如: 定期航线,国家或邮编

VARCHAR

具有最大限制的可变长度的字符串

变量; 1 + 实际字符串长度(高达 255 字符)

存储不同长度的字符串值(高达一个特定的最大限度).

例如:名字,密码,短文标签

TEXT

没有最大长度限制的可变长度的字符串

Variable; 2 +聽 actual string length

存储大型文本数据

例如: 新闻故事,产品描述

BLOB

二进制字符串

变量;2 + 实际字符串长度

存储二进制数据

例如:图片,附件,二进制文档

DATE

以 yyyy-mm-dd格式的日期

3

存储日期

例如:生日,产品满期

TIME

以 hh:mm:ss格式的时间

3

存储时间或时间间隔

例如:报警声,两时间之间的间隔,任务开始/结束时间

DATETIME

以yyyy-mm-ddhh:mm:ss格式结合日期和时间

8

存储包含日期和时间的数据

例如:提醒的人,事件

TIMESTAMP

以yyyy-mm-ddhh:mm:ss格式结合日期和时间

4

记录即时时间

例如:事件提醒器,“最后进入”的时间标记

YEAR

以 yyyy格式的年份

1

存储年份

例如:毕业年,出生年

ENUM

一组数据,用户可从中选择其中一个

1或 2个字节

存储字符属性,只能从中选择之一

例如:布尔量选择,如性别

SET

一组数据,用户可从中选择其中0,1或更多。

从1到8字节;取决于设置的大小

存储字符属性,可从中选择多个字符的联合。

例如:多选项选择,比如业余爱好和兴趣。



二、Sql2005数据类型

                                                                      数值类型

数据类型

描述

存储大小

Bit

值为1,0,null的整数数据,不包含索引

1字节

tinyInt

0-255整数数据

1字节

smallInt

-2的15次方到2的15次方的整数数据

4字节

int

-2的31次方到2的31次方的整数数据

4字节

bigint

8字节的整数数据

8字节

Binary[n]

N字节的固定长度的二进制数据,n是介于1-8000之间的一个值。当一列的数据输入差别很小时,请使用binary

N+2字节

Varbinary[n]

N字节的可变长度的二进制数据,n是介于1-8000之间的一个值。当一列的数据输入差别很大时,请使用Varbinary

N+2,可以为0

Varbinary(max

2005新类型,最大 2g,变长

N+2,可以为0

Decimal[p,[s]]

固定精度和刻度的数字。精度(p)指被保存数字的总位数,刻度(s)指定数字的小数点后面的位数。

5-17字节

Numeric[p,[s]]

Decimal的同义词

 

Real

4字节的浮点精度数字数据

4字节

Float[(n)]

-1.79e+308至-2.23e-308.0以及2.23e-308至1.79e+308

取决于n的值

Money

货币数据。8字节,精确到货币单位的万分之一。

8字节

Smallmoney

货币数据。介于-213748.3648到213748.3647

4字节

 

 

 

 

字符类型

数据类型

描述

存储大小

Char[(n)]

固定长度,非unicode字符数据,长度为n个字节。N的取值范围为1-8000

n字节

Varchar[(n)]

可变长度,非unicode字符数据。1-8000

n字节

Varchar[(max)]

可变长度,非Unicode字符数据。Max,指最大存储大小为2的31次方-1个字节。

输入的实际字节数。

Nchar[(n)]

N个字符固定长度unicode编码。N值必须指定在1-4000之间

2乘n字节+2字节

Nvarchar[(n)]

可变长度unicode字符数据。N值在1-4000之间

2乘n字节+2字节

Nvarchar[(max)]]

可变长度unicode字符数据。max值在2的31次方-1个字节

2乘n字节+2字节

Float[(n)]

-1.79e+308至-2.23e-308.0以及2.23e-308至1.79e+308

取决于n的值

Money

货币数据。8字节,精确到货币单位的万分之一。

8字节

Smallmoney

货币数据。介于-213748.3648到213748.3647

4字节

 

 

 

文本和图像类型

数据类型

描述

存储大小

text

服务器代码页中长度可变的非Unicode数据,最大长度为2的31次方-1个字符。双字符和单字符都占1。

2的31次方-1

ntext

可变长度, unicode字符数据。2的30次方-1

2的30次方-1

image

Unicode, 2的31次方-1

2的31次方-1

Nchar[(n)]

N个字符固定长度unicode编码。N值必须指定在1-4000之间

2乘n字节+2字节

 

 

 

 

日期和时间类型

数据类型

描述

存储大小

smalldatetime

1900-1-1到2079-6-6,精度为分钟

两个2字节的整数

dateteime

1753-1-1到9999-12-31,精度为1/300秒

两个4字节

timestamp

公开数据库中自动生成的一个唯一一个二进制的数据类型。通常用作给表行加班本戳的机制。一个表只能由一个该类型字段。

8字节

 

 

 

 

其他特出数据类型

数据类型

描述

存储大小

sysname

由特殊系统提供的,sqlserver用户定义的数据类型,sqlserver将sysname类型定义为nvarchar(128),可以存储128个unicode字符。

256字节

xml

2005新增类型,存储xml文件

Xml格式<2gb

Uniqueidentifie

全局唯一标识符(guid)。可以通过newid()函数产生。

16字节

Sql_variable

用于存储sqlserver2005支持的各种数据类型。除text,ntext,image,timestamp,sql_variant

最大长度可以使8016字节

Table

类似于使用临时表,此类型包括列表和数据类型,可以用于定义本地变量或用于用户定义的函数的返回值。

随着表定义的变化而变化。



三、数据类型比较

     可以看到,Sql2005数据库的数据类型比Mysql数据库的数据类型更加丰富,因此设计数据库的时候更加灵活。但是Mysql比较小,使用方便,挡在开发一个系统时,如果对数据类型要求不是很严格,并且数据库不大的时候,使用Mysql还是较为方便的。这两种数据库是我经常使用的,像Oracle这样的大型数据库虽然有着更加强大功能,但是对于一般的小项目来说是不必要的。


四、下载地址

   Mysql下载链接:

   http://xiazai.xiazaiba.com/Soft/M/MySQL_5.5.20_win32_XiaZaiBa.zip


  Sql2005下载链接

  http://xiazai.zol.com.cn/down.php?softid=274721&subcatid=550&site=10&server=10c&rand=215956


  Oraclette下载链接页面(这个页面给出了较多的下载版本,可以参考)

   http://www.blogjava.net/wangdetian168/archive/2011/03/01/oracle10g.html



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值