[临床医学]数据库查询.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[临床医学]数据库查询

1 交叉连接 语法: SELECT 列名列表 FROM 表名1 CROSS JOIN 表名2 或者 SELECT 列名列表 FROM 表名, 表名2 交叉连接的结果是两个表的笛卡儿积,在实际应用中一般是没有意义的,但在数据库的数学模式上有重要的作用。连接后该结果集的行数等于两个表的行数积,列属等于两个表的列数和。它是其他连接运算的基础。 例如:对学生表和课程表进行交叉连接 方法1: Select 学生表.*,课程表.* from 学生表 Join 课程表 方法2: Select学生表.*,课程表.* from 学生表,课程表 因为引用了多个表,为了简化select子句。因此,在from子句中给每个表起一个别名,select子句中可以通过别名引用表。 Select a.*,b.* from 学生表as a,课程表 as b 2 内连接 内连接就是只包含满足连接条件的数据行,是将交叉连接结果集按照连接条件进行过滤的结果,也称自然连接。连接条件通常采用“主键=外键”的形式。内连接有以下两种语法格式。 SELECT 列名列表 FROM 表名1 [INNER] JOIN 表名2 ON 表名1.列名=表名2.列名 或 SELECT 列名列表 FROM 表名1, 表名2 WHERE 表名1.列名=表名2.列名 例如:查询每个学生选修课程的信息,查询结果包括学生的姓名、所选课程的课程名。 分析:姓名在学生表中,课程名在课程表中。所以本查询用到两个表,要用内连接将它们连接起来,但因为这两表不存在共同的列,不能进行自然连接。因此要加入中间表,中间表中应含有能与其它两个表进行自然连接的公共列,这个表就是成绩表。 方法1: select a.姓名,c.课程名 from 学生表 as a inner join 成绩表 as b on a.学号=b.学号 inner join 课程表 as c on b.课程号=c.课程号 方法2: select a.姓名,c.课程名 from 学生表 as a, 成绩表 as b ,课程表 as c Where a.学号=b.学号 and b.课程号=c.课程号 例2:查询外语学院的学生选修课程但分数不及格的信息。查询结果包括姓名和课程名 分析:该题是在上述多表连接的基础上增加两个条件,一是学生所在院系为外语系:学生表.院系名称=‘外语系‘;二是分数不及格:成绩表.分数60 方法1: select a.姓名,c.课程名 from 学生表 as a inner join 成绩表 as b on a.学号=b.学号 inner join 课程表 as c on b.课程号=c.课程号 Where a.院系名称=‘外语系’ and c.分数60 方法2: select a.姓名,c.课程名 from 学生表 as a, 成绩表 as b ,课程表 as c Where a.学号=b.学号 and b.课程号=c.课程号 and a.院系名称=‘外语系’ and c.分数60 3 外连接 外连接根据连接时保留表中记录的侧重不同分为“左外连接”、“右外连接”和“全外连接”。 左外连接 将左表中的所有记录分别与右表中的每条记录进行组合,结果集中除返回内部连接的记录以外,还在查询结果中返回左表中不符合条件的记录,并在右表的相应列中填上NULL。左外连接的语法格式如下。 SELECT 列名列表 FROM 表名1 AS A LEFT [OUTER] JOIN 表名2 AS B ON A.列名=B.列名 例子:查询学生选修的课程的情况,输出学号和课程名,如果有课程没有学生选修,也输出。 分析:使用内连接只显示符合连接条件的记录。如果某门课程没有学生选修,那么在成绩表中就没有该课程的课程号,因此该课程的课程名无法显示。但是通过外连接,可以将其显示。 结果: SELECT 学号,课程名 FROM 课程表 LEFT JOIN 成绩表 ON 课程表.课程号=成绩表.课程号 上述结果中如果将两个表的位置换一下,就变成了右外连接。 使用聚集函数可以统计数据,但有时需要统计不同类别的数据。T-SQL提供了GROUP BY子句对查询结果分组。其语法格式如下: SELECT select_list FROM table_name WHERE condition GROUP BY column_name [ HAVING condition ] | [ WITH CUBE | ROLLUP ] 8.4 分组 【例8-39】统计每门课程的总分和平均分,并按平均分从高到低排序输出。 SEL

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档