logo资料库

sql 上机练习题及答案.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
数据库精选习题 1、 2、 创建数据库 MYDB 解答:create database MYDB 创建学生表 student (sno,sname,ssex,sage,sclass) 解答:create table student (sno int primary key , sname varchar(8), ssex varchar(3), sage int , sclass varchar (6)) 3、 创建课程表 course(cno,cname,ccredit) 解答:create table course (cno int primary key, cname varchar(20), ccredit int ) 4、 创建选课表 SC(sno,cno,grade) 解答:create table sc (sno int foreign key references student(sno), cno int foreign key references course(cno),
grade int) 5、 添加数据(student) 1 2 3 4 李勇 刘晨 王敏 张力 男 男 女 男 20 21 19 25 Y01 Y02 Y02 Y05 解答:insert into student values (1,'李勇',' 男',20,'y01') insert into student values (2,'刘 晨','男',21,'y02') insert into student values (3,'王 敏','女',19,'y02') insert into student values (4,'张 力','男',20,'y05') 添加数据(course 6、 1 2 3 C 语言 数据库 开发模式_VB 5 5 5
答:insert into course values (1,'数据库',5) insert into course values (2,'C 语言',5) insert into course values (3,'开发模式 -VB',5) 7、 添加数据(SC) 1 1 2 4 1 2 1 3 90 95 55 null 解答:insert into SC values (1,1,5) insert into SC values (1,2,5) insert into SC values (1,1,5) insert into SC values (1,3,5) 查询全体同学的学号,姓名 解答:select sno,sname from student 查询全体同学的姓名学号班级(按顺序输出) 解答:select sname,sno,sclass from student 8、 9、
10、 查询全体同学的记录(显示所有行) 解答:select *from student 11、 查询全体同学的姓名及出生年份 解答:select sname,2006-sage 出生年份 from student 12、 查询全体同学姓名出生年份班级(班级要用小写 字母 LOWER 函数) 解答:select sname,2006-sage 出生年 份 ,lower(sclass) from student 13、 查询全体同学的姓名/出生年份/所在班级列为 YearOfBirth 解答:select sname,2006-sage YearOfBirth ,sclass from student 14、 查询选课中学员的学号并且去掉重复行用 distinct 解答:select distinct sno from sc 15、 查 Y02 班全体同学名单 解答:select sno from student where sclass='y02' 16、 查所有年龄在 20 岁以下的同学姓名及年龄 解答:select sname,sage from student where sage<20
17、 查考试不合格的同学学号 解答:select sno from sc where grade<60 18、 查年龄在 19-20 岁(包括 19-20)之间的同学姓名 班级年龄 解答:select sname,sclass,sage from student where sage>=19 and sage<=20 19、 查年龄不在 19-20 岁之间的同学的姓名,班级,年 龄 解答:select sname,sclass,sage from student and 20 where sage not between 19 20、 查 Y02 班和 Y05 班的同学姓名,性别 解答:select sname ,ssex from student where sclass='y02' or sclass='y05' 21、 查不是 Y02 班和 Y05 班的同学的姓名,性别 解答:select sname,ssex from student where not sclass='y02' and not sclass='y05' 22、 查所有姓刘的同学的姓名,学号,性别
解答:select sname,sno,ssex from student where sname like '刘%' 23、 查所有姓张且全名为 2 个汉字的学生姓名 解答:select sname,sno,ssex from student where sname like '张_' 24、 某些学生未考试查缺少成绩的同学的学号和课程 号 解答:select sno,cno from sc where grade is null 25、 查所有成绩的同学的学号,课程号,和成绩 解答:select sno,cno from sc where grade is not null 26、 查 Y02 班年龄在 20 岁以下的姓名和年龄 解答:select sname,sage from student where sclass='y02' and sage<20 27、 查选修 1 号课程的同学的学号和成绩,按降序排 列 解答:select sno,grade from sc where cno=1 order by grade desc 28、 查全体同学信息查询结果按所在班级的班级名称 按降序排列,同班同学按年龄升序排列
解答:select *from student order by sclass desc , sage asc 29、 查学员总人数 解答:select count(*) from student 30、 查选修课程学员人数 解答:select count(*) from sc 31、 统计 1 号课的学员平均成绩 解答:select avg(grade) from SC where cno=1 32、 查选修 1 号课和同学最高成绩 解答:select max(grade) from SC where cno=1 33、 求各个课程号及相应选课人数 解答:select count(*) from SC group by cno 34、 查选取 1 门以上课程的同学学号 解答:select sno from SC group by sno having count(cno)>1 35、 查每个学员及其选修,课程情况 解答:select sno,cno from SC 36、 查每个学员及其选修课程情况对没有选课的也要 输出 其姓名,学号,性别,班级
解答:select a.sno,a.sname,a.sage,a.ssex,a.sclass,sc. cno,sc.grade from student a left outer join sc on a.sno=sc.sno order by a.sname 37、 查选取 2 号课程且成绩在 90 分以上同学 解答:select *from SC where cno=2 and grade>9 38、 查询每个同学学号姓名,选课程名称及成绩 解答:select a.sno,a.sname,sc.cno,sc.grade from student a left outer join SC on a.sno=SC.sno order by SC.sno 39、 查与刘晨在一个班的同学 解答:select sname from student where sclass in (select sclass from student where sname='刘晨') 40、 选取 C 语言的同学学号和姓名 解答:select sno,sname from student where sno in (select sno from SC
分享到:
收藏