易截截图软件、单文件、免安装、纯绿色、仅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语句PART9

Group functions
SELECT [column,] group_function(column) ... from table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column];
e.g.:
SELECT department_id, job_id, SUM(salary), COUNT(employee_id) from employees GROUP BY department_id, job_id ;
SELECT [column,] group_function(column).. ......

SQL语句PART10

oracle tips
Exist的用法:
select gw.ndocid from 
(select ndocid from wf_doc_gw_shouwen union select ndocid from wf_doc_gw_fawen) gw
where
not exists (select null from wf_doc_gw_sn sn where sn.ndocid=gw.ndocid)
2。把GW表和SN表里相同的NDOCID显示出来
select gw.ndocid from 
(se ......

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 修改列名及表名

代码如下:
EXEC sp_rename '表名.[原列名]', '新列名', 'column'
*************************************************************************
Transact-SQL 参考
sp_rename
更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
示例
A. 重命名表
下例将表 customers 重命名为 custs。 ......

SQL注入攻击防范技巧


SQL注入攻击防范技巧
一般的SQL注入攻击都是通过构建一条复杂的sql语句,
通过网页漏洞来执行sql语句,达到攻击数据库的目的。
如通过文章ID来查询某一篇文章的网页,
通常采用的sql语句为:
sql="select top 1 * from articles where articId="&request("id")
那么可以简� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号