随笔分类 - 数据库--SqlServer
摘要:sql server2005新增加了2大数据类型:1.大值数据类型2.xml1.大值数据类型Microsoft SQL Server 2005 中引入了 max 说明符。此说明符增强了 varchar、nvarchar 和 varbinary 数据类型的存储能力。varchar(max)、nvarchar(max) 和 varbinary(max) 统称为大值数据类型。您可以使用大值数据类型来存储最大为 2^31-1 个字节的数据。大值数据类型和 SQL Server 早期版本中与之对应的数据类型之间的关系:varchar(max) textnvarchar(max) ntextvarbina
阅读全文
摘要:TOP 运算符介绍:TOP 运算符在Sql Server2005得到了增强,可以使用任何数值表达式(如变量名),而不是仅使用整数来指定该运算符返回的行数。TOP 现在还可以在 INSERT、UPDATE 和 DELETE 语句中指定。TOP 运算符的几个使用总结:1.TOP 表达式可用在 SELECT、INSERT、UPDATE 和 DELETE 语句中。2.Top表达式可以是常量,变量,子查询3.取代set rowcount,可以防止锁升级,提高效率特别提示:与INSERT、UPDATE 或 DELETE 一起使用的 TOP 表达式中被引用行将不按任何顺序排列。TOP n 随机返回 n 行。
阅读全文
摘要:公用表表达式是Sql Server2005新增加的一个非常好用的功能。公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。CTE可用于: 1.创建递归查询(我个人认为CTE最好用的地方)2.在同一语句中多次引用生成的表CTE优点:使用 CTE 可以获得提高可读性和轻松维护复杂查询的优点。查询可以分为单独块、简单块、逻辑生成块。之后,这些简单块可用于生成
阅读全文
摘要:APPLY 运算符简介: APPLY 运算符是Sql Server2005新增加的运算符。使用APPLY运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。 APPLY 运算符的左操作数和右操作数都是表表达式。这些操作数之间的主要区别是:右操作数可以使用表值函数,从左操作数获取一个列作为函数的参数之一。左操作数可以包括表值函数,但不能以来自右操作数的列作为参数。演示一下APPLY 运算符的
阅读全文
摘要:Transact-SQL提供了4个排名函数: RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE()下面是对这4个函数的解释:RANK() 返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。例如,如果两位销售员具有相同的SalesYTD值,则他们将并列第一。由于已有两行排名在前,所以具有下一个最大SalesYTD的销售人员将排名第三。因此,RANK 函数并不总返回连续整数。DENSE_RANK()返回结果集分区中行的排名,在排名中没有任何间断。行的排名等于所讨论行之前的所有排名数加一。如果有两
阅读全文
摘要:1.简介EXCEPT和INTERSECT运算符使您可以比较两个或多个SELECT语句的结果并返回非重复值。2.区别EXCEPT运算符返回由EXCEPT运算符左侧的查询返回、而又不包含在右侧查询所返回的值中的所有非重复值。INTERSECT返回由INTERSECT运算符左侧和右侧的查询都返回的所有非重复值。3.注意事项(1).使用EXCEPT或INTERSECT比较的结果集必须具有相同的结构。它们的列数必须相同,并且相应的结果集列的数据类型必须兼容(2).INTERSECT运算符优先于EXCEPT(3).SELECT INTO必须是包含INTERSECT或EXCEPT运算符的语句中的第一个查询,
阅读全文
摘要:在我们平常的SQL查询中,其实我们有许多应该注意的原则,以来实现SQL查询的优化,本文将为大家介绍30条查询优化原则。首先应注意的原则1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=03.应尽量避免在 where 子句中使用!
阅读全文
摘要:关于一般的行列转换(Sql2000)我们必须用 select ...case...语句参照http://blog.csdn.net/talantlee/articles/353798.aspx针对sql2005 系统提供两个新的关键字 PIVOT 和UNPIVOT可用来作此类操作.语法规则<pivot_clause> ::= ( aggregate_function ( value_column ) FOR pivot_column IN ( <column_list> ) ) <unpivot_clause> ::= ( value_column FOR
阅读全文
摘要:--聚合函数usepubsgoselectavg(distinctprice)--算平均数fromtitleswheretype='business'gousepubsgoselectmax(ytd_sales)--最大数fromtitlesgousepubsgoselectmin(ytd_sales)--最小数fromtitlesgousepubsgoselecttype,sum(price),sum(advance)--求和fromtitlesgroupbytypeorderbytypegousepubsgoselectcount(distinctcity)--求个数fro
阅读全文
摘要:一、安装SQL Sever 2005数据库 如果你使用Windows Server 2003 Enterprise Edition,注意同时安装SP1或更高版本补丁。安装条件:组件要求 磁盘空间 所有版本的完全安装都需要350MB硬盘空间,而要安装示例数据库还需要390MB。 内存 512 MB建议使用1 GB或更多的内存(这里指的是SQL Server 2005 Enterprise Edition) Internet软件 所有版本的SQL Server 2005的安装都需要Microsoft Internet Explorer 6.0 ,(同时安装SP1)或更高版本,因为Microsoft
阅读全文
摘要:问题描述:本题用到下面三个关系表:CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS 班级BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,BNO 书号,RDATE 还书日期备注:限定每人每种书只能借一本;库存册数随借书、还书而改变。要求实现如下15个处理: 1. 写出建立BORROW表的SQL语句,要求定义主码完整性约束和引用完整性约束。 2. 找出借书超过5本的读者,输出借书卡号及所借图书册数。 3. 查询借阅了"水浒"一书的读者,输出姓名及班级。
阅读全文
摘要:Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成
阅读全文
摘要:三层架构,数据层(DAL)、逻辑层(BLL)、表示层(UI);三层结构的优点分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:1、开发人员可以只关注整个结构中的其中某一层;2、可以很容易的用新的实现来替换原有层次的实现;3、可以降低层与层之间的依赖;4、有利于标准化;5、利于各层逻辑的复用。概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可
阅读全文
摘要:(转 原文地址http://blog.sina.com.cn/s/blog_524c848901009e7b.html~type=v5_one&label=rela_nextarticle作者李洋的博客 http://blog.sina.com.cn/liiyang)66.软件开发过程一般有几个阶段?每个阶段的作用?答:需求分析,架构设计,代码编写,QA,部署67.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。答:using 引入名称空间或者使用非托管资源new 新建实例或者隐藏父类方法68.
阅读全文
摘要:SP.NET面试题(转 原文地址http://blog.sina.com.cn/s/blog_524c848901009e7b.html~type=v5_one&label=rela_nextarticle作者李洋的博客 http://blog.sina.com.cn/liiyang)1. 简述 private、 protected、 public、 internal 修饰符的访问权限。答 . private : 私有成员, 在类的内部才可以访问。protected : 保护成员,该类内部和继承类中可以访问。public : 公共成员,完全公开,没有访问限制。internal: 在同一
阅读全文
摘要:在网友的博客中看到这编文章不错,就记了下来。供大家参考,在写存储过程时的经验之谈1、开发人员如果用到其他库的Table或View,务必在当前库中建立View来实现跨库操作,最好不要直接使用“databse.dbo.table_name”,因为sp_depends不能显示出该SP所使用的跨库table或view,不方便校验。2、开发人员在提交SP前,必须已经使用set showplan on分析过查询计划,做过自身的查询优化检查。3、高程序运行效率,优化应用程序,在SP编写过程中应该注意以下几点:a) SQL的使用规范:i. 尽量避免大事务操作,慎用holdlock子句,提高系统并发能力。ii.
阅读全文
摘要:随着计算机技术越来越广泛地应用于国民经济的各个领域,在计算机硬件不断微型化的同时,应用系统向着复杂化、大型化的方向发展。数据库是整个系统的核心,它的设计直接关系系统执行的效率和系统的稳定性。因此在软件系统开发中,数据库设计应遵循必要的数据库范式理论,以减少冗余、保证数据的完整性与正确性。只有在合适的数据库产品上设计出合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。虽然对于小项目或中等规模的项目开发人员可以很容易地利用范式理论设计出一套符合要求的数据库,但对于一个包含大型数据库的软件项目,就必须有一套完整的设计原则与技巧。一、成立数据小组大型数据库数据元素多,在设计
阅读全文
摘要:nvarchar与varchar的区别 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。 nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 na
阅读全文
摘要:在优化你的数据库时,你可能没有用到这些细节的优点。以下是10个关于你的数据库性能的问题,需要你问问自己。 1. 假设你的数据库不需要存储特殊字符的能力,尤其是Unicode标准中规定的那些字符,你有没有在系统中把nchar类型替换成char之类的各种适用的字段类型? 2. 你是不是在用smalldatetime类型,而不是datetime?如果你不清楚这两种类型有什么区别,这是一个简单介绍:smalldatetime类型可以存储1900年1月1日至2079年6月6日的日期,而datetime类型把这一范围扩展到了1753年1月1日至9999年12月31日。你需要这么大的范围吗? 3. 你是不是
阅读全文

浙公网安备 33010602011771号