第一部分基础理论第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
数据:描述事务的符号记录数据库:存储数据的仓库数据库管理系统:用于管理和维护数据的系统软件数据库系统:计算机中引入数据库后的系统,包括数据库,数据库管理系统,应用程序,数据库管理员2.数据管理技术的发展主要经历了哪几个阶段?两个阶段,文件管理和数据库管理3.数据独立性指的是什么?应用程序不因数据的物理表示方式和访问技术改变而改变,分为逻辑独立性和物理独立性。
物理独立性是指当数据的存储结构或存储位置发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。
4.数据库系统由哪几部分组成?由数据库、数据库管理系统、应用程序、数据库管理员组成。
第2章数据模型与数据库系统的结构1.说明实体一联系模型中的实体、属性和联系的概念。
实体是具有公共性质的并可相互区分的现实世界对象的集合。
属性是实体所具有的特征或性质。
联系是实体之间的关联关系。
.数据库系统包含哪三级模式?试分别说明每一级模式的作用。
2.外模式、模式和内模式。
外模式:是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求,保证数据安全。
模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。
内模式:是对整个数据库的底层表示,它描述了数据的存储结构。
3.数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能?两级映像是外模式/模式映像和模式/内模式映像。
外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而使用户的应用程序不需要修改,保证了程序与数据的逻辑独立性。
模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,保证了程序与数据的物理独立性。
两级印象保证了应用程序的稳定性。
第3章关系数据库1.试述关系模型的三个组成部分。
数据结构、关系操作集合、关系完整性约束2.解释下列术语的含义:(1)主码当一个关系有多个候选码时,选择一个作为主码(2)候选码当一个属性或属性集的值能够唯一标识一个关系的元组,而又不包含多余的元素,则称该属性或属性集为候选码。
的主码,R的一个或一组属性,但不是关系R是关系F 设外码(3).如果F与关系S的主码相对应,则称F是关系R的外码。
(4)关系(5)关系模式二维表的结构3.关系数据库的三个完整性约束是什么?各是什么含义?实体完整性:关系数据库中每个关系都必须有主码,且主码值不能为空,不能重复。
参照完整性:指多个实体或表之间的关联关系,规则是外码或者值为空,或者等于所参照关系的主码值。
用户定义完整性:指明关系中属性的取值范围。
4.连接运算有哪些?等值连接和自然连接的区别是什么?等值连接,自然连接区别:1.自然连接要求相等的分量必须有相同的属性名,等值连接不要求2.自然连接要求把重复的属性名去掉,等值连接不要求。
第4章SQL语言基础及数据定义功能1.数据完整性的含义是什么?指数据的正确性和相容性。
2.写出创建如下表的SQL语句,要求在定义表的同时定义数据的完整性约束:(1)“图书表”结构如下:,主码;6书号:统一字符编码定长类型,长度为书名:统一字符编码可变长类型,长度为30,非空;第一作者:普通编码定长字符类型,长度为10,非空;出版日期:小日期时间型,价格:定点小数,小数部分1位,整数部分3位。
Create table book(bno nchar(6) primary key,bname nvarchar(30) not null,fauther char(10) not null,date smalldatetime,price numeric(4,1))第5章数据操作语句利用定义的Student、Course和SC表结构实现如下操作,并根据表提供的数据观察各语句执行情况。
Student表:约数据类列主Sn普遍编码定长字符串,长度非普遍编码定长字符串,长度Snam1Sse普遍编码定长字符串,长度整Sag2普遍编码定长字符串,长度SdeptCourse表约束列名数据类型Cno 主码普遍编码定长字符串,长度为6 Cname 非空长度为20 普遍编码定长字符串,Credit 整型Semster 整型Cno cname credit semester1 c01 3 计算机文化3c022VB7c034计算机网6c045数据库基28c05高等数45c06数据结构.SC表:列名数据类型约束Sno主码,引用Student7 的外码普遍编码定长字符串,长度为Cno主码,引用6普遍编码定长字符串,长度为Course的外码Grade 整型1.查询学生选课表中的全部数据。
Select * from student2.查询计算机系学生的姓名、年龄。
Select sname , sage from student where sdept ='计算机系'3.查询成绩在70~80的学生的学号、课程号和成绩。
Select sno, cno, grade from sc where grade between 70 and 804.计算机系年龄在18~20的男生的姓名、年龄。
sageand '计算机系'sdept=where student from sage sname, Selectbetween 18 and 20 and ssex='男'5.查询“c01”课程的最高成绩。
Select max(grade) from sc where cno='c01'6.查询计算机系学生的最大年龄和最小年龄。
select max(sage), min(sage) from s where sdept='计算机系'7.统计每个系的学生人数。
select sdept, count(*) from s group by sdept8.统计每门课程的选课人数和考试最高分。
Select cno, count(sno), max(grade) from sc group by cno9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
Select sno, count(cno) 选课门数, sum(grade) 考试总成绩from s group by snoorder by 选课门数asc10.查询总成绩超过200分的学生,要求列出学号、总成绩。
Select sno, sum(grade) from sc group by sno having sum(grade)>200 11.查询选修了“c02”课程的学生的姓名和所在系。
Select s.sname, sdept from student s join sc on s.sno=sc.sno12.查询成绩80分以上的学生的姓名、选的课程号和成绩,并按成绩降序排列结果。
Select sname, cno, grade from student s join sc on s.sno=sc.sno where order by grade desc grade >8013.查询哪些学生没有选课,要求列出学号、姓名和所在系。
Select sno, sname, sdept from s join sc on s.sno=sc.sno where cno is null 14.查询与VB在同一学期开设的课程的课程名和开课学期。
Select ame, c2.credit from course c1 join course c2 onc1.credit=c2.credit where ame='VB' and ame != 'VB'15.查询与李勇年龄相同的学生的姓名、所在系和年龄。
Select s2.sname, s2.sdept, s2.sage from student s1 join student s2 ons1.sage=s2.sage where s1.sname = '李勇' and s2.sname != ‘李勇' 16.查询计算机系年龄最小的2名学生的姓名和年龄。
Select top 2 with ties sname, sage from s where sdept = ‘计算机系' order by sage asc17.查询VB考试成绩最高的前2名学生的姓名、所在系和VB成绩,包括并列的情况。
18.查询选课门数最多的前2名学生的学号和选课门数,包括并列的情况。
19.查询学生人数最多的系,列出系名和人数。
20.用子查询实现如下查询:(l)查询选修了“c01”课程的学生姓名和所在系。
Select sname,sdept from studentWhere sno in (select sno from sc where cno = ‘C01')(2)查询数学系成绩80分以上的学生的学号、姓名、选的课程号和成绩。
.Select sno,sname,cno,grade from student join sc on s.sno=sc.sno Where sdept =‘数学系' and sno in (Select sno from sc where grade > 80)(3)查询计算机系考试成绩最高的孛学生的姓名。
Select sname from student s join sc on s.sno = sc.snoWhere sdept = ‘计算机系' and grade = (Select max(grade) from sc join student s on s.sno=sc.snoWhere sdept = ‘计算机系')21.创建一个新表,表名为test_t,其结构为(COLI,COL2,,其COL3) 中:COL1:整型,允许空值。
字符型,长度为10,不允许空值。
COL2: 10,允许空值。
COL3:字符型,长度为。
试写出按行插入如下数据的语句(空白处表示空值)COL3 COL2 COL1B1C21B2B32Create table test_t(COL1 int,,COL2 char(10) not nullCOL3 char(10))Insert into test_t(COL2) values('B1')Insert into test_t(COL1,COL2) values(1,'B2')Insert into test_t values(2,'B3',NULL)22.删除考试成绩低于50分的学生的该门课程的选课记录。