《SQL的数据查询》PPT课件.ppt_第1页
《SQL的数据查询》PPT课件.ppt_第2页
《SQL的数据查询》PPT课件.ppt_第3页
《SQL的数据查询》PPT课件.ppt_第4页
《SQL的数据查询》PPT课件.ppt_第5页
免费预览已结束,剩余37页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL的数据查询 天津师范大学刘洋 一个问题 2006年6月 举世瞩目的第18届世界杯在德国举行 某网站为了方便球迷查询 在自己的网站上设立了世界杯信息查询系统 该系统的一部分要求为 一名球员可以参加多场比赛 每场比赛有多名球员参加 概念模型 请你为该系统的这一部分设计一个ER模型 画出ER图 要求 球员 的属性有 姓名 代表国 号码 年龄 位置 比赛 的属性有 比赛编号 比赛甲方 比赛乙方 比赛类型在联系中反映出球员参加比赛的出场时间 进球数 概念模型 ER图 球员 比赛 m n 概念模型 关系数据模型 球员关系 player nation number name age position 主码 nation number 概念模型 关系数据模型 想一想 如果只是number作为主码可以吗 概念模型 关系数据模型 不可以 因为不同国家队中有相同的号码 概念模型 关系数据模型 比赛关系 match matchid match a match b matchtype 主码 matchid 概念模型 关系数据模型 player nation number name age position match matchid match a match b matchtype matchid nation number join time goal Player的主码 match的主码 Join自己的属性 SQL语言 CREATE 使用SQL语言创建基本表 player nation number name age position Createtableplayer 球员表 namechar 20 姓名nationchar 20 代表国numberint 号码ageint 年龄positionchar 10 位置 定义主码 check numberbetween1to23 check positionin 守门员 后卫 中场 前锋 primarykey nation number 使用SQL语言创建基本表 match matchid match a match b matchtype Createtablematch 比赛表 matchidintprimarykey 比赛编号 主码 match achar 20 比赛甲方match bchar 20 比赛乙方matchtypechar 10 check matchtypein 小组赛 淘汰赛 比赛类型 使用SQL语言创建基本表 Createtablejoin 参加表 nationchar 20 代表国numberint 号码matchidint 比赛编号timeint 出场时间goalint 进球数primarykey nation number matchtype 定义主码 定义外码 定义外码 join nation number matchid time goal foreignkey nation number referenceplayer nation number foreignkey matchid referencematch matchid SQL语言 SELECT Select语句的基本句法 select From Where句型 A1 An F R1 Rm FromR1 Rm WhereF SelectA1 An 这里R1 Rn为关系 F是公式 A1 An为属性 R1 Rm F A1 An 使用SQL语言查询 世界杯数据库中有三个基本表 关系 player nation number name position 德国13巴拉克中场 法国12亨利前锋 德国1莱曼守门员 巴西6卡洛斯后卫 使用SQL语言查询 match matchid match a match b A1德国哥斯达黎加 A3德国波兰 G2法国瑞士 F2巴西克罗地亚 使用SQL语言查询 join nation number matchid goal 德国13A11 德国13A31 德国1A10 法国12G23 巴西6F20 德国1A30 使用SQL语言查询 1 检索参加比赛场次为A1的球员的代表队以及身披号码 德国13A1 德国1A1 使用SQL语言查询 Fromjoin Wherematchid A1 Selectnation number 1 检索参加比赛场次为A1的球员的代表队以及身披号码 德国1A3 德国13A3 使用SQL语言查询 德国13A1 德国1A1 2 检索参加比赛场次为A1或A3的球员的代表队以及身披号码 使用SQL语言查询 Fromjoin Wherematchid A1 SelectDistinctnation number Ormatchid A3 去除重复元组 2 检索参加比赛场次为A1或A3的球员的代表队以及身披号码 使用SQL语言查询 3 检索参加比赛场次为A1或A3的球员的代表队以及身披号码 想一想 这样做对吗 使用SQL语言查询 有某一数据项既是A1又是A3的吗 使用SQL语言查询 使用SQL语言查询 笛卡儿积连接后的结果 使用SQL语言查询 FromjoinASX joinASY WhereX nation Y nationAndX number Y number SelectX nation X number AndX matchid A1 AndY matchid A3 指明是哪张表的nation number 3 检索参加比赛场次为A1或A3的球员的代表队以及身披号码 一张表使用多次时 必须要给它命名成不同的名字 使用SQL语言查询 4 检索参加比赛场次为A1的球员的代表队以及身披号码和姓名 nationnumber nationnumber 使用SQL语言查询 德国13巴拉克中场A11 自然连接后的结果 德国13巴拉克中场A11 德国13巴拉克中场A31 德国1莱曼守门员A10 德国1莱曼守门员A10 德国1莱曼守门员A30 法国12亨利前锋G23 巴西6卡洛斯后卫F20 使用SQL语言查询 德国13巴拉克中场A11 德国1莱曼守门员A10 使用SQL语言查询 连接查询 Fromplayer join Whereplayer nation join nationAndplayer number join number Selectplayer nation player number name Andmatchid A1 4 检索参加比赛场次为A1的球员的代表队以及身披号码和姓名 使用SQL语言查询 4 检索参加比赛场次为A1的球员的代表队 身披号码和姓名 德国13A1 德国1A1 使用SQL语言查询 语句为 查询结果为 使用SQL语言查询 德国13巴拉克中场 德国1莱曼守门员 使用SQL语言查询 语句为 德国 13 德国 1 父查询 子查询 使用SQL语言查询 答案2 嵌套查询 Fromplayer Where nation number IN Selectnation number name 不相关子查询 使用SQL语言查询 4 检索参加比赛场次为A1的球员的代表队 身披号码和姓名 德国13巴拉克 德国1莱曼 法国12亨利 巴西6卡洛斯 使用SQL语言查询 答案3 嵌套查询 Fromplayer Where A1 IN Selectnation number name 相关子查询 4 检索参加比赛场次为A1的球员的代表队 身披号码和姓名 使用SQL语言查询 4 检索参加比赛场次为A1的球员的代表队 身披号码和姓名 德国13巴拉克 德国1莱曼 法国12亨利 巴西6卡洛斯 使用SQL语言查询 Fromplayer WhereEXISTS Selectnation number name FromSC Where

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论