易截截图软件、单文件、免安装、纯绿色、仅160KB

讲解SQL Server中容易混淆的数据类型


讲解SQL Server中容易混淆的数据类型
(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)。


相关文档:

SQL语句PART11


1. My test: (create and grant the sysdba to a new user by SQL*Plus)
CREATE USER FJTEST1 IDENTIFIED BY JEANJEANFANG;
GRANT SYSDBA TO FJTEST;
REVOKE SYSDBA from FJTEST;
CONNECT FJTEST1/JEANJEANFANG AS SYSDBA;
2. Using ORAPWD in windows:
C:\» ORAPWD;
(show help information)
3. to see th ......

[SQL Server]延迟执行


WAITFOR
指定触发语句块、存储过程或事务执行的时间、时间间隔或事件。
语法
WAITFOR { DELAY 'time' | TIME
'time' }
参数
DELAY
指示 Microsoft® SQL Server™ 一直等到指定的时间过去,最长可达 24 小时。
'time'
要等待的时间。可以按 datetime 数据可接受的格式指定
time,也可以用局部变量指� ......

linq to sql生成not in语句的小技巧

以前一直觉得linq to sql生成类似where id not in (1,3,5)或where id not in (select id from ...)这样的条件不是很方便,每次我都是把条件ID事先取到一个数组里,然后用 !Arr.Contains(c.Id)这样处理,今天突然发现这样好傻,其实可以完全直接用linq写成一句,贴个示例在这里,以后备查
from a in TableA where !(fr ......

SQL Server中的通配符

通配符_
"_"号表示任意单个字符,该符号只能匹配一个字符."_"可以放在查询条件的任意位置,且只能代表一个字符.一个汉字只使用一个"_"表示.
例子:
if PATINDEX('%[吖-做]%','需要判断的字符')>0 -- 判断是否有字符
print '有汉字'
else
print '无汉字'
通配符%
"%"符号是字符匹配符,能匹配0个或更多字符的任意长� ......

SQL SERVER的ROWCOUNT关键字

 
因为仰望ORACLE,所以一直都以为SQL SERVER很笨。
据传SQL 2005有了RowID的东西,可以解决TOP排序的问题。可惜还没有机会体验。在SQL 2000中写存储过程,总会遇到需要TOP的地方,而一旦遇到TOP,因为没办法把TOP后面的数字作为变量写到预编译的语句中去,所以只能够使用构造 SQL,使用Exec来执行。不说效率的问题� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号