sql语句练习题1
数据库有如下四个表格:
student(sno,sname,sage,ssex,sdpt) 学生表
系表(dptno,dname)
course(cno,cname, gradet, tno) 课程表
sc(sno,cno,score) 成绩表
teacher(tno,tname) 教师表
要求:完成以下操作
1.查询姓"欧阳"且全名为三个汉字的学生的姓名。
select sname from student  where sname like 欧阳__‟;
2.查询名字中第2个字为"阳"字的学生的姓名和学号。
 select sname,sno from student  where sname like '_阳%';
3.查询所有不姓刘的学生姓名。
select sname,sno,ssex 
from student 
where sname not like %”
4.查询db_design课程的课程号和学分。
 sql查询面试题及答案select cno,ccredit  from course 
where cname like 'db_design' 
5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。
 select * from course  where cname like 'db%i_ _';
6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。
select sno,cno from sc where grade is null;
7.查所有有成绩的学生学号和课程号。
select sno,cno from sc where grade is not null
8.查询计算机系年龄在20岁以下的学生姓名。
 select sname from student  where sdept= 'cs' and sage<20;
9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
 select sno,grade from sc  where cno= ' 3 '  order by grade desc;
10.查询学生总人数。
select count(*) from student;
11.查询选修了课程的学生人数。
select count(distinct sno) from sc;
12.计算1号课程的学生平均成绩。
select avg(grade) from sc  where cno= ' 1 ';
13.查询选修1号课程的学生最高分数。
select max(grade) from sc  where cno= ' 1 ';
14.查询学生200215012选修课程的总学分数。
select sum(grade) from sc,course 
where sno= ' 200215012 ' and sco=courseo;
15.查询选修了3门以上课程的学生学号。
select sno from sc group by sno  having count(*) >3; 
16.查询每个学生及其选修课程的情况。
select student.*,sc.*, course.* from student,sc , course
where student.sno=sc.sno  and sco=courseo;
17.查询每个学生及其选修课程的情况包括没有选修课程的学生
18.查询选修2号课程且成绩在90分以上的所有学生的学号、姓名
select student.sno, student.sname
from student,sc
where student.sno=sc.sno and sco=2‟ade>90;
19.查询每个学生的学号、姓名、选修的课程名及成绩。
select student.sno,sname,ssex,sage,sdept,cno,grade
from student left outjoin sco on(student.sno=sc.sno);
20.查询与“刘晨”在同一个系学习的学生。
selectsno,sname,sdept
from student
where sdept in
(select sdept from student where sname=刘晨‟);
21.查询选修了课程名为“信息系统”的学生学号和姓名
select sno,sname from student where sno in
(select sno from sc where cno in
(select cno from course where cname=信息系统‟));
22.出每个学生超过他选修课程平均成绩的课程号。
select sno,cno from sc x  where grade>=
(select avg(grade) from sc y  where y.sno=x.sno);
23.将一个新学生记录(学号:200215128;姓名:陈冬;性别:男;所在系:is;年龄:18岁)插入到student表中。
insert into student values ('200215128','陈冬','男','is',18);
24.将学生200215121的年龄改为22岁。
update student setsage=22 where sno='200215121';
25.将所有学生的年龄增加1岁。
update student setsage=sage+1;
26.将计算机科学系全体学生的成绩置零。
update sc set grade=0  where exits
(selete * from student where student.sno=sc.sno and sdept= 计算机科学系);
27.删除学号为20021528的学生记录
delete from student where sno=”200215128'
28.删除所有的学生选课记录。
delete from sc;