sql语句练习软件formac
篇一:sql语句练习题及答案
一在数据库school 中建立student , sc, course 表。
学生表、课程表、选课表属于数据库School ,其各自的数据结构如下:
学生Student (Sno,Sname,Ssex,Sage,Sdept)
课程表course(Cno,Cname,Cpno,Ccredit)
学生选课SC(Sno,Cno,Grade)
二设定主码
1 Student表的主码:sno
2 Course表的主码:cno
3 Sc 表的主码:sno,cno
1写出使用Create Table 语句创建表student , sc, course 的SQL语句
2
3 删除student表中的元组
4在数据库school中删除关系student
5在student表添加属性sbirthdate 类型datetime
Delete
1 删除所有JSJ 系的男生delete from Student where
Sdept=’JSJ’and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录
delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);
Update
1 修改0001 学生的系科为: JSJ
2 把陈小明的年龄加1岁,性别改为女。2 修改李文庆的1001课程的成绩为9
3 分 3 把“数据库原理”课的成绩减去1分
Select 查询语句
一单表
1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。2查询姓名中第2个字为“明”字的学生学号、性别。3查询1001课程没有成绩的学生学号、课程号
4查询JSJ 、SX、WL 系的年龄大于25岁的学生学号,姓名,结果按系排列5按10分制查询学生的sno,cno,10分制成绩
(1-10分为1 ,11-20分为2 ,30-39分为3,。。。90-100为10)6查询student 表中的学生共分布在那几个系中。(distinct)7查询0001号学生1001,1002课程的成绩。
二统计
sql软件长什么样1查询姓名中有“明”字的学生人数。2计算‘JSJ’系的平均年龄及最大年龄。3查询学生中姓名为张明、赵
英的人数4计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列5 计算1001,1002 课程的平均分。
6 查询平均分大于80分的学生学号及平均分
7 统计选修课程超过2 门的学生学号
8 统计有10位成绩大于85分以上的课程号。9 统计平均分不及格的学生学号
10 统计有大于两门课不及格的学生学号
三连接
1查询JSJ 系的学生选修的课程号
2查询选修1002 课程的学生的学生姓名(不用嵌套及嵌套2种方法)3查询数据库原理不及格的学生学号及成绩 4查询选修“数据库原理”课且成绩80 以上的学生姓名(不用嵌套及嵌套2种方法)5查询平均分不及格的学生的学号,姓名,平均分。6查询女学生平均分高于75分的学生姓名。 7查询男学生学号、姓名、课程号、成绩。(一门课程也没有选修的男学生也要列出,不能
四嵌套、相关及其他
1 查询平均分不及格的学生人数
2 查询没有选修1002 课程的学生的学生姓名
3 查询平均分最高的学生学号及平均分(2种方法TOP ,
any , all)*4 查询没有选修1001,1002课程的学生姓名。
5 查询1002课程第一名的学生学号(2种方法)
6 查询平均分前三名的学生学号
7 查询JSJ 系的学生与年龄不大于19岁的学生的差集
8 查询1001号课程大于90分的学生学号、姓名及平均分大于85分的学生学号、姓名9 查询每门课程成绩都高于该门课程平均分的学生学号10 查询大于本系科平均年龄的学生姓名
答案
参考答案
1 create table student (snochar(6), sname varchar(8), ssexchar(2), sagesmallint, sdept varchar(15), primary key(sno));
create table sc
(snochar(6), cno char(4),
grade decimal(12,2), primary key(sno,cno));
insert into student
values( ’4001’,’赵茵’,’男’,20,’SX’)
delete from student
drop table student
alter table student add sbirthdate datetime
1 select sno, sname, sage from student
where ssex=’女’and sage between 19 and 21order by sage desc; 2 select sno, ssexfrom student
where sname like ’_明% ’; 3 select sno, cnofrom sc where grade is null and cno=’1001’; 4 select sno, sname from student
where sdept in (’JSJ’,’SX’,’WL’) and sage>25 group by sdept;
select sno, cno, grade/10.0+1 as levelfrom sc ;
select distinct sdept from student ; select grade from sc
where sno=’0001’and (cno=’1001’or cno=’1002’) ; select count(*) from student where sname like ’%明% ’; select avg(sage),max(sage) from student where sdept=’JSJ’; select cno,sum(grade),avg(grade),max(grade),min(grade) from sc group by cno
order by avg(grade) desc ;
select cno, avg(grade) from sc where cno in(‘1001’,’1002’) group by cno ;
select sc.sno ,avg(grade) from scgroup by sc.sno
having avg(grade)>80 ;
select sno from sc group by sno having count(*)>2 ;
select cno from sc where grade>85 group by cno having count(*)=10 ; select sno from sc group by sno having
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论