当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server中易混淆的数据类型

MSSQL
SQL Server--全文本检索的应用(一)
SQL 2005的SSIS与Oracle的迁移性能
SQL优化实例:从运行30分钟到运行只要30秒
无法在SQL Server2005 Manger Studio 中录入中文的问题
SQL Artisan多表查询和统计
SQL Server数据库开发人员在应聘时经常被问到哪些问题
一个完整的SQL SERVER数据库全文索引的示例
SQL Server安全之加密术和SQL注入攻击
如何对SQL Server中的tempdb“减肥”
SQL Server 2005升级的十个步骤
如何在SQL Server开发中融入极限编程技术
SQL Server应用程序高级SQL注入(下)
SQL Server应用程序高级SQL注入(上)
SQL Server连接中的常见错误
IIS中SQL Server数据库的安全问题
SQL Server 2005区域配置和安全工具
保护 SQL Server 的十个步骤
如何利用SQL Server 2000的复制选项
SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
SQL SERVER 2005同步复制技术的应用

MSSQL 中的 SQL Server中易混淆的数据类型


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 243 ::
收藏到网摘: n/a

(1)char、varchar、text和nchar、nvarchar、ntext

  char和varchar的长度都在1到8000之间,它们的区别在于:

  char:是定长字符数据,,速度快。

  varchar:是变长字符数据,节省储存空间,但是存取速度慢。

  所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。

  text:存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

  后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

  (2)datetime和smalldatetime

  datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。

  smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

  (3)bitint、int、smallint、tinyint和bit

  bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。

  int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。

  smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。

  tinyint:从0到255的整数数据。

  bit:1或0的整数数据。

  (4)decimal和numeric

  这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。

  (5)float和real

  float:从-1.79^308到1.79^308之间的浮点数字数据。

  real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。