摘要: 游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 同样的,... 阅读全文
posted @ 2015-09-13 14:36 ndong 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 子查询有时使用起来很麻烦,因为所有的过滤和匹配逻辑都必须集成到子查询表达式中。如果只需要执行一个任务,且只需要使用一次杳询表达式,子查询是很好的选择。但子查询不能被重用,也不能很好地支持多个需求。这个问题的一个常见解决方法是用子查询的内容填充一个临时表,连接和过滤表达式可以应用于这个临时表,但性能很差,且会消耗大量的系统资源,使用临时表还需要创建和使用另一个表的权限。 CTE是这两个问题的最佳... 阅读全文
posted @ 2015-09-13 14:08 ndong 阅读(896) 评论(0) 推荐(0) 编辑
摘要: UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM tabl... 阅读全文
posted @ 2015-09-12 22:39 ndong 阅读(226) 评论(0) 推荐(0) 编辑
摘要: FULL JOIN 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。(返回JOIN 两端表的所有数据,无论其与另一张表有没有匹配。显示左连接、右连接和内连接的并集) FULL JOIN 关键字语法 SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table... 阅读全文
posted @ 2015-09-12 22:26 ndong 阅读(1881) 评论(1) 推荐(1) 编辑
摘要: 来源: https://msdn.microsoft.com/zh-cn/library/ms177673(v=sql.110).aspx 按 SQL Server 中一个或多个列或表达式的值将一组选定行组合成一个摘要行集。 针对每一组返回一行。 SELECT 子句 列表中的聚合函数提供有关每个组(而不是各行)的信息。 GROUP BY 子句具有符合 ISO 的语法和不符合 ISO 的语法。... 阅读全文
posted @ 2015-09-12 12:53 ndong 阅读(283) 评论(0) 推荐(0) 编辑
摘要: T-SQL函数的类别和描述: 函数类别 作用 聚合函数 返回一个标量值,表示在某个值域上的聚合,应用于特定的聚合选择或者汇总 配置变量 返回SQL Server执行环境的信息。这些信息可用于给对象编程 转换 将值从一种数据类型转换为另一种类型。也用于将字符格式化为日期、时间与数值 游标 在迭代游标时,用过程方式遍历结果集中的行 日期和时间 从日期值中解析出日期与时间部分,也用... 阅读全文
posted @ 2015-09-12 00:18 ndong 阅读(1546) 评论(0) 推荐(0) 编辑
摘要: 如果想返问表中行的子集,仅需要返回特定数量的记录,而不管符合条件的行有多少。要返回排在前面的值,可以有两个选择:指定固定数量的行,或者指定总行数的百分比。SQL Server不对这些数据做任何分析,共至在截断列表时,也不会考虑这些值是不是已经排过序。 1. WITH TIES语句 用WITH TIES可以把所有和最后一行相同的己排序记录都加到结果集中。 SELECT TOP 10 WITH TIE... 阅读全文
posted @ 2015-09-08 02:48 ndong 阅读(324) 评论(0) 推荐(0) 编辑
摘要: NOT运算符不是独立的,它是一个可以放在任何逻辑表达式前面的修饰符,能得到与结果相反的结果。所以,如果一个表达式是真,就会得到假;如果是假,就会得到真。有时测试查找条件的反面更容易。不过,NOT运算符通常效率比较低,因为SQL Server实际上将首先处理基本表达式(也许先返回所有符合条件的行),然后才提取出不包含在原结果中的行。 根据语句的复杂性和表中的行数,与构建一个选择出除了要忽略的记录之外... 阅读全文
posted @ 2015-09-08 02:16 ndong 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 模式实际上是名称空间,因此在SQL Serve中调用数据库对象时,一定要设置对象引用的环境。每个用户都被赋予了一个默认模式,在用户登录SQL Server并凋用数据库对象时,这个默认模式就是对象引用方式的区别机制。 与许多其他数据库产品一样,SQL Server也使用模式来组织对象,所以理解如何正确地访问这些对象是很重要的。 其工作作原理如下:模式由数据库设计人员定义,实际上就是类别的名称,这些模... 阅读全文
posted @ 2015-09-08 02:02 ndong 阅读(1723) 评论(0) 推荐(0) 编辑
摘要: 每一个概念的产生必然是因为碰到了无法解决的问题。换句话说,如果没有它,必然会导致某些问题难以解决。所以我想从这个角度切入,希望能把这几个复杂而暧昧的多角关系从最实用的角度来阐述清楚。 在问题的最初,我们假定的数据库什么都没有。数据库对象。首先,数据库对象是比较容易懂的。所有的表,视图,存储过程,触发器都称为数据库对象。 我们可以拿一个网站来做类比。一个网站包含很多的网页,图片,脚本文件,我们姑... 阅读全文
posted @ 2015-09-08 01:19 ndong 阅读(570) 评论(0) 推荐(0) 编辑