数据库原理习题集复习Word文档下载推荐.docx
- 文档编号:17232152
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:28
- 大小:72.58KB
数据库原理习题集复习Word文档下载推荐.docx
《数据库原理习题集复习Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库原理习题集复习Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
试设计E-R模型,描述金龙公司的数据环境,并将E-R模型转换成关系数据模型且画出数据结构图(自定义实体的属性)
3.假设为银行的储蓄业务设计一个数据库,设想一下如何设计E-R模型,并将其转换成关系数据模型且画出数据结构土,自定义实体的属性。
4.假设要为超市设计一个数据库,设想一下如何设计E-R模型,并将其转换成关系数据模型且画出数据结构图(提示:
超市的数据环境至少要有商品、收银员、销售等实体。
自定义实体的属性)
第三章数据库操作与管理
1.使用SQL命令,在数据库“华夏大学”中,建立一个表“学院”,其结构为:
字段名字段类型字段长度小数位索引空值
学院代码字符1ASCNO
学院名称字符8NO
院长姓名字符8NULL
电话号码字符8NULL
地址字符5NULL使用SQL命令,在数据库“华夏大学”中,在建立一个表“系”,其结构为:
字段名字段类型字段长度小数位索引空值
系编号字符3ASCNO
系名称字符8NO
系主任字符8NULL
电话号码字符8NULL
地址字符5NULL
学院代码字符1ASCNO
并使表“系”,通过字段“学员代码”,指定表“学院”为父表。
3.使用SQL命令,在数据库“华夏大学”中,建立一个表“教师”,其结构为:
教工号字符6ASCNO
姓名字符8NO
性别字符2NULL
职称字符8NULL
系编号字符3ASCNO
并使表“教师”,通过字段“系编号”,指定表“系”为父表。
4.使用SQL命令,在表“学生”中添加一个字符型字段“籍贯”,字段长度为20。
5.使用SQL命令,在表“学生”中添加一个字符型字段“民族”,字段长度为10。
6.使用SQL命令,在表“学生”中修改字段“籍贯”的长度为30。
7.使用SQL命令,在表“学生”中修改字段“民族”的长度为20。
8.使用SQL命令,删除表“学生”中的“籍贯”字段。
9.使用SQL命令,删除表“学生”中的“民族”字段。
11.使用SQL命令,在表“教师”中添加一条记录,数据为:
教工号为“101001”,姓名为“田立萍”,性别为“男”,职称为“教授”,系编号为“101”。
13.使用SQL命令,修改表“教师”中田立萍的性别为“女”。
28.使用SQL命令,显示99金融班女同学的人数。
32.使用SQL命令,显示全校每个学生各门课程中的最低成绩。
第四章SQL语言
创建表和输入数据
CREATETABLESTUDENT
(SNOVARCHAR(3)NOTNULL,
SNAMEVARCHAR(4)NOTNULL,
SSEXVARCHAR
(2)NOTNULL,
SBIRTHDAYDATETIME,
CLASSVARCHAR(5))
go
CREATETABLECOURSE
(CNOVARCHAR(5)NOTNULL,
CNAMEVARCHAR(10)NOTNULL,
TNOVARCHAR(10)NOTNULL)
CREATETABLESCORE
CNOVARCHAR(5)NOTNULL,
DEGREENUMERIC(10,1)NOTNULL)
CREATETABLETEACHER
(TNOVARCHAR(3)NOTNULL,
TNAMEVARCHAR(4)NOTNULL,TSEXVARCHAR
(2)NOTNULL,
TBIRTHDAYDATETIMENOTNULL,PROFVARCHAR(6),
DEPARTVARCHAR(10)NOTNULL)
INSERTINTOSTUDENT(SNO,SNAME,SSEX,SBIRTHDAY,CLASS)VALUES(108,'
曾华'
'
男'
1977-09-01,95033);
INSERTINTOSTUDENT(SNO,SNAME,SSEX,SBIRTHDAY,CLASS)VALUES(105,'
匡明'
1975-10-02,95031);
INSERTINTOSTUDENT(SNO,SNAME,SSEX,SBIRTHDAY,CLASS)VALUES(107,'
王丽'
女'
1976-01-23,95033);
INSERTINTOSTUDENT(SNO,SNAME,SSEX,SBIRTHDAY,CLASS)VALUES(101,'
李军'
1976-02-20,95033);
INSERTINTOSTUDENT(SNO,SNAME,SSEX,SBIRTHDAY,CLASS)VALUES(109,'
王芳'
1975-02-10,95031);
INSERTINTOSTUDENT(SNO,SNAME,SSEX,SBIRTHDAY,CLASS)VALUES(103,'
陆君'
1974-06-03,95031);
GO
INSERTINTOCOURSE(CNO,CNAME,TNO)VALUES('
3-105'
计算机导论'
825)
3-245'
操作系统'
804);
6-166'
数据电路'
856);
9-888'
高等数学'
100);
INSERTINTOSCORE(SNO,CNO,DEGREE)VALUES(103,'
86);
INSERTINTOSCORE(SNO,CNO,DEGREE)VALUES(105,'
75);
INSERTINTOSCORE(SNO,CNO,DEGREE)VALUES(109,'
68);
92);
88);
76);
INSERTINTOSCORE(SNO,CNO,DEGREE)VALUES(101,'
64);
INSERTINTOSCORE(SNO,CNO,DEGREE)VALUES(107,'
91);
INSERTINTOSCORE(SNO,CNO,DEGREE)VALUES(108,'
78);
85);
6-106'
79);
81);
INSERTINTOTEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)
VALUES(804,'
李诚'
'
1958-12-02'
副教授'
计算机系'
);
VALUES(856,'
张旭'
1969-03-12'
讲师'
电子工程系'
INSERTINTOTEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART)
VALUES(825,'
王萍'
1972-05-05'
助教'
VALUES(831,'
刘冰'
1977-08-14'
练习题目
1、查询Student表中的所有记录的Sname、Ssex和Class列。
2、查询教师所有的单位即不重复的Depart列。
3、查询Student表的所有记录。
4、查询Score表中成绩在60到80之间的所有记录。
5、查询Score表中成绩为85,86或88的记录。
6、查询Student表中“95031”班或性别为“女”的同学记录。
7、以Class降序查询Student表的所有记录。
8、以Cno升序、Degree降序查询Score表的所有记录。
9、查询“95031”班的学生人数。
10、查询Score表中的最高分的学生学号和课程号。
11、查询‘3-105’号课程的平均分。
12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
13、查询最低分大于70,最高分小于90的Sno列。
14、查询所有学生的Sname、Cno和Degree列。
15、查询所有学生的Sno、Cname和Degree列。
16、查询所有学生的Sname、Cname和Degree列。
17、查询“95033”班所选课程的平均分。
18、假设使用如下命令建立了一个grade表:
createtablegrade(low
number(3,0),upp
number(3),rank
char
(1));
insertintogradevalues(90,100,’A’);
insertintogradevalues(80,89,’B’);
insertintogradevalues(70,79,’C’);
insertintogradevalues(60,69,’D’);
insertintogradevalues(0,59,’E’);
commit;
现查询所有同学的Sno、Cno和rank列。
19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。
21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
23、查询“张旭“教师任课的学生成绩。
24、查询选修某课程的同学人数多于5人的教师姓名。
25、查询95033班和95031班全体学生的记录。
26、查询存在有85分以上成绩的课程Cno.
27、查询出“计算机系“教师所教课程的成绩表。
28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。
29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。
30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.
31、查询所有教师和同学的name、sex和birthday.
32、查询所有“女”教师和“女”同学的name、sex和birthday.
33、查询成绩比该课程平均成绩低的同学的成绩表。
34、查询所有任课教师的Tname和Depart.
35
查询所有未讲课的教师的Tname和Depart.
36、查询至少有2名男生的班号。
37、查询Student表中不姓“王”的同学记录。
38、查询Student表中每个学生的姓名和年龄。
39、查询Student表中最大和最小的Sbirthday日期值。
40、以班号和年龄从大到小的顺序查询Student表中的全部记录。
41、查询“男”教师及其所上的课程。
42、查询最高分同学的Sno、Cno和Degree列。
43、查询和“李军”同性别的所有同学的Sname.
44、查询和“李军”同性别并同班的同学Sname.
45、查询所有选修“计算机导论”课程的“男”同学的成绩表
第五章程序设计
一、单项选择题(每小题1分,共10分)
1.下列四项中,不属于数据库特点的是()。
A.数据共享B.数据完整性
C.数据冗余很高D.数据独立性高
5.在SQL中,建立表用的命令是()。
A.CREATESCHEMAB.CREATETABLE
C.CREATEVIEWD.CREATEINDEX
9.SQL语言中,删除表中数据的命令是()。
A.DELETEB.DROP
C.CLEARD.REMOVE
10.SQL的视图是从()中导出的。
A.基本表B.视图
C.基本表或视图D.数据库
第二章习题参考答案
1.在概念模型中的事物称为实体,它是将要收集和存储的数据对象,可以是真实的事物,也可以是抽象的事物。
属性是实体特征的具体描述,属性是实体不可缺少的组成部分。
属性域是属性的取值范围,即不同元组对同一个属性的取值所限定的范围。
基本属性项是不能再分解的属性项,组合属性是可以再分解成其他属性的属性。
2.实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。
联系可以分为以下三种:
一对一联系一对多联系多对多联系
3.E-R模型属于概念结构设计阶段的任务
4.一对多的关系,将“一”表中的主键作为外键放在“多”表中。
因此,外键总是在“多”的一方。
例如学院和系是一对多的关系,转换成的关系模型为
系(系编号,系名称,系主任,地址,电话号码,学院代码)
PK=〈系编号〉NOTNULL
FK=〈学院代码〉
5.多对多的关系,需要建立第3个关系,第3个关系的主键也是外键。
例如学生与课程之间是多对多的关系,引入第三个关系,即成绩关系,加一个分数属性。
成绩(学好,开课序号,分数)
PK=〈学号,开课号〉NOTNULL
FK=〈学号〉
FK=〈开课号〉
6.一对一的联系,将一个表的主键作为外键放在另一个表中。
外键通常是放在存取操作比较频繁的表中,或者根据问题的语义决定放在哪一个表中。
例如一位教师分配一台计算机的话,把计算机号作为外键放在教师这个表中
教师(教师号,教师姓名,性别,计算机号)
FK=〈教师号〉NOTNULL
设计题
1.
营业员(员工号,姓名,性别,地址,电话)
书(书号,书名,出版社,版次,出版日期,作者,书价,库存数量)
进书单(单据号,书号,进书日期,进价,数量)
销售(书号,销售日期,销售数量,售价,营业员号)
2.
客户记录(客户号,房产号,付款情况,地址,电话)
业务员(员工号,姓名,地址,电话)
房产(房产号,面积,地区)
销售(员工号,房产号,销售日期,价格)、
3
员工(员工号,姓名,地址,电话)
客户(客户号,姓名,地址,电话,余额)
存储(员工号,客户号,发生时间,金额)
存款单(单据号,客户号,资金量)
4.
M
商品
收银员
销售
售货单
1
售货单(单据号,商品号,数量,金额)
商品(商品号,单价,库存)
收银员(员工号,姓名,地址,电话)
销售(商品号,员工号,销售时间,发生金额)
第三章习题参考答案
1.
(1)D
(2)B(3)D(4)B(5)D(6)C(7)A(8)D(9)D(10)C
(11)B(12)D(13)B(14)D(15)A(16)A(17)A(18)C
(19)B(20)A(21)D(22)A(23)B(24)D(25)C(26)B
16.sele*from学生where姓名=“江利利”toscreen
17.sele*from课程表where课程名称=“银行学”;
toscreen
18sele*from成绩intotable成绩单
19.sele*from学生intotable学生名单where;
substr(学号,1,2)=“98”
20.sele*from学生intotable生名单orderby学号
21.sele*from成绩intotable成绩单orderby分数desc
22.sele*from成绩toscreen
23.sele*from学生
29.sele开课号,sum(分数)as分数
from成绩to0
screengroupby开课号
30.sele开课号,avg(分数)as课程平均分;
from成绩toscreen;
groupby开课号
31.sele学生.学号,学生.姓名,max(成绩.分数)as最高成绩;
from学生
innerjoin成绩on学生.学号=成绩.学号
groupby成绩.学号
32.sele学生.学号,学生.姓名,min(成绩.分数);
as最低成绩;
33.sele学生.姓名,课程表.课程名称,成绩.分数;
from华夏大学!
成绩
innerjoin华夏大学!
;
学生on成绩.学号=学生.学号;
课程表on成绩.开课号=课程表.开课号;
Where成绩.分数>
=90andleft(成绩.开课号,7)=“99-00-1”
34.sele学生.姓名,课程表.课程名称,成绩.分数;
from华夏大学!
innerjoin华夏大学!
学生on成绩.学号=学生.学号;
innerjoin华夏大学!
课程表on成绩.开课号=课程表.开课号;
Where成绩.分数<
60andleft(成绩.开课号,7)=“99-00-
第四章习题参考答案
SQL语句练习题参考答案
1、selectSname,Ssex,ClassfromStudent;
2、selectdistinctdepartfromteacher;
3、selectSnoas'
学号'
Snameas'
姓名'
Ssexas'
性别'
Sbirthdayas'
出生日期'
Classas'
班号'
fromstudent;
或
selectSnoas学号,Snameas姓名,Ssexas性别,Sbirthdayas出生日期,Classas班号fromstudent;
4、select*fromscorewheredegreebetween60and80;
或select*fromscorewheredegree>
=60anddegree<
=80;
5、select*fromscorewheredegreein(85,86,88);
6、select*fromstudentwhereclass='
95031'
orSsex='
7、select*fromstudentorderbyclassdesc;
8、select*fromscoreorderbycnoasc,degreedesc;
或select*fromscoreorderbycno,degreedesc;
9、selectcount(*)asCNTfromstudentwhereclass='
10、selectSnoas'
cnoas'
课程号'
degreeas'
最高分'
fromscore
wheredegree=(selectmax(degree)fromscore)
11、selectavg(degree)as课程平均分fromscorewherecno='
12、selectcno,avg(degree)fromscorewherecnolike'
3%'
groupbycnohaving
count(*)>
5;
13、selectSnofromscoregroupbySnohavingmin(degree)>
70andmax(degree)<
90;
14、selectstudent.Sname,sco
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 习题集 复习