《数据库复习资料(共21页).docx》由会员分享,可在线阅读,更多相关《数据库复习资料(共21页).docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上心之所向,所向披靡1、通常,一个数据库的数据模型由数据结构、数据操作和数据的约束条件三部分组成。其中,数据结构和数据的约束条件为数据的静态特性。2、数据模型实际上是模型化数据和信息的工具。根据模型应用的不同目的,可以将模型分为两大类:概念层数据模型(概念模型)-从数据的语义视角来抽取模型,是按用户的观点来对数据和信息进行建模。组织层数据模型(逻辑模型)-从数据的组织层次来描述数据。3、数据模型中的组织层数据模型从数据的组织方式来描述数据,目前主要包括四种组织层数据模型:层次模型、网状模型、关系模型和对象-关系模型。4、实体之间的联系可分为三种:一对一关系,一对多关系和
2、多对多关系5、关系模型的操作对象是集合,也就是关系。6、关系数据模型的数据操作主要包括四种:查询、插入、删除和修改数据。 7、关系模型的数据完整性约束包括:实体完整性、参照完整性和用户定义的完整性。8、数据库系统的三级模式结构分别为:外模式(External Schema),模式(Schema)和内模式(Internal Schema)。9、SQL SERVER中提供的整数数据类型有:BIGINT,INT,SMALLINT,TINYINT和BIT10、要在SQL SERVER表中存储一个小数数据,具体要求如下:小数位保留三位,整数位最大有10位,应该选用的数据类型为DECIMAL(13,3)或
3、NUMERIC(13,3)。11、要在要在SQL SERVER表中存储个人爱好资料,该资料可以不填,最多可填200汉字,应该选用的数据类型为VARCHAR(400)来定义。12、统一字符编码字符串类型每个字符占两个字节。13、一个汉字节两个字节。名词解释1、什么是数据库,作用是什么? 答:1、存放数据的一个有组织,有结构的系统。2、一个软件系统。1、数据存储2、数据查询3、数据管理4、数据共享5、数据挖掘6、数据安全 2、什么是数据库系统,作用是什么?答:本质上是一个用计算机存储数据的系统,一般由数据库、数据库管理系统(及相关实用工具)、应用程序、数据库管理员组成。 主要作用除保存数据外,还提
4、供对数据进行各种管理和处理:安全管理、数据共享、数据查询。3、什么是数据库管理系统,作用是什么?答:是一个专门用于实现对数据进行管理和维护的系统软件。主要作用包括:数据库的建立与维护;数据定义;数据组织、存储和管理;数据操作;事务的管理和运行。4、数据独立性答:指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物理表示方式和访问技术,包含两个方面:逻辑独立性和物理独立性5、关系模型、关系和关系模式。答:用关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型关系 :关系就是二维表。并满足如下性质:关系表中的每一列都是不可再分的基本属性;表中的行、列次序
5、并不重要。关系模式:二维表的结构称为关系模式,即,关系模式是二维表的表框架或表头结构。6、元组、属性、主码、域答:元组:表中的每一行称作是一个元组,它相当于一个记录值。属性:表中的每一列是一个属性值的集合,列可以命名,称为属性名。 主码:表中用于惟一地确定一个元组的一个属性或最小的属性组。域:属性的取值范围。7、实体完整性、参照完整性和用户定义完整性答:实体完整性是保证关系中的每个元组都是可识别的和惟一的。 而且表中不允许存在如下的记录:无主码值的记录和主码值相同的记录。参照完整性用于描述实体之间的联系。参照完整性一般是指多个实体(表)之间的关联关系。 一般用外码实现。外码:取作本表(子表)属
6、性之一的外表(父表,主表)主码。主码值先在主表中生成,后在子表中引用。用户定义完整性也称为域完整性或语义完整性。按应用语义,属性数据有:类型与长度限制:方便计算机操作。取值范围限制:防止属性值与应用语义矛盾8、数据模式答:在数据模型中有关数据结构及其相互间关系的描述称为数据模式(Data schema)。9、信息技术答:信息技术(Information Technology 简称IT)是指在信息科学的基本原理和方法的指导下扩展人类信息功能的技术。一般说,信息技术是以电子计算机和现代通信为主要手段实现信息的获取,加工,传递和利用等功能的技术总和。 10、信息技术的四大基本技术是哪些?答:传感技术
7、、通信技术、计算机技术和控制技术是信息技术的四大基本技术,其主要支柱是通讯(Communication)技术、计算机(Computer)技术和控制(Control)技术,即“3C”技术。11、数据、信息与知识答:数据是使用约定俗成的关键词,对客观事物的数量、属性、位置及其相互关系进行抽象表示,以适合在这个领域中用人工或自然的方式进行保存、传递和处理。 信息是具有时效性的有一定含义的,有逻辑的、经过加工处理的、对决策有价值的数据流。 知识就是沉淀并与已有人类知识库进行结构化的有价值信息。12、数据库技术答:数据库是数据管理的最新技术,主要研究内容是如何对数据进行科学的管理,以提供可共享、安全、可
8、靠的数据。数据库技术一般包含数据管理和数据处理两部分。13、视图及其作用答: 视图由基本表构成的虚表(满足用户需求的表结构)。它的主要作用包括:简化数据查询语句,使用户能从多角度看待同一数据,提高了数据的安全性,提供了一定程度的逻辑独立性。SQL命令执行结果题在SQL SERVER查询分析器中执行如下SQL操作:以上命令正确执行完成后,请写出如下SQL语句的执行结果。(如果没有找到相应记录,则写没有找到记录)数据库设计题(共20分)假设有如下数据管理要求, 请你根据上述要求,按下步骤完成一个数据库的设计。要求满足第三范式。1、 画出系统E-R图2、 画出系统数据库的逻辑图 (如下图所示样式)3
9、、写出各关系在SQL SERVER中的物理结构定义。(结构如下表所示)表1 student表(学生表)序号字体名称数据类型约束说明1SNOINTPRIMARY KEY学号2SNAMEVARCHAR(50)NOT NULL学生姓名操作题。按下要求,完成相应的SQL语句。(共20分)/*综合实验二*/*1新建一个数据库名为SAMPLE,选择其,在“新建查询”窗口中,用CREATE TABLE语句创建如下表。(1)STUDENT(SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,SSEX VARCHAR(2) NOT NULL, SBIRTHDAY
10、 DATETIME,CLASS VARCHAR(5)*/create database sampleuse samplecreate table student (SNO VARCHAR(3) primary key, SNAME VARCHAR(4) NOT NULL, SSEX VARCHAR(2) NOT NULL, SBIRTHDAY DATETIME, CLASS VARCHAR(5)/*(2)COURSE(CNO VARCHAR(5) NOT NULL, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(10) NOT NULL)*/create ta
11、ble course (CNO VARCHAR(5) primary key, CNAME VARCHAR(10) NOT NULL, TNO VARCHAR(10) NOT NULL)/*(3)SCORE (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL)*/create table score (SNO VARCHAR(3) NOT NULL, CNO VARCHAR(5) NOT NULL, DEGREE NUMERIC(10, 1) NOT NULL, primary ke
12、y(sno,cno)/*(4)TEACHER (TNO VARCHAR(3) NOT NULL, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL, TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6), DEPART VARCHAR(10) NOT NULL)*/create table teacher(NO VARCHAR(3) primary key, TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL, TBIRTHDAY DATETIME NO
13、T NULL, PROF VARCHAR(6), DEPART VARCHAR(10) NOT NULL)/*2用INSERT语句,添加如下数据。(1)在STUDENT表中插入如下数据:(108 ,曾华 ,男 ,1977-09-01,95033);(105 ,匡明 ,男 ,1975-10-02,95031);(107 ,王丽 ,女 ,1976-01-23,95033);(101 ,李军 ,男 ,1976-02-20,95033);(109 ,王芳 ,女 ,1975-02-10,95031);(103 ,陆君 ,男 ,1974-06-03,95031);*/ insert into studen
14、t values(108 ,曾华 ,男 ,1977/09/01,95033)insert into student values(105 ,匡明 ,男 ,1975/10/02,95031)insert into student values(107 ,王丽 ,女 ,1976/01/23,95033)insert into student values(101 ,李军 ,男 ,1976/02/20,95033)insert into student values(109 ,王芳 ,女 ,1975/02/10,95031)insert into student values(103 ,陆君 ,男
15、,1974/06/03,95031)/*(2)在COURSE表添加如下数据: (3-105 ,计算机导论,825) (3-245 ,操作系统 ,804); (6-166 ,数据电路 ,856); (9-888 ,高等数学 ,100);(3-109,数据库技术及应用,825);*/insert into course values (3-105 ,计算机导论,825)insert into course values (3-245 ,操作系统 ,804)insert into course values (6-166 ,数据电路 ,856)insert into course values (9
16、-888 ,高等数学 ,100)alter table course alter column cname varchar(40)insert into course values (3-109,数据库技术及应用,825) /*(3)在表SCORE中添加如下数据:(103,3-245,86);(105,3-245,75);(109,3-245,68);(103,3-105,92);(105,3-105,88);(109,3-105,76);(101,3-105,64);(107,3-105,91);(108,3-105,78);(101,6-166,85);(107,6-106,79);(10
17、8,6-166,81);*/insert into score values (103,3-245,86)insert into score values (105,3-245,75)insert into score values (109,3-245,68)insert into score values (103,3-105,92)insert into score values (105,3-105,88)insert into score values (109,3-105,76)insert into score values (101,3-105,64)insert into s
18、core values (107,3-105,91)insert into score values (108,3-105,78)insert into score values (101,6-166,85)insert into score values (107,6-106,79)insert into score values (108,6-166,81)/*(4)在表TEACHER中添加如下数据:(804,李诚,男,1958-12-02,副教授,计算机系);(856,张旭,男,1969-03-12,讲师,电子工程系);(825,王萍,女,1972-05-05,助教,计算机系);(831
19、,刘冰,女,1977-08-14,助教,电子工程系);*/insert into teacher values (804,李诚,男,1958-12-02,副教授,计算机系)insert into teacher values (856,张旭,男,1969-03-12,讲师,电子工程系)insert into teacher values (825,王萍,女,1972-05-05,助教,计算机系)insert into teacher values (831,刘冰,女,1977-08-14,助教,电子工程系)/*3完成下列SQL操作。1)查询Student表中的所有记录的Sname、Ssex和C
20、lass列。*/select sname,ssex,class from student /*2)查询教师所有的单位即不重复的Depart列。*/select distinct depart from teacher/*3) 查询Student表的所有记录。*/select * from student/*4) 查询Score表中成绩在60到80之间的所有记录。*/select * from score where degree between 60 and 80/*5) 查询Score表中成绩为85,86或88的记录。*/select * from score where degree in
21、(85,86,88)/*6) 查询Student表中“95031”班或性别为“女”的同学记录。*/select * from student where class=95031 or ssex=女/*7) 以Class降序查询Student表的所有记录。*/select * from student order by class desc/*8)以Cno升序、Degree降序查询Score表的所有记录。*/select * from score order by cno,degree desc/*9)查询“95031”班的学生人数。*/select count(*) from student
22、where class=95031/*10)查询Score表中的最高分的学生学号和课程号。*/select sno,cno from score where degree in(select max(degree) from score)SELECT A.SNO,B.CNO FROM SCORE A, SCORE B WHERE B.DEGREE IN(SELECT MAX(DEGREE) FROM SCORE GROUP BY CNO) AND A.SNO=B.SNO AND A.CNO=B.CNO/*11)查询3-105号课程的平均分。*/select avg(degree) from s
23、core where cno=3-105/*12)查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。*/select cno,avg(degree) from score group by cno having count(*)4 and cno like 3%/*13)查询最低分大于70,最高分小于90的Sno列。*/select sno from score group by sno having min(degree)70 and max(degree)(select degree from score where sno=109and cno=3-105)/*20)查询
24、score中选学一门以上课程的同学中分数为非最高分成绩的记录。*/select a.sno,o,a.degree from score a ,SCORE B where a.degree!= (select max(degree) from score b where o=o )AND A.SNO=B.SNO AND A.CNO=B.CNO/*21)查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。*/select * from score where degree(select degree from score where sno=109 and cno=3-105)/
25、*22)查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。*/select sno,sname,sbirthday from student where sno!=108 and year(sbirthday) = (select year(sbirthday) from student where sno=108)/*23)查询“张旭“教师任课的学生成绩。*/select sno,o,degree from score sc,teacher t,course c where o=o and c.tno=t.NO and tname=张旭 /*24)查询选修
26、某课程的同学人数多于5人的教师姓名。*/select distinct tname from teacher t,course c,score sc where o=o and c.tno=t.NO and o in (select cno from score group by cno having count(sno)5)/*25)查询95033班和95031班全体学生的记录。*/select * from student where class in(95033,95031)/*26)查询存在有85分以上成绩的课程Cno.*/select distinct cno from score
27、where degree85/*27)查询出“计算机系“教师所教课程的成绩表。*/select o,sno,degree from score sc ,teacher t,course c where o=o and c.tno=t.no and depart=计算机系/*28)查询“计算机系”与“电子工程系“的教师的Tname和Prof。*/select tname,prof from teacher where depart in(计算机系,电子工程系)/*29)查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高
28、到低次序排序。*/select cno,sno,degree from score where cno=3-105 and degree (select min(degree) from score where cno=3-245)/*30)查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.*/select cno,sno,degree from score where cno=3-105 and degree (select max(degree) from score where cno=3-245)/*31)查询所有教师和同学的nam
29、e、sex和birthday.*/select sname,ssex,sbirthday from studentunionselect tname,tsex,tbirthday from teacher/*32)查询所有“女”教师和“女”同学的name、sex和birthday.*/select sname,ssex,sbirthday from student where ssex=女unionselect tname,tsex,tbirthday from teacher where tsex=女/*33)查询成绩比该课程平均成绩低的同学的成绩表。*/select * from scor
30、e a where degree1/*37)查询Student表中不姓“王”的同学记录。*/select * from student where sname not like 王%/*38)查询Student表中每个学生的姓名和年龄。*/select sname as 姓名 ,year(getdate()-year(sbirthday) as 年龄 from student/*39)查询Student表中最大和最小的Sbirthday日期值。*/select max(sbirthday),min(sbirthday) from student/*40)以班号和年龄从大到小的顺序查询Stude
31、nt表中的全部记录。*/select * from student order by class,sbirthday /*41)查询“男”教师及其所上的课程。*/select t.* ,cno,cname from teacher t,course c where t.no=c.tno/*42)查询最高分同学的Sno、Cno和Degree列。*/select a.sno,o,a.degree from score a ,SCORE B where a.degree= (select max(degree) from score where cno=o) AND A.SNO=B.SNO AND
32、A.CNO=B.CNO/*43)查询和“李军”同性别的所有同学的Sname.*/select sname from student where sname!=李军 and ssex =(select ssex from student where sname=李军)/*44)查询和“李军”同性别并同班的同学Sname.*/select sname from student where sname!=李军 and ssex =(select ssex from student where sname=李军) and class=(select class from student where s
33、name=李军)/*45)查询所有选修“计算机导论”课程的“男”同学的成绩表*/select o,sc.sno,degree from score sc,course c,student s where s.sno=sc.sno and o=o and ssex=男 and cname =计算机导论/*46)在TEACHER表中增加“ADDRESS”列。*/alter table teacher add address varchar(50)/*47)创建一个“SCHOOL”表,包含ID,NAME,ADDRESS,REMARK字段。*/create table school (id int,n
34、ame varchar(50),address varchar(50),remark varchar(400)/*48)删除SCHOOL表*/drop table school/*49)更新SCORE表,将所有选了“数据库技术及应用”课程的同学的本课成绩开平方乘以10。*/update score set degree=sqrt(degree)*10 where cno in (select cno from course where cname=数据库技术及应用)/*50)删除选了“数据库技术及应用”课程的同学本课选课记录。*/delete from score where cno in (select cno from course where cname=数据库技术及应用)/*51)查询各门课的平均成绩,最高成绩以及最低成绩。要求有课程名称。*/select C.CNO ,cname,avg(degree),max(degree),min(degree) from score a join course c on o=o group by C.CNO,cname勤劳的蜜蜂有糖吃 专心-专注-专业