access和SQL数据库练习及答案_第1页
access和SQL数据库练习及答案_第2页
access和SQL数据库练习及答案_第3页
access和SQL数据库练习及答案_第4页
access和SQL数据库练习及答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上数据库技术及应用实践考核上机考试练习题B()给定的学生_选课库中数据库表结构及样本记录表1-表6数据如下:学生(学号,姓名,年龄,性别,所在系); 课程(课程号,课程名,先行课); 选课(学号,课程号,成绩).表1 学生表结构字段名数据类型长度是否为空约束学号CHAR5否主键姓名CHAR8否年龄SMALLINT默认20性别CHAR2“男”或“女”所在系CHAR20表2 课程表结构字段名数据类型长度是否为空约束课程号CHAR5否主键课程名CHAR20否先行课CHAR5表3 选课表结构字段名数据类型长度是否为空约束学号CHAR5否主键,外键课程号CHAR5否主键,外键成绩

2、SMALLINT0100表4 学生表数据序号学号姓名性别年龄所在系1S1李明男21计算机2S2张小红男21计算机3S3李和明女22计算机4S4张三男21计算机5S5刘宏男23计算机6S6王红应女20计算机7S7吴非男19数学8S8丁玉男21数学9S9赵名女21数学10S12张共可男22物理表5 课程表数据序号课程号课程名先行课1C1计算机引论2C2数据结构C33C3C语言编程C14C4软件工程C65C6数据库C26C5计算机文化7C7高等数学8C8概率统计C99C9线性代数C710C10力学表6 选课表数据序号学号课程号成绩1S1C1602S2C1933S3C14S4C1895S1C2796S

3、2C27S3C2808S4C3909S1C39210S2C38111S1C78512S4C775一、根据给定的样本数据,按顺序完成下列操作: 1、数据定义和输入记录(1)创建学生-课程数据库。(2)创建学生表、课程表和选课表,并满足约束条件。(3)输入样本记录。(4)查询输入的样本记录,并保存结果。(5)创建计算机系学生成绩视图。属性包括:学号、姓名、课程名和成绩。(6)查询已创建的视图,并保存结果。(7)创建学生表、课程表和选课表的数据库关系图表。2、数据更新(1)输入一条新学生记录,例如:(S11, 李阳, 男,21,计算机)(2)删除一条学生记录,例如:删除学号=S5的记录。(3) 修改

4、一条学生记录,例如:将学号=S5的记录的系修改为计算机(RSL改了吴非)。(4)查询当前的学生记录,并保存结果。(5)求每个系的学生的平均年龄,并将结果存入到系平均年龄数据库中。标准:select 所在系, avg(年龄) AS 平均年龄 into 平均年龄数据库 from 学生group by 所在系;SELECT 学生.所在系, Avg(学生.年龄) AS 平均年龄FROM 学生GROUP BY 学生.所在系;3、单表查询(1)求计算机系的学生学号和姓名。(2)求选修了课程的学生学号。标准:select distinct 学号from 选课;1. distinct 去除重复的数据(3)求选

5、修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。SELECT 选课.学号, 选课.成绩, 选课.课程号FROM 选课WHERE 课程号="C1"ORDER BY 成绩 DESC ,学号;(4)求数学系或计算机系姓张的学生的信息。错:只求计算机SELECT 学生.所在系, 学生.姓名, 学生.年龄, 学生.性别, 学生.学号FROM 学生WHERE (学生.所在系)="计算机") AND (学生.姓名) Like "张*");=结果:SELECT 学生.所在系, 学生.姓名, 学生.年龄,

6、学生.性别, 学生.学号FROM 学生WHERE (学生.姓名) Like"张*")AND 所在系 IN ("计算机","数学");=(5)求缺少了成绩的学生的学号和课程号。SELECT 选课.学号, 选课.课程号FROM 选课WHERE (选课.成绩) Is Null);4、连接查询(1)求学生的学号、姓名、选修的课程名及成绩。SELECT 学生.学号, 学生.姓名, 课程.课程名, 选课.成绩FROM 课程 INNER JOIN (学生 INNER JOIN 选课 ON 学生.学号 = 选课.学号) ON 课程.课程号 = 选课.

7、课程号; (2)求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。SELECT 学生.学号, 学生.姓名, 选课.成绩FROM 学生 INNER JOIN 选课 ON 学生.学号 = 选课.学号WHERE (选课.成绩)>=90) AND (选课.课程号)="C1");(3)查询每一门课的间接先行课(即先行课的先行课)。select a.课程号, b.先行课from curr a, curr bwhere a.先行课=b.课程号;(4)求学生表与选课表的左外连接。select * from 学生 left join 选课 on 学生.学号=选课.学号;(5)求选

8、课表与课程表的右外连接。5、嵌套查询(1)求选修了高等数学的学生学号和姓名。select 学号, 姓名from stu where 学号 in(select 学号 from 选课 where 课程号=(select 课程号 from curr where 课程名='高等数学');错:以下属于连接查询 SELECT 课程.课程名, 学生.学号, 学生.姓名FROM 课程 INNER JOIN (学生 INNER JOIN 选课 ON 学生.学号 = 选课.学号) ON 课程.课程号 = 选课.课程号WHERE (课程.课程名)="高等数学");(2)求C1课程

9、的成绩高于张三的学生学号和成绩。SELECT 学号,成绩FROM 选课WHERE 课程号="C1" AND 成绩 > (SELECT 成绩 FROM 选课 WHERE 学号=(SELECT 学号 FROM 学生 WHERE 姓名="张三") AND 课程号="C1");(3)求其他系中比计算机系学生年龄都小的学生。select * from stu where 年龄<(select min(年龄) from 学生 where所在系='计算机');(4)求没有选修C2课程的学生姓名。select 姓名from

10、 stu where 学号not in(select 学号from select_curr where 课程号='C2');(5)求至少选修了两门课程的学生信息。SELECT *FROM 学生WHERE 学号 IN (SELECT 学号 FROM 选课 GROUP BY 学号 HAVING COUNT(学号)>=2 );6、组合查询(1)求学生的总人数。SELECT Count(学生.学号) AS 学号之计数FROM 学生;(2)求选修了课程的学生人数。select count(学号) as 人数FROM(Select distinct 学号 FROM 选课);(3)求计算机系学生的平均年龄定价,用GROUP BY表示。SELECT AVG(年龄) AS 平均年龄FROM 学生WHERE 所在系="计算机"(4)求各课程号和选修该课程的人数。SELECT 课程号,COUNT(学号) AS 人数FROM 选课GROUP BY 课程号;(5)求选修课超过3门课的学生学号。select 学号from select_curr group

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论