还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一在数据库中建立表school student,sc,course学生表、课程表、选课表属于数据库,其各自的数据结构如下school学生student sno,sname,ssex,sage,sdept课程表course eno,cname,epno,ccredit学生选课sc sno,eno,grade二设定主码表的主码表的主码表的主码
1.student sno2course eno3sc sno,eno写出访用语句创建表的语句1create tablestudent,sc,course sql2删除表中的元组3student在数据库中删除关系4school student在表添加属性类型5student sbirthdate datetime delete删除全部系的男生
1.jsj delete from student where sdept=jsj and男;删除“数据库原理”的课的选课纪录ssex=2数deletefrom sc where eno in select eno fromcourse where cname=据库原理;update修改学生的系科为
1.0001jsj.把陈小明的年龄加岁,性别改为女修改李文庆的课程的成果2121001为分把“数据库原理”课的成果减去分9331查询语句select一单表查询年龄在至岁之间的女生的学号,姓名,年龄,按年龄从大到小排11921列查询姓名中第个字为“明”字的学生学号、性别查询课程没有2231001成果的学生学号、课程号查询、、系的年龄大于岁的学生学号,姓名,结果按系排列4jsj sxwl255按分制查询学生的分制成果10sno,eno,10分为分为分为为1-101,11-202,30-393,90T0010查询表中的学生共分布在那几个系中查询号学6student distinct70001生课程的成果1001,1002二统计查询姓名中有“明”字的学生人数计算系的平均年龄与最大年,12jsj龄查询学生中姓名为张明、赵英的人数3币种代码⑵、币种代码⑵、买入价、卖出价1C2C n8,4n8,4外汇汇率.dbf币种、币种、买入价、卖出价1c42c4n8,4n8,4外汇代码.dbf外汇名称外汇代码c10,c10要求将全部“外汇汇率”表中的数据插入表中并且依次不变,由于rate“外汇汇率”中的币种和币种存放的是外币名称,而表中的币种代12rate1码和币种代码应当存放外币代码,所以插入时要做相应的改动,外币名称与外2向代码的对应关系存储在“外汇代码”表中外币代码币种代码,外币代码币种代码,;select a.as1b.as2买入价,卖出价外汇代码外汇汇率,外汇代码from a,b;外币名称二外汇汇率.币种外币名称二外汇汇率.币种where a.1and b.2into tablerate、假定有表雇员号雇员姓名经理号依据雇员“雇员”4c2,c6,c2,关系列出上一级经理与其所领导的职员清单教案中的例题领导,雇员姓名,雇员,雇员姓名雇员雇员select s.e.from s,e wheres.雇员号二经理e.三超连接、列出选修号课的学生姓名与成果11方法一运用简洁连接查询格式姓名,成果学生,选课学生.学号二选课.学号课号select from where and二1方法二运用内部连接格式姓名,成果学生选课学生.学号二选课.学号select frominner join on where课号二方法三内部连接的短语可以省略与方法二等价1inner姓名,成果学生选课学生.学号二选课.学号课select fromjoin on where号二
1、查询订货管理数据库中数据的仓库号、城市、供应商名和地址信息2方法一运用简洁连接格式仓库.仓库号,城市,供应商名,地址供应商,订购单,职工,仓select from库;供应商.供应商号二订购单.供应商号订购单.职工号二职工.职工where and号;职工.仓库号二仓库.仓库号and方法二运用超连接的内部连接格式留意连接条件的依次仓库.仓库号,城市,供应商名,地址供应商订购单select fromjoin join职工仓库;职工.仓库号二仓库.仓库号订购单.职工号工职工.职工join on on号供应商.供应商号二订购单.供应商号on、查询没有选修任何课程的学生姓名3方法一运用嵌套查询姓名学生学号学号选课)方(select from where not in select from法二运用超连接的右连接姓名选课学生选课.学号二学生.学号选select fromright joinon where课.学号学生.学号lt;gt;方法三运用超连接的左连接(留意表名依次和方法二的不同)姓名学生选课选课.学号二学生.学号选课.select fromleft joinon where学号学生.学号lt;gt;
三、嵌套查询
(一)一般嵌套与谓词exists、列出选修汇编语言课的学生的学号1方法一学号选课课号二课号课程课(select from where select from where名二汇编语言)方法二运用谓词留意和方法一格式上的不同exists学号选课课程(;select from where exist select*from课名工汇编语言选课.课号二课程.课号)where and、求软件专业全部必修课的课程信息2方法一课程课号课号必修课(select*from where in;select from where必修专业二软件)方法二课程必修课必修专(select*from where exist select*from where业二软件;课程.课号二必修课.课号)and
(二)量词、any someall、求选修号课的学生中,成果比选修号课的最低成果要高的学生的学121号和成果方法一学号,成果选课课号二成果select from where2and gt;;(成果)选课课号二()select minfrom where1方法二等价于所以可将换成any some,any some学号,成果选课课号二成果select from where2and gt;any;成果选课课号()select from where=
1、求选修号课的学生中,成果比选修号课的任何学生的成果都要高的221那些学生的学号和成果计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列4计算课程的平均分51001,1002查询平均分大于分的学生学号与平均分统计选修课程超过门的学生68072学号统计有位成果大于分以上的课程号统计平均分不与格的学生学810859号统计有大于两门课不与格的学生学号10三连接查询系的学生选修的课程号1jsj查询选修课程的学生的学生姓名不用嵌套与嵌套种方法210022查询数据库原理不与格的学生学号与成果3查询选修“数据库原理”课且成果以上的学生姓名不用嵌套与嵌套4802种方法查询平均分不与格的学生的学号,姓名,平均分查询女学生平均分56高于分的学生姓名75查询男学生学号、姓名、课程号、成果一门课程也没有选修的男学生7也要列出,不能四嵌套、相关与其他查询平均分不与格的学生人数
1.查询没有选修课程的学生的学生姓名
2.1002查询平均分最高的学生学号与平均分种方法查询
3.2top,any,all*4没有选修课程的学生姓名1001,1002查询课程第一名的学生学号种方法查询平均分前三名的学生学5100226号查询系的学生与年龄不大于岁的学生的差集7jsj19查询号课程大于分的学生学号、姓名与平均分大于分的学生810019085学号、姓名查询每门课程成果都高于该门课程平均分的学生学号查询大于910本系科平均年龄的学生姓名答案参考答案
1.create tablestudent snochar6,sname varchar8,ssexchar2,sagesmallint,sdept varchar15,primary keysno;create tablescsnochar6,eno char4,grade decimal12,2,primary keysno,eno;insert intostudent赵茵,男values4001J20,sxdelete from studentdrop tablestudentalter tablestudent addsbirthdatedatetime
1.select sno,sname,sage from student女where ssex=and sagebetween19and21order bysage desc;2select sno,ssexfrom student—明%’;where snamelike3select sno,cnofrom scwheregrade isnull andcno=1001;4select sno,sname from studentwhere sdeptinjsj,sx,wland sagegt;25group bysdept;select sno,eno,grade/
10.0+1as levelfrom sc;select distinctsdept from student;select grade from scwhere sno=0001and eno=1001or eno=1002;%明%’;select count*from student where snamelike=,select avgsage,maxsage from student wheresdept jsj;select eno,sum grade,avggrade,maxgrade,mingrade from sc groupby enoorder byavggrade desc;select eno,avggrade from sc whereeno inT001,‘1002groupbyeno;select sc.sno,avg grade from segroup by sc.snohaving avggradegt;80;select sno from sc group by sno havingcount*gt;2;select enofrom sc where gradegt;85group byeno havingcount*=10;select sno from sc group by sno havingavg gradelt;60;select sno from sc where gradelt;60group bysno havingcount*gt;2;select enofrom student,scwherestudent.sno=sc.sno andsdept=jsj;a:select sname from student,sc wherestudent.sno=sc.sno and eno=1002’b:select snamefrom studentwhere snoin select snofrom sc whereeno=1002select sno,gradefrom sc,course数据库原理where sc o=course oand cname=and gradelt;60a:select snamefrom student,sc,coursewhere student.sno=sc.sno and sco=course oand gradegt;80and cname=数据库原理b:select snamefromstudentwhere snoinselect snofrom scwhere gradegt;80andenoin selectenofrom course数据库原理,=,wherecnameselect sno,sname,avggrade from sc,studentwhere student.sno=sc.snogroup bystudent,sno havingavggradelt;60女a:select snamefromstudentwhere ssex=and snoin select snofromsc group bysno havingavg gradegt;75女b:select snamefromsc,studentwherestudent.sno=sc.sno andssex=group bystudent,sno havingavg gradegt;75select student,sno,sname,eno,gradefromstudent left join sc男on student.sno=sc.sno andssex=select count*fromstudentwhere snoinselect snofromsc groupbysno havingavggradelt;60select snamefromstudentwhere snonotinselect snofromscwhereeno=1002student0001aax0002bb0003ccx sc00011001000110020002100100031002select snamefromstudentwhere not existsselect*fromscwhereeno=1002andsc.sno=student snoa:select top1sno,avggrade fromscgroup bysnoorder byavggradedesc b:select sno,avggrade fromscgroupby snohavingavg grade=select top1avggradefrom segroupbysnoorderby avggrade desc c:selectsno,avggrade fromscgroupby snohavingavggradegt;=al1select avggradefromscgroupby snoselectsnamefromstudentwhere notexistsselect*fromcourse whereenoin1001’,‘1002andnot existsselect*fromscwheresno=student,sno andcno=courseoa:select top1snofromsc eno=1002order bygradedescb:selectsno fromscwhereeno=1002and grade(篇二语句强化练习题与答案语句强化练习题与答案gt;=all sqlsql
一、简洁查询、列出全部学生的信息1学生select*from、列出软件专业全部学生的学号与姓名2学号,姓名学生专业二软件select from where、列出全部必修课的课号3课号必修课select distinctfrom、求号课成果大于分的学生的学号与成果,并按成果由高到低列出4180学号,成果选课课号二成果select from where1and gt;80order by成果desc、列出非软件专业学生的名单5方法一姓名学生专业软件select from where方法二姓名学生专业二软件select from where not方法三姓名学生专业!二软件select from where、查询成果在分之间的学生选课得分状况〜67080方法一选课成果二成果二select*from wheregt;70and lt;80方法二选课成果select*from wherebetween70and80不在此范围内的查询(留意写出和以下语句等价的语句)选课成果select*from where not between70and
80、列出选修号课或号课的全体学生的学号和成果713方法一学号,成果选课课号二课号二select from where1or3方法二学号,成果选课课号()select fromwhere in1,3相反条件查询学号,成果选课课号()select fromwhere notin1,
3、列出全部级学生的学生成果状况898选课学号select*fromwherelike98%选课学号__________select*fromwherelike98相反条件查询选课学号select*fromwhere not like98%、列出成果为空值(或不为空值)的学生的学号和课号9答案一学号,课号选课成果select fromwhere isnull答案二学号,课号选课成果select fromwhere isnot null、求出全部学生的总成果10成果)总成果选课(select sumas from、列出每个学生的平均成果11学号,(成果)平均成果选课学号select avgas from groupby、列出各科的平均成果、最高成果、最低成果和选课人数12课号,(成果)平均成果,成果)最高分,;(select avgas maxas(成果)最低分,(学号)选课人数选课课min ascount as from groupby号
二、连接杳询
(一)简洁连接、列出选修号课的学生姓名与成果11姓名,成果学生,选课学生,学号二选课,学号课号select fromwhere and二
1、列出选修号课的学生的学号、姓名与成果21学生.学号,姓名,成果学生选课学号二学号select froms,x wheres.x.课号二and
1、求出总分大于的学生的学号、姓名与总成果3150学生.学号,姓名,成果总成果学生,选课;select sumas from学生.学号二选课.学号选课.学号成果where groupby havingsum gt;150二自连接查询、列出那些专业相同的学生相应的姓名与专业信息1姓名,姓名,专业学生学生学号select a.b.from a,b where a.学号专业二专业and a.b.、求至少选修号课和号课的学生的学号212学号选课选课学号二学号课号select x.from x,y wherex.y.and x.二课号二1and y.
2、有以下表3rate,dbf币种代码⑵、币种代码⑵、买入价、卖出价1c2c n8,4n8,4外汇汇率.dbf币种、币种、买入价、卖出价1c42c4n8,4n8,4外汇代码.dbf外汇名称外汇代码>c10c10要求将全部“外汇汇率”表中的数据插入表中并且依次不变,由于rate“外汇汇率”中的币种和币种存放的是外币名称,而表中的币种代12rate1码和币种代码应当存放外币代码,所以插入时要做相应的改动,外币名称与外2向代码的对应关系存储在“外汇代码”表中外币代码币种代码,外币代码币种代码,;select a.as1b.as2买入价,卖出价外汇代码外汇汇率,外汇代码from a,b;外币名称二外汇汇率.币种外币名称二外汇汇率.币种wherea.1and b.2into tablerate、假定有“雇员”表雇员号雇员姓名经理号依据雇4c2,c6,c2,员关系列出上一级经理与其所领导的职员清单教案中的例题领导,雇员姓名,雇员,雇员姓名雇员雇员selects.e.froms,ewheres.雇员号二经理e.三超连接、列出选修号课的学生姓名与成果11方法一(运用简洁连接查询格式)姓名,成果学生,选课学生,学号二选课,学号课号select fromwhere and二1方法二(运用内部连接格式)姓名,成果学生选课学生.学号二选课.学号select frominner joinon where课号二方法三内部连接的短语可以省略(与方法二等价)1inner姓名,成果学生选课学生.学号二选课.学号课select fromjoinon where号二
1、查询订货管理数据库中数据的仓库号、城市、供应商名和地址信2息、J O方法一运用简洁连接格式仓库.仓库号,城市,供应商名,地址供应商,订购单,职工,仓select from库;供应商.供应商号二订购单.供应商号订购单,职工号二职工.职工where and号;职工.仓库号二仓库.仓库号and方法二运用超连接的内部连接格式(留意连接条件的依次)仓库.仓库号,城市,供应商名,地址供应商订购单select fromjoin join职工仓库;join职工.仓库号二仓库.仓库号订购单.职工号二职工.职工号供应商.ononon供应商号二订购单.供应商号、查询没有选修任何课程的学生姓名3方法一运用嵌套查询姓名学生学号学号选课)(select fromwherenotinselect from方法二运用超连接的右连接姓名选课学生选课.学号二学生.学号选select fromright joinonwhere课.学号学生.学号lt;gt;方法三运用超连接的左连接(留意表名依次和方法二的不同)姓名学生选课选课.学号二学生.学号选课.select fromleftjoinonwhere学号学生.学号lt;gt;
三、嵌套查询
(一)一般嵌套与谓词exists、列出选修汇编语言课的学生的学号1方法一学号选课课号二课号课程课(select fromwhere select fromwhere名:汇编语言)方法二运用谓词留意和方法一格式上的不同exists学号选课课程;(select fromwhereexistselect*from课名二汇编语言选课.课号二课程.课号)where and、求软件专业全部必修课的课程信息2方法一课程课号课号必修课(select*fromwherein;select from必修专业二软件)方法二where课程必修课必(select*fromwhereexistselect*fromwhere修专业二软件;课程.课号二必修课.课号)and
(二)量词、、any someall、求选修号课的学生中,成果比选修号课的最低成果要高的学生的学121号和成果方法一学号,成果选课课号二成果select fromwhere2and gt;;(成果)选课课号()select minfromwhere=1方法二等价于所以可将换成篇三语句强化练any some,any somesql习题与答案语句强化练习题与答案sql
一、简洁查询、列出全部学生的信息1学生select*from、列出软件专业全部学生的学号与姓名2学号,姓名学生专业二软件select fromwhere、列出全部必修课的课号3课号必修课select distinctfrom、求号课成果大于分的学生的学号与成果,并按成果由高到低列出4180学号,成果选课课号二成果select fromwhere1and gt;80order by成果desc、列出非软件专业学生的名单5方法一姓名学生专业软件select fromwhere方法二姓名学生专业二软件select fromwherenot方法三姓名学生专业!二软件select fromwhere、查询成果在分之间的学生选课得分状况〜67080方法一选课成果成果select*fromwheregt;=70and lt;=80方法二选课成果select*fromwherebetween70and80不在此范围内的查询(留意写出和以下语句等价的语句)选课成果select*fromwherenot between70and
80、列出选修号课或号课的全体学生的学号和成果713方法一学号,成果选课课号课号select fromwhere=1or=3方法二学号,成果选课课号()select fromwherein1,3相反条件查询学号,成果选课课号()select fromwherenotin1,
3、列出全部级学生的学生成果状况898选课学号select*fromwherelike98%选课学号__________select*fromwherelike98相反条件查询选课学号select*fromwherenot like98%、列出成果为空值(或不为空值)的学生的学号和课号9答案一学号,课号选课成果selectfromwhere isnull答案二学号,课号选课成果selectfromwhere isnot null、求出全部学生的总成果10成果)总成果选课(select sumas from、列出每个学生的平均成果11学号,(成果)平均成果选课学号select avgas fromgroupby、列出各科的平均成果、最高成果、最低成果和选课人数12课号,(成果)平均成果,成果)最高分,;(select avgas maxas(成果)最低分,(学号)选课人数选课课min ascount asfromgroupby号
二、连接查询
(一)简洁连接、列出选修号课的学生姓名与成果11姓名,成果学生,选课学生.学号二选课.学号课号selectfromwhere and二
1、列出选修号课的学生的学号、姓名与成果21学生.学号,姓名,成果学生选课学号二学号selectfroms,x wheres.x.课号二and
1、求出总分大于的学生的学号、姓名与总成果3150学生.学号,姓名,成果)总成果学生,选课;(select sumasfrom学生•学号二选课•学号选课.学号(成where groupby havingsum果)gt;150
(二)自连接查询、列出那些专业相同的学生相应的姓名与专业信息1姓名,姓名,专业学生学生学号select a.b.from a,b wherea.学号专业二专业and a.b,、求至少选修号课和号课的学生的学号212学号选课选课学号二学号课号select x.from x,y wherex.y.and x.二课号二1and y.
2、有以下表3rate,dbf。