- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. 九、 COMPUTE子句 COMPUTE 子句可以用于SELECT 语句既查看明细行,又查看汇总行。可以计算分组的汇总值,也可以计算整个结果集的汇总值。 语法格式: [COMPUTE {聚合函数名 (列名)} [, …N ] [BY expression [, … N] ] 【例 33】语句使用简单 COMPUTE 子句生成 titles 表中 price 及 advance 的求和总计: USE pubs Go SELECT type, price, advance FROM titles ORDER BY type COMPUTE SUM(price), SUM(advance) by type 【例 34】查找雇员表(empoyee)中各雇员的姓名、出生年月和特长,并产生一个雇员总人数行。 USE COMPANYINFO GO SELECT 姓名,出生年月,特长 FROM employee Order by 特长 COMPUTE count(雇员) by 特长 比较 COMPUTE 和 GROUP BY GROUP BY 生成单个结果集。每个组都有一个只包含分组依据列和显示该组子聚合的聚合函数的行。选择列表只能包含分组依据列和聚合函数。 COMPUTE 生成多个结果集。一类结果集包含每个组的明细行,其中包含选择列表中的表达式。另一类结果集包含组的子聚合,或 SELECT 语句的总聚合。选择列表可包含除分组依据列或聚合函数之外的其它表达式。聚合函数在 COMPUTE 子句中指定,而不是在选择列表中。 模块2 公司管理数据库系统的多表查询 一、教学目标: 终极目标:使用联接查询和嵌套查询的方法实现公司管理数据库系统的多表查询 二、工作任务 公司对于产品订单有关的数据保存在订单表P-ORDER和,此表包含了客户订购产品有关的订单ID、产品ID、数量、雇员ID、客户ID和订货日期。在产品表PRODUCT中包含了产品ID、产品名、类别ID、单价、库存量。在顾客表CUSTOMER中包含了客户ID、公司名称、联系人姓名、联系方式和地址和邮编。现编写查询语句,按下列要求查询得到相应的结果: 1、查询订货公司的名称,联系人姓名、订购产品名称和数量 2、查询订购“苹果汁”的顾客的公司名称和联系方法。 3、查询客户“通恒机械”下的订单订购的产品名和数量。 4、查询产品“苹果汁”所属的类别和说明。 一、联接( join) 通过联接,可以根据各个表之间的逻辑关系从两个或多个表中检索数据。联接表示应如何使用一个表中的数据来选择另一个表中的行。 联接条件通过以下方法定义两个表在查询中的关联方式: 指定每个表中要用于联接的列。典型的联接条件在一个表中指定外键,在另一个表中指定与其关联的键。 指定比较各列的值时要使用的逻辑运算符(=、 等)。 【例15】查询书价大于20和书价小于15的书的代号、种类和价格。 use pubs go select title_id as 书号,type as 种类, price as 原价 from titles where price $15 or price $20 go 查询结果如下: 书号 种类 原价 ------ ------------ --------------------- BU1111 business 11.9500 BU2075 business 2.9900 MC3021 mod_cook 2.9900 PC1035 popular_comp 22.9500 …… (所影响的行数为 11 行) 4.使用IN关键字 同BETWEEN关键字一样,IN的引入也是为了更方便地限制检索数据的范围,灵活使用IN关键字,可以用简洁的语句实现结构复杂的查询。 语法格式为: 表达式 [NOT] IN (表达式1 , 表达式2 [,…表达式n]) 【例16】查询所有居住在KS、CA、MI或IN州的作家。 use pubs go? select au_id,au_lname,au_fname from authors where state IN (CA,KS,MI,IN) go 如果不使用IN关键字,这些语句可以使用下面的语句代替: use pubs go? select au_id,au_lname,au_fname from authors where state=CA ‘ or state=KS‘ or state=MI or state=IN g
文档评论(0)