sql作业2答案
- 格式:doc
- 大小:22.00 KB
- 文档页数:1
大工14秋《SQL数据库系统及应用》在线作业2
一,判断题
1. 聚合函数中SUM函数功能是求和。
A. 错误
B. 正确
?
正确答案:B
2. 常用的比较运算符包含=,>,<,>=,<=,<>,!=等。
A. 错误
B. 正确
?
正确答案:B
3. 比较运算符对多个表达式进行比较,返回TRUE,FALSE等值。
A. 错误
B. 正确
?
正确答案:B
4. 聚合函数中MAX函数功能是求最大值。
A. 错误
B. 正确
?
正确答案:B
5. 比较运算符中!=代表“恒等于”。
A. 错误
B. 正确
?
正确答案:A
6. GROUP BY子句用于对查询结果分组,该语句主要和汇总语句配合使用,比如SUM,AVG,MAX,MIN等。
A. 错误
B. 正确
?
正确答案:B
7. 聚合函数中MIN函数返回一组记录中的某个字段的最大值或者最小值。
A. 错误
B. 正确。
(1) 查找有销售记录的客户编号、名称和订单总额。
命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。
命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。
命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。
命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
第2章 SQL Server简介练习题一、单项选择题1.B 2.C 3.D 4.B 5.C6.D 7.C 8.C 9.B 10.A11.B 12.B二、简答题1.答:客户-服务器结构把整个任务划分为客户机上的任务和服务器上的任务。
客户机上的任务只要有:●建立和断开与服务器的连接。
●提交数据访问请求。
●等待服务通告、接受请求结果或错误。
●处理数据库访问结果或错误、包括重发请求和终止请求。
●提供应用程序的友好用户界面。
●数据输入输出及验证。
服务器上的任务主要有:●为多用户管理一个独立的数据库。
●管理和处理接收到的数据访问请求,包括管理请求队列、管理缓存、响应服务、管理结果和通知服务完成。
●管理用户帐号、控制数据库访问权限和其他安全性。
●维护数据库,包括数据库备份和恢复。
保证数据库数据的完整或为客户提供完整性控制手段。
2.答:(1)两层结构在两层结构中,SQL Server 2000安装在一个中心服务器上,数据库存储在该服务器上,该服务器称为数据库服务器,可以被多台客户机访问。
众多的客户机通过网络直接访问数据库服务器。
客户机运行处理业务的程序和显示处理结果的程序。
两层结构比较适合于用户量较少的情况,当用户量较大时,数据库服务器的性能会显著下降。
(2)三层结构在三层结构中引入了一层应用服务器。
客户机只运行向应用服务器发送请求和显示请求结果的程序,客户机没有处理业务的程序,应用服务器运行处理业务的程序,多个客户机可以同时访问应用服务器,应用服务器负责访问数据库服务器,并取回处理结果,将结果返回给客户机。
三层结构适用于客户量较大的情况。
3.答:SQL Server 2000的四个系统数据库是master、model、msdb和tempdb数据库。
(1)master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息,包括所有的登录帐户信息、系统配置信息、SQL Server的初始化信息和其它系统及用户数据库的相关信息。
数据库中SQL查询语句习题含答案查询问题:设教学数据库Education 有三个关系:学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME )(1)检索计算机系的全体学生的学号,姓名和性别;(2)检索学习课程号为C2的学生学号与姓名;(3)检索选修课程名为“DS ”的学生学号与姓名;(4)检索选修课程号为C2或C4的学生学号;(5)检索至少选修课程号为C2和C4的学生学号;(6)检索不学C2课的学生姓名和年龄;(7)检索学习全部课程的学生姓名;(8)查询所学课程包含学生S3所学课程的学生学号。
(1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM SWHERE Sdept =’CS ’;(2)检索学习课程号为C2的学生学号与姓名;(3)检索选修课程名为“DS ”的学生学号与姓名本查询涉及到学号、姓名和课程名三个属性,分别存放在S 和C 表中,但S 和C 表没有直接联系,必须通过SC 表建立它们二者的联系。
C → SC → S 基本思路:(1)首先在C 表中找出“DS ”课程的课程号Cno ;(2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ;(3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。
SELECT Sno ,Sname FROM SWHERE Sno IN (SELECT Sno FROM SCWHERE Cno IN (SELECT Cno FROM CWHERE Cname=‘DS ’));(4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SCWHERE Cno=‘C2’ OR Cno=‘C4’;(5)检索至少选修课程号为C2和C4的学生学号; SELECT SnoFROM SC X ,SC YWHERE X.Sno=Y.Sno AND/doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C2’ AND /doc/d33e82944b7302768e9951e79b89680202d86b33.html o=‘C4’;(6)检索不学C2课的学生姓名和年龄;(7)检索学习全部课程的学生姓名;在表S 中找学生,要求这个学生学了全部课程。
SQL作业:第三章:课后习题2:(1)select sno,sn ame from stude nt where height>1.80 ⑵select eno ,credit from course where semester秋' and eno like 'CS%';⑶select sn ame,c.c no ,credit,grade from stude nt s,course c,scwhere s.s no=sc.s no and o=sc.c no and c.c no like 'CS%' and seX="a nd semester=' 秋'and grade is not n ull ⑷select sn ame from stude nt s,scwhere s.s no=sc.s no and eno like 'EE%' and sex女' or: select sn ame from stude nt s,scwhere s.s no=sc.s no and eno like 'EE%' and sex女' group by s.s no,sn ame hav ing coun t(cno) >=1 ⑸select sno ,co un t(c no ),avg(grade) from sc where grade is not n ullgroup by sno ⑹select cn o,co un t(s no ),max(grade),mi n( grade),avg(grade) from sc where grade is not n ull group by eno⑺select s.s no,sn ame from stude nt s,scwhere s.s no=sc.s no and s.s no not in( select sno from sc where grade is nu II) and grade is not n ullgroup by s.s no,sn ame hav ing min( grade)>=80 (8)select sn ame,sc.c no ,credit from stude nt s,course c,sc where s.s no=sc.s no and o=sc.c no and grade is null(9)select sn ame from stude nt s,course c,sc where s.s no=sc.s no and sc.c no=c.c no and credit>=3 and grade<70 or: select sn ame from stude nt s,course c,scwhere s.s no=sc.s no and sc.c no=c.c no and credit>=3 group by sc.s no,sn ame hav ingmin( grade)<70 (10)select sn ame,avg(grade),sum(credit) from stude nt s,course c,scwhere s.s no=sc.s no and sc.c no=c.c no and year(bdate) betwee n 1974 and 1976 group by sc.s no,sn ame习题3:delete from Stude ntswhere SNO LIKE '91%'delete from SCwhere SNO LIKE '91%'习题4:INSERT INTO Stude nts(SNO,SNAME,SEX,BDATE,HEIGHT)VALUES ('9409101','何平','女','1977-03-02',1.62)INSERT INTO Stude nts(SNO,SNAME,SEX,BDATE,HEIGHT)VALUES ('9408130','向阳','男','1976-12-11',1.75)习题5:UP DATE CoursesSET CREDIT=3,LHOUR=60WHERE CNAME='CS-221'补充题:试写出下述查询的SELECT命令1.1查c4比c16成绩好但比c9成绩差的课程及其成绩; select course-n ame,gradefrom stude nt s4,sc sc4,course cou4,stude nt s16,sc sc16,course cou16,stude nt s9,sc sc9,course cou9where s4.s no=sc4.s no and cou4.c no=sc4.c no and s4.s name='c4' ands16.s no=sc16.s no and cou16.c no=sc16.c no and s16.s name='c16' and s9.s no=sc9.s no and cou9.c no=sc9.c no and s9.s name='c9' and and sc4.c no=sc16.c no and sc4.c no=sc9.c nosc4.grade>sc16.grade and sc4.grade<sc9.grade1.2查修过计算机系课程,但未修过电机系课程的学生的数量select coun t(disti net sno)from sc,coursewhere sc.c no=couse.c no and cn ame like 'cs%' andsno not in (select sno from sc,course where sc.c no=course.c no and cn ame like 'ee%')1.3列出学生张学友不比学生李连杰成绩高的课程名及其成绩;select ame,z.grade from (select eno ,grade from sc sc1,stude nt s1 where scl.s no=s1.s no and s1.s name张'学友')as z(c no ,grade),(select eno ,grade from sc sc2,stude nt s2where sc2.s no=s2.s no and s2.s name李连杰') as l(c no ,grade),coursecwhere z.c no=l.c no and z.grade<=l.grade and z.c no=c.c noF面的题目要利用db2中的sample数据库empio yee(eid,e name,de pt_id,salary); manager(eid,de pt-id);sale(eid,district,sale-year,sale-m on th,sale-goods,sale-am oun t);2.寻找一个部门中,工资数额多于本部门一半人的工资数额的雇员的名字和工资和部门编号.select en ame, salary, dep t-idfrom empio yee ewhere (select coun t(*) from empio yee where dep t_id=e.de pt_id)/2 <=(select coun t(*) from empio yee where dep t_id=e.de pt_id and salary<e.salary)3寻找职员和经理有相同名字的部门select dept_idfrom man ager,e mpio yee ewhere man ager.eid=e mpIo yee.eid andexists (select en amefrom empi yee where eid!=e.eid and e.de pt_id=de pt.id and e.e name=e name)4找有相同职员数的部门名对select d1.de pt_id, d2.de pt_idfrom empio yee d1, empio yee d2where d1.de pt_id>d2.de pt_id and(select coun t(*) from empI yee where dep t_id=d1.de pt_id)= (select coun t(*) from empi yee where dep t_id=d2.de pt_id)5分别按年月,按区域和销售人员统计(最大)销售额.select sum(sale-am ount) from sale sgroup by distirct, sale-year,sale-m on th, eidhav ing sum(sale-am ount) >= all (select sum(sale-am ount)from sale s1where s1.district=s.district and s1.sale-year=s.sale-year ands1.sale-m on th=s.sale-mo nthgroup by distirct, sale-year,sale-m on th, eid)附sample数据库模式empio yee(eid,e name,de pt_id,salary); man ager(eid,de pt_id);sale(eid,district,sale-year,sale_m on th,sale-goods,sale-am oun t).6用SQL命令产生如下的关系模式:供应者supplier(sno, sname, city)主键是sno 部件part(pno,pname,color,weight),主键是pno 工程job(jno,jname,city),主键是jno 供应数量spj(sno,pno,jno,quantity)主键是(sno pno jno) 各个字段的类型自行定义,但需满足如下的约束:part中的weight应大于100;supplier中的city取值范围是(上海西安南京);spj中如果quantity小于10,则删除该记录;spj 中的sno、pno、jno 分^和supplier.sno part.pno、job.jno 相关联,并且女口a b c d果supplier、part或job中的记录被删除,则spj的相关记录也被删除。
大工21秋《SQL数据库系统及应用》在线作业2试卷总分:100 得分:1001.在SQL的select语句中,如果要过滤结果中的重复行,可以在字段列表前面加上()。
<-A.->group<-B.->order<-C.->top<-D.->distinct【本题正确参考选择】:D2.在select语句中如果要对得到的结果中某个字段按降序处理,则使用()参数。
<-A.->asc<-B.->desc<-C.->between<-D.->and【本题正确参考选择】:B3.查询学校员工工资信息时,结果按工资降序排列,正确的是()。
<-A.->ORDERBY工资<-B.->ORDERBY工资desc<-C.->ORDERBY工资asc<-D.->ORDERBY工资and【本题正确参考选择】:B4.当使用SQL语句进行分组检索时,为了按照一定的条件对分组后的数据进行筛选,应当()。
<-A.->在join后面使用betweento子句<-B.->在groupby后面使用having子句<-C.->在where后面使用orderby子句<-D.->在join后面使用orderby子句【本题正确参考选择】:B5.在SQL查询语句中,HAVING子句的作用是()。
<-A.->指出排序的范围<-B.->指出查询结果的最大值<-C.->指出分组查询的条件<-D.->指出创建数据表的字段【本题正确参考选择】:C6.以下关于HAVING子句描述错误的是()。
<-A.->HAVING子句允许与GROUPBY子句同时使用<-B.->使用HAVING子句的同时不能使用WHERE子句<-C.->使用HAVING子句的同时可以使用WHERE子句<-D.->使用HAVING子句的作用是限定分组的条件。
大连理工大学20年秋季学期《SQL数据库系统及应用》
在线作业2附参考答案
试卷总分:100 得分:100
一、单选题 (共 10 道试题,共 50 分)
1.在SQL的select语句中,如果要过滤结果中的重复行,可以在字段列表前面加上( )。
A.group
B.order
C.top
D.distinct
答案:D
2.在select语句中如果要对得到的结果中某个字段按降序处理,则使用( )参数。
A.asc
B.desc
C.between
D.and
答案:B
更多加微boge30619
3.查询学校员工工资信息时,结果按工资降序排列,正确的
是( )。
A.ORDER BY 工资
B.ORDER BY 工资 desc
C.ORDER BY 工资 asc
D.ORDER BY 工资 and
答案:B
4.当使用SQL语句进行分组检索时,为了按照一定的条件对分组后的数据进行筛选,应当( )。
A.在join后面使用between to子句
B.在group by后面使用having子句
C.在where后面使用order by子句
D.在join后面使用order by子句
答案:B
5.在SQL查询语句中,HAVING子句的作用是( )。
A.指出排序的范围
B.指出查询结果的最大值
C.指出分组查询的条件
D.指出创建数据表的字段
答案:C。
设有关系:
SB(SNO,SNAME,CITY)
其中SNO为供应商代号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SNO。
PB(PNO,PNAME,COLOR,WEIGHT)
其中PNO为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主关键字为PNO。
JB(JNO,JNAME,CITY)
其中JNO为工程编号,JNAME为工程名字,CITY为工程所在城市,主关键字为JNO。
SPJ(SNO,PNO,JNO,QTY)
其中SNO是为指定工程提供零件的供应商代号,PNO为所提供的零件代号,JNO为工程编号,QTY表示提供的零件数量,主关键字为(SNO,PNO,JNO),SNO、PNO、JNO均为外码。
作业:
1.查询所有工程的全部信息。
Select * from jb
2.查询所在城市为上海的所有工程的编号和名字。
Select jno,jname from jb where city=’上海’
3.查询为工程号为J1的工程提供零件的供应商代号。
Select sno from spj where jno=’j1’
4.查询为工程号为J1的工程提供零件号为P1的零件的供应商代号
Select sno from spj where jno=’j1’ and pno=’p1’
5.查询为工程J1或J2提供零件的供应商代号
Select sno from spj where jno=’j1’ or jno=’j2’
6.查询为工程提供的零件数在400以上的供应商代号和零件代号
Select sno , pno from spj where qty>400
7.查询已开始供应零件的供应商代号
Select sno from spj
8.查询零件颜色为红色的零件代号和零件名字
Select pno,pname from pb where color=’红’。