《SQL的数据查询》PPT课件_第1页
《SQL的数据查询》PPT课件_第2页
《SQL的数据查询》PPT课件_第3页
《SQL的数据查询》PPT课件_第4页
《SQL的数据查询》PPT课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

.,1,SQL的数据查询,天津师范大学刘洋,.,2,一个问题,2006年6月,举世瞩目的第18届世界杯在德国举行,某网站为了方便球迷查询,在自己的网站上设立了世界杯信息查询系统。该系统的一部分要求为:一名球员可以参加多场比赛,每场比赛有多名球员参加。,.,3,概念模型,请你为该系统的这一部分设计一个ER模型,画出ER图。要求:“球员”的属性有:姓名,代表国,号码,年龄,位置“比赛”的属性有:比赛编号,比赛甲方,比赛乙方,比赛类型在联系中反映出球员参加比赛的出场时间,进球数,.,4,概念模型ER图,球员,比赛,m,n,.,5,概念模型关系数据模型,球员关系,player(nation,number,name,age,position),主码:,(nation,number),.,6,概念模型关系数据模型,想一想,如果只是number作为主码可以吗?,.,7,概念模型关系数据模型,不可以,因为不同国家队中有相同的号码,.,8,概念模型关系数据模型,比赛关系,match(matchid,match_a,match_b,matchtype),主码:,matchid,.,9,概念模型关系数据模型,player(nation,number,name,age,position),match(matchid,match_a,match_b,matchtype),matchid,nation,number,join(,),time,goal,Player的主码,match的主码,Join自己的属性,.,10,SQL语言,CREATE,.,11,使用SQL语言创建基本表,player(nation,number,name,age,position),Createtableplayer-球员表namechar(20),-姓名nationchar(20),-代表国numberint-号码ageint,-年龄positionchar(10)-位置定义主码,check(numberbetween1to23),check(positionin(守门员,后卫,中场,前锋),primarykey(nation,number),.,12,使用SQL语言创建基本表,match(matchid,match_a,match_b,matchtype),Createtablematch-比赛表matchidintprimarykey,-比赛编号(主码)match_achar(20),-比赛甲方match_bchar(20),-比赛乙方matchtypechar(10)check(matchtypein(小组赛,淘汰赛)比赛类型,.,13,使用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),.,14,SQL语言,SELECT,.,15,Select语句的基本句法,select-From-Where句型,A1,An(F(R1Rm)),FromR1,Rm,WhereF,SelectA1,An,这里R1、Rn为关系,F是公式,A1、An为属性。,R1Rm,F,A1,An,.,16,使用SQL语言查询,世界杯数据库中有三个基本表(关系):,player(nation,number,name,position),德国13巴拉克中场,法国12亨利前锋,德国1莱曼守门员,巴西6卡洛斯后卫,.,17,使用SQL语言查询,match(matchid,match_a,match_b),A1德国哥斯达黎加,A3德国波兰,G2法国瑞士,F2巴西克罗地亚,.,18,使用SQL语言查询,join(nation,number,matchid,goal),德国13A11,德国13A31,德国1A10,法国12G23,巴西6F20,德国1A30,.,19,使用SQL语言查询,1、检索参加比赛场次为A1的球员的代表队以及身披号码,德国13A1,德国1A1,.,20,使用SQL语言查询,Fromjoin,Wherematchid=A1,Selectnation,number,1、检索参加比赛场次为A1的球员的代表队以及身披号码,.,21,德国1A3,德国13A3,使用SQL语言查询,德国13A1,德国1A1,2、检索参加比赛场次为A1或A3的球员的代表队以及身披号码,.,22,使用SQL语言查询,Fromjoin,Wherematchid=A1,SelectDistinctnation,number,Ormatchid=A3,去除重复元组。,2、检索参加比赛场次为A1或A3的球员的代表队以及身披号码,.,23,使用SQL语言查询,3、检索参加比赛场次为A1或A3的球员的代表队以及身披号码,想一想,这样做对吗?,.,24,使用SQL语言查询,有某一数据项既是A1又是A3的吗?,.,25,使用SQL语言查询,.,26,使用SQL语言查询,笛卡儿积连接后的结果,.,27,使用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的球员的代表队以及身披号码,一张表使用多次时,必须要给它命名成不同的名字。,.,28,使用SQL语言查询,4、检索参加比赛场次为A1的球员的代表队以及身披号码和姓名,nationnumber,nationnumber,.,29,使用SQL语言查询,德国13巴拉克中场A11,自然连接后的结果,德国13巴拉克中场A11,德国13巴拉克中场A31,德国1莱曼守门员A10,德国1莱曼守门员A10,德国1莱曼守门员A30,法国12亨利前锋G23,巴西6卡洛斯后卫F20,.,30,使用SQL语言查询,德国13巴拉克中场A11,德国1莱曼守门员A10,.,31,使用SQL语言查询,连接查询,Fromplayer,join,Whereplayer.nation=join.nationAndplayer.number=join.number,Selectplayer.nation,player.number,name,Andmatchid=A1,4、检索参加比赛场次为A1的球员的代表队以及身披号码和姓名,.,32,使用SQL语言查询,4、检索参加比赛场次为A1的球员的代表队、身披号码和姓名,德国13A1,德国1A1,.,33,使用SQL语言查询,语句为:,查询结果为:,.,34,使用SQL语言查询,德国13巴拉克中场,德国1莱曼守门员,.,35,使用SQL语言查询,语句为:,(德国,13),(德国,1),父查询,子查询,.,36,使用SQL语言查询,答案2:嵌套查询,Fromplayer,Where(nation,number)IN,Selectnation,number,name,不相关子查询,.,37,使用SQL语言查询,4、检索参加比赛场次为A1的球员的代表队、身披号码和姓名,德国13巴拉克,德国1莱曼,法国12亨利,巴西6卡洛斯,.,38,使用SQL语言查询,答案3:嵌套查询,Fromplayer,WhereA1IN,Selectnation,number,name,相关子查询,4、检索参加比赛场次为A1的球员的代表队、身披号码和姓名,.,39,使用SQL语言查询,4、检索参加比赛场次为A1的球员的代表队、身披号码和姓名,德国13巴拉克,德国1莱曼,法国12亨利,巴西6卡洛斯,.,40,使用SQL语言查询,Fromplayer,WhereEXISTS,Selectnation,number,name,FromSC,Wherejoi

温馨提示

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

评论

0/150

提交评论