第6章 习题参
1. 参:
(1)查询所有党员学生的学号,姓名和专业名称。
select student.学号, student.姓名, zy.专业名称; from student, zy;
where student.专业编号=zy.专业编号 and 党员否
(2)查询电气与电子工程学院学生的学号、姓名和出生日期。
select 学号, 姓名, 出生日期; from student;
where 院系=\"电气与电子工程学院\"
(3)查询电气与电子工程学院学生的学号、姓名以及高等数学的成绩,并按成绩从高到低的顺序排列。
select student.学号, student.姓名, cj.成绩; from student, kc, cj;
where student.学号=cj.学号 and kc.课程编号=cj.课程编号 and ;
院系=\"电气与电子工程学院\" and kc.课程名称=\"高等数学\"
order by cj.成绩 desc
(4)查询年龄在20岁以下的学生信息。
select * from student where year(date())-year(出生日期)<20
(5)计算出1985年前出生的学生人数。
select count(*) as 学生人数 from student where year(出生日期)<1985
(6)查询cj.dbf中所包含的课程编号。
select distinct 课程编号 from cj
(7)查询“李淑子”所有不及格课程的课程编号,课程名称和成绩。
select kc.课程编号, kc.课程名称, cj.成绩 from student, kc, cj; where student.学号=cj.学号 and kc.课程编号=cj.课程编号 ;
and student.姓名=\"李淑子\" and cj.成绩<60
(8)查询各门课程的平均成绩在75分以上的学生的学号,姓名和平均分。并将结果保存到yxxs.dbf文件中。
select student.学号, student.姓名, avg(cj.成绩) as 平均分 from student, cj ; where student.学号=cj.学号;
group by student.学号 having 平均分>=75; into table yxxs
(9)计算“刘丽”所选修的所有课程的总学分。
select sum(kc.学分) as 总学分 from student, cj, kc ;
where student.学号=cj.学号 and kc.课程编号=cj.课程编号 ; and student.姓名=\"刘丽\"
(10)查询各门课程的课程名称和平均分。
select kc.课程编号, kc.课程名称, avg(cj.成绩) as 平均分 from cj, kc ; where kc.课程编号=cj.课程编号; group by kc.课程编号
(11)查询“数据库应用”成绩前2名学生的学号,姓名和成绩。
select student.学号, student.姓名, cj.成绩 from student, kc, cj; where student.学号=cj.学号 and kc.课程编号=cj.课程编号 ; and kc.课程名称=\"数据库应用\"; order by cj.成绩 desc top 2
(12)查询选修了“高等数学”的学生的学号,姓名和成绩,并按成绩降序排列。
select student.学号, student.姓名, cj.成绩 from student, kc, cj; where student.学号=cj.学号 and kc.课程编号=cj.课程编号 ; and kc.课程名称=\"高等数学\"; order by cj.成绩 desc
(13)计算student.dbf表中各专业的学生人数。
select 专业编号, count(*) as 学生人数 from student; group by 专业编号
(14)计算各门课程的选课人数。
select 课程编号, count(*) as 选课人数 from cj; group by 课程编号
2. 使用CREATE-SQL命令在“学生成绩管理”数据库中建立研究生(yjs.dbf)表,表结构
如下,并在表设计器中查看表的结构。
字段名 学号 姓名 性别 出生日期 入学年份 字段类型 C C C D N 长度 6 8 2 4 小数位数 0 索引 主索引 说明 默认值“男” 1995年以前 允许为空置
3. 用ALTER TABLE命令修改研究生(yjs.dbf)表的结构,并在表设计器中查看表结构的
变化。
(1)增加字段:专业C(20)和指导教师C(8)。
alter table yjs add 专业 C(20) add 指导教师 C(8)
(2)将“入学年份”字段名修改为“入学时间”,“学号”字段的宽度修改为10。
alter table yjs rename 入学年份 to 入学时间 alter 学号 C(10)
(3)删除“指导教师”字段。
alter table yjs drop 指导教师
4. 用INSERT-SQL命令给研究生(yjs.dbf)表添加两条记录,记录内容如下: 学号 1060010101 1060010102 姓名 刘芳 王大奇 性别 女 男 出生日期 1986年3月1日 入学年份 2009 1988年10月23日 2010
insert into yjs(学号, 姓名, 性别, 出生日期, 入学年份);
values(\"1060010101\刘芳\女\insert into yjs(学号, 姓名, 性别, 出生日期, 入学年份);
values(\"1060010102\王大奇\男\
5. 用UPDATE命令将研究生(yjs.dbf)表中所有男生的专业设置为“计算机科学与技术”。
update yjs set 专业=\"计算机科学与技术\" where 性别=\"男\"
6. 用DELETE命令删除研究生(yjs.dbf)表中所有女生记录。
delete from yjs where 性别=\"女\"
7. 删除研究生(yjs.dbf)表。
Open Database 学生成绩管理 Drop Table yjs