(SQL Server数据库系统基础)第6章数据查询.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例6-22】查询所有学生的成绩及其总和。 代码如下: USE college SELECT * FROM 成绩表 COMPUTE SUM(考试成绩) 在查询分析器中执行以上代码,结果如图6-23所示,在最后一行有一条汇总记录。 图6-23 查询所有学生的成绩及其总和 【例6-23】显示每个学生的所有课程的成绩记录,并显示总分. 代码如下: USE college GO SELECT * FROM 成绩表 ORDER BY 学号 COMPUTE SUM(考试成绩) BY 学号 GO 上述代码中COMPUTE BY子句之前使用了ORDER BY子句,原因是必须先按分类字段排序,之后才能使用COMPUTE BY子句进行分类汇总。COMPUTE BY与GROUP BY子句的区别在于:前者既显示统计记录,又显示详细记录;后者仅显示分组统计的汇总记录。将上述代码在查询分析器中输入并执行,结果如图6-24所示。 图6-24 COMPUTE和ORDER子句的混用 6.7 联 接 查 询 6.7.1 交叉联接 交叉联接又称非限制联接、无条件联接或笛卡尔联接,就是将两个表不加任何限制地组合在一起,其联接结果是具有记录数为两个表记录数乘积的逻辑数据表。交叉联接没有实际意义,仅用于说明表直接的联接原理。 格式一:SELECT 字段列表 FROM 表名1 { Cross Join 表名2 } [,…n ] 格式二:SELECT 字段列表 FROM 表名1, 表名2[ , …n ] 【例6-24】将“班级表”与“学生表”进行交叉联接并观察结果。 代码如下: USE college SELECT * FROM 班级表, 学生表 或者 SELECT * FROM 班级表 Cross Join学生表 这里,“班级表”有3条记录,“学生表”有5条记录,联接结果总共有15条记录。 6.7.2 内联接 内联接指只将两个表中满足指定条件的记录联接成一条新记录,舍弃所有不满足条件,没有进行联接的记录。 内联接是数据表最常用的联接方式,其语法格式如下: 格式一: SELECT 列名序列 FROM 表名1 { [inner] Join 表名2 ON 表名1.列名=表名2 .列名 } [,…n ] 格式二: SELECT 列名列表 FROM 表名1 , 表名2 [ , …,n] WHERE 表名1.列名=表名2 .列名 [and … ] 说明: (1) 当表名太长时,一般可在FROM指定表的同时为表定义一个别名,定义格式如下: 表名 [AS] 别名 (用AS或空格隔开) (2) 如果两个表有相同的字段名,则在指定字段名时必须在列名前面加上表名(或表别名)作为前缀加以区别,用“表名.列名”或“表别名.列名”表示。 (3) 如果列名是某个表中单独具有的,则可以不加前缀,但加上会增强表名的可读性。 注意:为表名定义别名后,在SELECT及各个子句中指定字段时必须使用“别名.列名”格式,不允许再使用“表名.列名”格式。 【例6-25】将“学生表”与“班级表”进行简单的内联接。将“班级表”与“学生表”进行交叉联接并观察结果。 代码如下: USE college SELECT * FROM 班级表, 学生表 where 班级表.班级编号=学生表.班级编号 或者

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档