上一页 1 ··· 69 70 71 72 73 74 75 76 77 ··· 83 下一页
摘要: ORDER BY子句用于展示数据时对输出结果中的行进行排序。从逻辑查询处理来看,ORDER BY是最后处理的一个子句。下面的代码按照雇员ID和订单年份对输出结果进行排序:1 SELECT empid,YEAR(orderdate) AS orderyear,COUNT(*) AS numorders2 FROM Sales.Orders3 WHERE custid =714 GROUPBY empid,YEAR(orderdate)5 HAVINGCOUNT(*) >16 ORDERBY empid,orderyear; 理解SQL最重要的一点就是要明白表不保证是有序的,因为表是为了代表 阅读全文
posted @ 2012-09-24 09:47 沙耶 阅读(1227) 评论(0) 推荐(0)
摘要: SELECT子句用于指定需要在查询返回的结果集中包含的属性(列)。SELECT列表中的表达式可以直接基于正在查询的表的各个列,也可以在此基础上做进一步的处理。例如,在前面的代码中的SELECT列表就包含以下表达式:empid、YEAR(orderdate)、COUNT(*)。如果表达式直接引用了某个列(如empid),那么目标列的名称默认与原始列的名称一样。也可以选择为目标列分配自定义的名称,为此要使用AS子句(例如,empid AS employee_id)。当在表达式中进行了一定的处理(例如,YEAR(orderdate)),或者没有基于原始表的列(如调用CURRENT_TIMESTA.. 阅读全文
posted @ 2012-09-24 09:30 沙耶 阅读(3781) 评论(0) 推荐(0)
摘要: HAVING子句用于指定对组进行过滤的谓词或逻辑表达式,这与WHERE阶段对单独的行进行过滤相对应。只有能让HAVING子句中的逻辑表达式为TRUE的组,HAVING阶段才会把这些组返回到下一个逻辑查询处理阶段。逻辑表达式计算结果为FALSE或UNKNOWN的组将被过滤掉。 因为HAVING子句是在对行进行分组后处理的,所以可以在逻辑表达式中引用聚合函数。例如,在下面所示的代码中,HAVING子句使用了逻辑表达式COUNT(*)>1,意味着HAVING阶段过滤器只保留包含多行的组(雇员和订单年份)。 SELECT empid,YEAR(orderdate) AS orderyear,CO 阅读全文
posted @ 2012-09-21 16:50 沙耶 阅读(351) 评论(0) 推荐(0)
摘要: GROUP BY阶段可以将WHERE逻辑查询处理阶段返回的行按“组”进行组合。每个组由在GROUP BY子句中指定的各元素决定。例如,以下代码所示查询的GROUP BY子句就使用了empid和YEAR(orderdate)元素: SELECT empid,YEAR(orderdate) AS orderyear,COUNT(*) AS numorders FROM Sales.Orders WHERE custid=71 GROUP BY empid,YEAR(orderdate); 这意味着对于WHERE阶段返回的数据中出现的每个雇员ID和订单年份值的唯一组合,在GROUP B... 阅读全文
posted @ 2012-09-21 16:24 沙耶 阅读(771) 评论(0) 推荐(0)
摘要: 在WHERE子句中,可以指定一个谓词或逻辑表达式,从而过滤由FROM阶段返回的行。只有能让逻辑表达式结果为TRUE的行,才能由WHERE阶段返回给后续的逻辑查询处理阶段。 SELECT orderid,custid,empid,orderdate,freight FROM Sales.Orders WHERE custid=71; 上面这段代码应用了过滤条件custid=71,WHERE阶段将只保留客户ID等于71的行。 WHERE子句对查询性能有重要影响。在过滤表达式的基础上,SQL Server会计算使用什么索引来访问请求的数据。与扫描整个表相比,通过使用索引,有时可以大幅减少... 阅读全文
posted @ 2012-09-21 16:15 沙耶 阅读(257) 评论(0) 推荐(0)
摘要: FROM子句是在逻辑处理阶段第一个要处理的查询子句。这个子句用于要查询的表名,以及对这些表进行操作的表运算符。应该总是用数据库架构来限定代码中的对象名称。即便你没有显示指定架构名称,SQL Server也一定会隐式地解析它。这样就产生了一些额外的代价,而且如果完全让SQL Server决定使用哪个对象,也容易产生歧义。通过显示指定架构名称,可以保证得到的对象的却是你原来想要的而且还不必付出任何额外的代价。 如果不用任何特殊处理而返回一个表的所有行,所有需要做的就是使用一个带有FROM子句的查询,在FROM子句中指定想要查询的表名,在SELECT子句中指定想要返回的各个属性。例如以下语句查... 阅读全文
posted @ 2012-09-21 15:29 沙耶 阅读(318) 评论(0) 推荐(0)
摘要: SELECT语句的目的是对表进行查询、应用一定的逻辑处理,并返回结果。注意,这里的“逻辑查询处理”是指ANSI SQL定义的概念模型,规定了如何处理一个查询,以及如何取得最终的结果。Microsoft SQL Server引擎并不教条地严格遵守逻辑查询处理;相反,在物理地处理一个查询时,它可以自由地调整处理阶段的顺序,只要最终的结果能够和逻辑查询处理的规定保持一致。SQL Server可以(事实上经常)在查询的物理处理中采用很多快捷方式。 我们使用以下代码来描述逻辑查询处理和各种SELECT查询字句:USE TestDB SELECT empid,YEAR(orderdate) AS ... 阅读全文
posted @ 2012-09-21 14:44 沙耶 阅读(450) 评论(0) 推荐(0)
摘要: 关系模型带来的最大优点之一就是模型本身集成了数据完整性。作为模型的一部分而实施的数据完整性(也就是说,作为表定义的一部分)称为声明式(declarative)数据完整性。用代码来实施的数据完整性(例如,用存储过程或触发器)称为过程式(procedural)数据完整性。 为属性选择的数据类型和是否允许为NULL值,甚至数据模型本身都是声明式数据完整性约束的例子。其他声明式约束包括主键、唯一约束(UNIQUE)、外键、检查约束(CHECK),以及DEFAULT约束。当用CREATE TABLE语句创建表时,可以同时定义这些约束;或者在已经创建好表之后,用ALTER TABLE语句增加这些约束... 阅读全文
posted @ 2012-09-21 09:02 沙耶 阅读(1313) 评论(0) 推荐(0)
摘要: 一、创建数据库 我们知道表是属于架构的,而架构又是属于数据库的。要在SQL Server环境中创建一个名为TestDB的数据库,可以运行以下代码: IF DB_ID('TestDB') IS NULL CREATE DATABASE TestDB; 如果不存在名为TestDB的数据库,这段代码就会创建一个新的。DB_ID函数接受一个数据库名称作为输入,返回它的内部数据库ID。如果输入名称指定的数据库不存在,这个函数将返回NULL。这是一种检查数据库是否存在的简单方法。注意:在这个简单的CREATE DATABASE语句中,采用了默认的文件设置(例如,区域和初始大小)。在产品环境 阅读全文
posted @ 2012-09-20 16:58 沙耶 阅读(583) 评论(0) 推荐(0)
摘要: 五、IIS寄宿1、在解决方案资源管理器中,鼠标右击解决方案“MySolution“,选择:添加→新建网站→WCF服务,出现如下窗体:点击“确定”按钮,创建完毕。界面如下所示:2、删除自动生成的“IService.cs”和“Service.cs”。3、鼠标右击网站项目,选择“添加引用”,出现如下窗体:选择“服务层”类库,确定即可。目前网站项目的结构如下:4、双击“Service.svc”打开该文件进行修改,修改后的文件如下所示:<%@ ServiceHost Language="C#" Debug="true" Service="服务层.M 阅读全文
posted @ 2012-09-20 15:23 沙耶 阅读(1153) 评论(0) 推荐(0)
上一页 1 ··· 69 70 71 72 73 74 75 76 77 ··· 83 下一页