第3章关系数据库标准语言-SQL.pptVIP

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
参考书籍 曹军生等.SQL Server 2000实用教程.北京:北京理工大学出版社,2003. 教育部考试中心.全国计算机等级考试二级教程: Visual FoxPro程序设计(2011年版) [M].北京:高等教育出版社,2011. 刘丽.Visual FoxPro程序设计(第三版)[M].北京:中国铁道出版社,2011. 【例3.3】用SQL的命令建立病人信息表(BRXX)。 create table brxx(床位号 C(4) primary key,姓名 c(6),性别 c(2),入院日期 D,年龄 i check 年龄0 error 年龄值不合法!,科室编号 c(3),主治大夫编号 c(6),foreign key 科室编号 tag 科室编号 references bumen,foreign key 主治大夫编号 tag 编号 references ysxx) 通过3个例题,共建立3个关系: BUMEN 科室编号-?YSXX 科室编号 BUMEN 科室编号-?BRXX 科室编号 YSXX 编号?BRXX 主治大夫编号 3.5 视图的使用(4) [例3.54]在医院yygl数据库中,按科室编号相等建立一个包含表bumen和表ysxx所有字段的视图。 OPEN DATABASE YYGL CREATE VIEW YYGL_VIEW AS SELECT * FROM YYGL!YSXX INNER JOIN YYGL!BUMEN ON YSXX.科室编号=BUMEN.科室编号 本章结束! 3.3 数据查询功能(11) 【例3.27】查询医生的总人数。 Select count(*) from ysxx 【例3.28】查询病人信息表中医生的人数。 Select count(distinct 主治大夫编号) from brxx 【例3.29】查询医生中年龄最大的年龄。 Select max(年龄) from ysxx 3.3 数据查询功能(12) 五.对查询结果进行分组: GROUP BY子句将查询结果表按某一列或多列的值分组,值相等的为一组。对查询结果分组的目的是为了细化集函数的作用对象。如果未对查询结果分组,集函数将作用于整个查询结果,如上面的例3.27、例3.28、例3.29。分组后集函数将作用于每一个组,即每一组都有一个函数值。 3.3 数据查询功能(13) 【例3.30】求各个科室的医生相应人数。 SELECT 科室编号,COUNT(科室编号) FROM YSXX GROUP BY 科室编号 如果分组后还要求按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,则可以使用HAVING短语指定筛选条件。 【例3.31】查询医生人数超过1人的科室编号和科室的医生人数。 3.3.2 联接查询(1) 若一个查询同时涉及两个或两个以上的表,则称之为联接查询。 分类:等值、非等值、自身联接查询、超联接查询。 3.3.2 联接查询(2) 1.等值与非等值联接查询: 其一般格式为: [表名1.]字段名1 比较运算符 [表名2.]字段名2 (联接谓词) 当联接运算符为=时,称为等值联接。使用其他运算符称为非等值联接。 联接谓词中的字段名称为联接字段。联接条件中的各联接字段类型必须是可比的。但不必是相同的。 3.3.2 联接查询(3) 【例3.32】查询每个医生及其对应科室情况。 医生情况存放在YSXX表中,科室情况存放在BUMEN表中,所以本查询实际上涉及两个表。这两个表之间的联系是通过公共字段科室编号实现的 若在等值联接中把目标字段中重复的字段去掉则为自然联接。 SELECT YSXX.科室编号,姓名,性别,职称,年龄,参加工作日期,学历,毕业学校,职务,科室名,床位数 FROM YSXX,BUMEN WHERE YSXX.科室编号=BUMEN.科室编号 3.3.2 联接查询(4) 2.自身联接查询(命名别名来实现): 联接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行联接,称为表的自身联接。 【例3.34】查询医生信息表中是科室主任的医生是哪些医生的科室主任。 SELECT ZW.姓名,是,YS.姓名,的主任 FROM YSXX ZW,YSXX YS WHERE ZW.科室编号=YS.科室编号 AND ZW.职务=主任 AND YS.职务主任 3.3.2 联接查询(5) 3.超联接查询: 首先保证一个表中满足条件的记录都在结果表中,然后将满足联接条件的记录与另一个表的记录进行联接,不满足联接条件的则将应来自另一表的属性值置为空值(NULL)。 【格式】SELECT …… FROM 表名1 INNER

文档评论(0)

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

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

1亿VIP精品文档

相关文档