sql笔试

问题1:

现有学生课程数据库的三张表:
学生表 Student(Sno,Sname,Ssex,Sage,Sdept): Sno-学号,Sname-姓名,Ssex-性 别,Sage-年龄,Sdept-所在系
课程表 Course(Cno,Cname,Cpno,Ccredit):Cno-课程号,Cname-课程名,Cpno-选 修课号,Ccredit-学分
学生选课表 SC(Sno,Cno,Grade):Sno-学号,Cno-课程导,Grade-成绩
1、求各个课程号及其相应的选课人数,按照选课入数降序排列
2、求所有学生的姓名以及其选修课程的课程名。注意有部分学生未选任何课程
3、求与“张三”在同一个系学习的学生学号和姓名
4、查询没有选修 1 号课程的学生姓名
5、将计算机系(Sdept=‘CS’)全体学生的的选课成绩改为 100

参考答案

1、select cno,count(*) rs from sc group by cno order by rs desc
2、select sname,cname from student left join sc on student.sno=course.sno left join course on course.cno=sc.cno
3、select sno,sname from student where sdept=(select sdept from student where sname=’ 张三’)
4、select sname from student where sno in(select sno from sc where cno!=‘1’)
5、update sc set grade=100 where sno in(select sno from student where sdept=‘CS’)

问题2::

现有员工信息表 A,员工编号(codecode,PK),员工姓名 (codename),员工性别(codesex),员工电话(codetel),员工 住址(codeaddress),员工亲属信息表 B:员工编码(codecode, PK),亲属编码(recodecode,PK)、亲属姓名(recodename), 联系电话(codetel)
1、使用 SQL 语句,向员工信息表中插入一条数据:(001,张三,男,010-6257007, 北京市海淀区);向亲属信息表中插入 2 条数据(001,1,父亲,010-6257007)(001, 2,母亲,010-6257007)
2、使用 SQL 变更 001 员工地址为:北京市朝阳区
3、用 SQL 查询出亲属数量大于 l 的员工编码、员工姓名、员工亲属数量
4、有部分员工的亲属信息录入重复,例如父亲信息录入两次,这类信息的特征是亲属 姓名相同,但是亲属编码不同,请用 SQL 语句将这类情况的员工编码,重复的亲属编 码,亲属姓名查询出来

参考答案

1、insert into A values(‘001’,‘张三’,‘男’,‘010-6257007’,‘北京市海淀区’) insert into B values (‘001’,‘1’,‘父亲’,‘010-6257007’),(‘001’,‘2’,‘母亲’,‘010-6257007’)
2、update A set codeaddress=‘北京市朝阳区’ where codecode=‘001’
3 、select A.codecode,codename,count() from A join B on A.codecode=B.codecode group by A.codecode having count()>1
4 、select C.codecode,C.recodecode,C.recodename from B C jon B D on C.recodename=D.recodename and C.recodecode!=D.recodecode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值