数据笔试题

学生表:STUDENT(S#,SNAME,SAGE,SSEX)
课程表:COURSE(C#,CNAME,T#)
成绩表:SC(S#,C#,SCORE)
教师表:TEACHER(T#,TNAME)
其中,
1)学生表里的字段含义:S#代表学号,SNAME代表学生姓名,SAGE代表学生年龄,SSEX代表学生性别
2)课程表里的字段含义:C#代表课程编号,CNAME代表课程名字,T#代表教师编号,
3)成绩表 S#代表学号,C#代表课程编号,SCORE代表成绩
4)教师表的字段含义: T#代表教师编号,TNAME代表教师姓名
1.查询课程编号为“001”的课程比“002”的课程成绩高的所有学生的学号
select x.sno,x.score,y.score from sc x,sc y where x.cno=1001 and y.cno=1002 and x.sno=y.sno and x.score > y.score
2.查询平均成绩大于60分的学生的学号和平均成绩
select sno,avg(score) from sc group by sno having avg(score)>60
3.查询所有学生的学号、姓名、选课数、总成绩
select sc.sno,sname,count(cno),sum(score) from student join sc on student.sno=sc.sno group by sc.sno,sname
4、查询姓“悟”的老师的个数
select count(Tname) from teacher where Tname like '悟%'
5、查询没学过“悟空”老师课的学生的学号、姓名(对原始SC表稍作修改,令1,2号学生没有学过悟空的课
delete from sc where sno=1 and cno=1009
delete from sc where sno=2 and cno=1009)
select sno,sname from student where sno not in(select sno from SC where cno in(select cno from course where tno
in(select tno from teacher where tname='悟空')))
6、查询学过“悟空”老师所教的所有课的同学的学号、姓名(对原始表Course,SC稍作修改,让悟空交2门课
insert into course values('1010','Exercise','TS04')insert into sc values('8','1010','75'),('9','1010','92'),('10','1010','80');)
8、查询课程编号为“1002”的总成绩
select sum(score) from sc where cno='1002'
9、查询所有课程成绩小于60分的学生的学号、姓名
select sno,sname from student where sno in(select sno from SC where score <60)


1、触发器的作用?
触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。
2、什么是存储过程?用什么来调用?
存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值