数据库操作题及答案.docx

上传人:b****9 文档编号:26294799 上传时间:2023-06-17 格式:DOCX 页数:13 大小:22.96KB
下载 相关 举报
数据库操作题及答案.docx_第1页
第1页 / 共13页
数据库操作题及答案.docx_第2页
第2页 / 共13页
数据库操作题及答案.docx_第3页
第3页 / 共13页
数据库操作题及答案.docx_第4页
第4页 / 共13页
数据库操作题及答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据库操作题及答案.docx

《数据库操作题及答案.docx》由会员分享,可在线阅读,更多相关《数据库操作题及答案.docx(13页珍藏版)》请在冰豆网上搜索。

数据库操作题及答案.docx

数据库操作题及答案

数据库操作题及答案

【篇一:

sql数据库复习资料操作题复习(带答案)】

本文件,文件名为学号姓名.sql,sql语句前加上题号。

(共60分)

一、创建数据库创建一个数据库,数据库名为student,主数据文件的逻辑名为student_data,物理名称为student_data.mdf,存放在d盘根目录下,初始大小为10mb,最大可增长到50mb,增长方式是按5%比例增长;日志文件的逻辑名称为student_log,物理名称为student_log.ldf,存放在d盘根目录下,初始大小为2mb,最大可增长到5mb,按1mb增长。

createdatabasestudentonprimary

(name=student_data,filename=d:

\student_data.mdf,size=10mb,maxsize=50mb,filegrowth=5%)logon(name=student_log,

filename=d:

\student_log.ldf,size=2mb,maxsize=5mb,filegrowth=1mb)

二、创建表createtable学生(学号char(8)primarykey,姓名char(20)notnull,性别char

(2)notnullcheck(性别in(男,女)),出生日期datetimenull)usestudent

createtable成绩(学号char(8),课程名varchar(30),成绩realnullcheck(成绩between0and100)primarykey(学号,课程名),

foreignkey(学号)references学生(学号))

3、在gxc数据库中创建商品表,表名:

sp。

结构如下:

usegxc

createtablesp(bhchar(20)primarykey,mcvarchar(50)notnull,xkcreal,sjmoney)

4、在gxc数据库中创建供应表,表名:

gy。

结构如下:

createtablegy

(ddhchar(10),bhchar(20)notnull,slfloatnotnullcheck(sl0),

jgmoney,

jsjdatetimedefault(getdate()),primarykey(ddh,bh),foreignkey(bh)referencessp(bh))

5、往表中插入以下记录:

insertintospvalues(2000000341316,精品红富士,200,3.50)

insertintospvalues(6930504300198,甜酒酿,50,2.00)insertinto

gyvalues(2007001,2000000341316,80,3.00,2007-6-1)insertinto

gyvalues(2007001,6930504300198,30,1.70,2007-6-1)

三、创建查询、视图、索引

(1)在student数据库完成下列各题

student表:

sno:

学号;sname:

姓名;sex:

性别;sbirth:

出生日期;sdept:

系别sc表:

sno:

学号;cname:

课程名称;grade:

成绩

1、查询性别为“男”的学生的基本情况,并按学号升序排序;select

*from学生where性别=男orderby学号asc

2、查询所有选修“数据库原理”的学生的学号、成绩。

select学生.学号,成绩from学生,成绩where学生.学号=成绩.学号and课程名=数据库原理

3、创建视图view1,查询缺少成绩的学生的学号和相应的课程名。

createviewview1asselect学号,课程名from成绩where成绩

isnull

4、创建视图view2,查询出所有学生的学号、姓名、性别和年龄,该视图定义加密,即带withencryption参数。

createviewview2withencryptionas

select学号,姓名,性别,year(getdate())-year(出生日期)年龄from学生

5、查询出所有姓李,并且名为单个字的学生的基本信息。

select*

fromstudentwheresnamelike李_

6、使用外部连接,查询每个学生基本信息及其选课情况,如果学生没有选课,也显示其基本信息。

selectstudent.*,cname,gradefromstudentleftjoinsconstudent.sno=sc.sno

7、查询选修了两门及两门以上课程的学生的学号。

提示:

使用groupby和having子句。

selectsnofromscgroupbysnohavingcount(cname)=2

8、查询有选课记录的所有学生的学号,用distict限制结果中的学号不重复。

selectdistinctsnofromsc

9、将view1的所有学生年龄增加一岁。

思考:

能否实现,如果不能实现指明原因?

updateview1set年龄=年龄+1不能实现,因为年龄是计算得到的,无法转换为对表的修改。

10、创建一个带withcheckoption参数的视图view2,其内容是查询所有女生的基本信息。

createviewview2as

select*

fromstudentwheresex=女withcheckoption

11、使用insert语句向view2中插入数据(‘95003,'‘张三',‘男')。

思考:

能否实现,如果不能实现指明原因?

insertintoview2(sno,sname,sex)values(95003,张三,男)不能实

现,因为视图定义中有withcheckoption,更新的数据必须符合视图定义的条件。

12、分别统计各门课程的平均分、最高分。

提示:

使用groupby

子句select课程名,avg(成绩)平均分,max(成绩)最高分from成绩groupby课程名

13、根据实际情况为成绩表的成绩字段创建索引,索引名为

cjindex。

createindexcjindexon成绩(成绩)

(2)在gxc数据库中完成下列各题

1、查询“精品红富士”最近一次进货的进价。

提示:

可按照进货时间排序。

selecttop1jgfromgy,spwheregy.bh=sp.bhandmc=精品红富士orderbyjsjdesc

2、创建视图view1,查询库存不足的商品基本信息,库存不足指现库存量小于50。

该视图定义加密,即带withencryption参数。

createviewview1withencryptionasselect*fromspwherexkc50

3、根据实际情况为商品表的现库存量字段创建索引,索引名为

kcindex。

createindexkcindexonsp(xkc)

4、查询“精品红富士”本年的供应情况。

selectgy.*fromgy,sp

wheregy.bh=sp.bhandmc=精品红富士andyear(jsj)=year(getdate())

5、创建视图view1,查询库存充足的商品基本信息,库存充足指现库存量大于100。

该视图定义加密,即带withencryption参数。

createviewview1withencryptionas

select*fromspwherexkc100

6、删除视图view1。

dropviewview1

7、根据实际情况为商品表的商品名称字段创建索引,索引名为spindex。

createindexspindexonsp(mc)

8、删除索引spindex。

dropindexspindex

【篇二:

数据库期末考试试题及答案】

=txt>1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

在这几个阶段中,数据独立性最高的是(a)阶段。

a.数据库系统b.文件系统c.人工管理d.数据项管理

2.数据库三级视图,反映了三种不同角度看待数据库的观点,用户眼中的数据库称为(d)。

a.存储视图b.概念视图c.内部视图d.外部视图

3.数据库的概念模型独立于(a)。

a.具体的机器和dbmsb.e-r图

c.信息世界d.现实世界4.数据库中,数据的物理独立性是指(c)。

a.数据库与数据库管理系统的相互独立

b.用户程序与dbms的相互独立

c.用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的

d.应用程序与数据库中数据的逻辑结构相互独立

5.关系模式的任何属性(a)。

a.不可再分b.可再分

c.命名在该关系模式中可以不惟一d.以上都不是

6.下面的两个关系中,职工号和设备号分别为职工关系和设备关系的关键字:

职工(职工号,职工名,部门号,职务,工资)设备(设备号,职工号,设备名,数量)两个关系的属性中,存在一个外关键字为(c)。

a.职工关系的“职工号”b.职工关系的“设备号”

c.设备关系的“职工号”d.设备关系的“设备号”

7.以下四个叙述中,哪一个不是对关系模式进行规范化的主要目的

(c)。

a.减少数据冗余b.解决更新异常问题

c.加快查询速度d.提高存储空间效率

8.关系模式中各级范式之间的关系为(a)。

a.

c.b.d.

9.保护数据库,防止XX或不合法的使用造成的数据泄漏、非法更改或破坏。

这是指数据的(a)。

a.安全性b.完整性c.并发控制d.恢复

10.事务的原子性是指(b)。

a.事务一旦提交,对数据库的改变是永久的

b.事务中包括的所有操作要么都做,要么都不做

c.一个事务内部的操作及使用的数据对并发的其他事务是隔离的

d.事务必须使数据库从一个一致性状态变到另一个一致性状态

11.下列哪些运算是关系代数的基本运算(d)。

a.交、并、差b.投影、选取、除、联结

c.联结、自然联结、笛卡尔乘积d.投影、选取、笛卡尔乘积、差运算

12.现实世界“特征”术语,对应于数据世界的(d)。

a.属性b.联系c.记录d.数据项

13.关系模型中3nf是指(a)。

a.满足2nf且不存在传递依赖现象

b.满足2nf且不存在部分依赖现象

c.满足2nf且不存在非主属性

d.满足2nf且不存在组合属性

14.下面关于关系性质的叙述中,不正确的是(d)。

a.关系中元组的次序不重要b.关系中列的次序不重要

c.关系中元组不可以重复d.关系不可以为空关系

15.数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为(c)。

a.数据定义功能b.数据管理功能

c.数据操纵功能d.数据控制功能

16.候选码中的属性可以有(c)。

a.0个b.1个c.1个或多个d.多个

17.取出关系中的某些列,并消去重复元组的关系代数运算称为

(b)。

a.取列运算b.投影运算c.连接运算d.选择运算

18.候选码中的属性称为(b)。

a.非主属性b.主属性c.复合属性d.关键属性19.对现实世界进行第二层抽象的模型是(c)。

a.概念数据模型b.用户数据模型

c.结构数据模型d.物理数据模型

20.在关系模式r(a,b,c,d)中,有函数依赖集f={b→c,c→d,d→a},则r能达到(b)。

a.1nfb.2nfc.3nfd.以上三者都不行二、填空题(每空1分,共20分)

1.数据库保护包括(安全性保护、完整性保护、并发控制、故障恢复)

四个方面内容。

2.二元实体间的联系通常可分为(1:

1、1:

n、m:

n)三种。

3.数据库系统中数据的独立性包括(-物理独立性、逻辑独立性)两个方面。

4.数据库设计通常包括(结构特性(静态)、行为特性(动态))两方面内容。

5.根据数学理论,关系操作通常有(关系代数)和(关系演算)两类。

6.构成e-r图的三个基本要素为(实体、属性、联系)。

8.ibm公司的研究员e.f.codd于1970年发表了一篇著名论文,主要是论述(关系)模型。

9.判断分解后的关系模式是否合理的两个重要标志是分解是否满足关系的(无损连接性(不失真)、依赖保持性)。

三、计算题(8分,每小题2分)

若关系x、y、z如图所示,求:

(1)∏a,c(x)解:

a

a1

a2

a3

a3

a4

a1解:

aa1a4a1

(3)x?

y解:

a1bcb'b2'cc1c1c2c4c2c2a1c4(x)b1c1c2c2c2b1b1a3b1

xyzaa1a2a3a3a4a1bb1b3b2b1b1ccdbcc1c4c1c4c2c2c1d1c2d2c3d3b1c2b2c4b1c1a1b2b1c2

四、应用题(12分,每小题3分)设有三个关系:

s(s#,sname,age,sex)c(c#,cname,teacher)sc(s#,c#,grade)试用关系代数表达式表示下列查询语句:

(1)检索至少选修两门课程的学生学号(s#)。

(2)检索全部学生都选修的课程的课程号(c#)和课程名(cname)。

(3)检索选修课程包含“陈军”老师所授课程之一的学生学号(s#)

(4)检索选修课程号为k1和k5的学生学号(s#)。

五、证明题(10分c#='k1∨'c#='k5'2.设关系模式r(abc),函数依赖f={a→b,b→a,a→c}满足3nf还是满足bcnf,试说明理由(5分)解:

1.设r1=abc,r2=cd

∵r1∩r2=c,r2-r1=d,而c→d(已知),故r1∩r2→r2-r1成立2.对于关系模式r(abc),函数依赖f={a→b,b→a,a→c},分析可知,该关系模式关键字为a。

同样由分析可得,该关系模式不存在非主属性b、c对关键字a的

部分依赖和传递依赖

现象,r∈3nf,但由于b→a(已知),而b不是关键字,故该关系模式r∈bcnf不成立。

(5分)

六、程序设计题(20分)设有如下4个关系模式:

s(sn,sname,city)p(pn,pname,color,weight)

j(jn,jname,city)

spj(sn,pn,jn,qty)

其中:

s表示供应商,sn为供应商编码,sname为供应商名字,city为供应商所在城市;p表示零件,pn为零件编码,pname为零件名字,color为零件颜色,weight为零件重量;j表示工程,jn为工程编码,jname为工程名字,city为工程所在城市;spj表示供应关系,qty表示提供的零件数量。

写出实现以下各题功能的sql语句:

(1)取出所有工程的全部细节。

(2分)

select*

fromj;

(2)取出所在城市为南京的所有工程的全部细节。

select*

fromj

wherecity='南京';

(3)取出为所在城市为上海的工程提供零件的供应商编码。

selectdistinctsn

fromspj

wherejnin

(selectjn

fromj

wherecity='上海');

(4)取出为所在城市为上海或北京的工程提供红色零件的供应商编码。

(2分)selectsn

fromspj

wherejnin

(selectjn

fromj

wherecity='上海'orcity=北京'')

andpnin

(selectpn

fromp

wherecolor='红')

(5)取出供应商与工程所在城市相同的供应商提供的零件编码。

(3分)

selectspj.pn

froms,j,spj

篇三:

史上最全oracle数据库基本操作练习题(含答

案)】

xt>使用表:

员工表(emp):

(empnonumber(4)notnull,--员工编号,表示唯一

enamevarchar2(10),--员工姓名jobvarchar2(9),--员工工作职位mgrnumber(4),--员工上级领导编号hiredatedate,--员工入职日期salnumber(7,2),--员工薪水commnumber(7,2),--员工奖金deptnonumber

(2)—员工部门编号)部门表(dept):

(deptnonumber

(2)notnull,--部门编号

dnamevarchar2(14),--部门名称locvarchar2(13)—部门地址)说明:

增删改较简单,这些练习都是针对数据查询,查询主要用到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等。

建表脚本(根据需要使用)

建表脚本.txt练习题:

1.找出奖金高于薪水60%的员工信息。

select*fromempwherecommsal*0.6;

2.找出部门10中所有经理(manager)和部门20中所有办事员(clerk)的详细资料。

select*fromempwhere(job=manageranddeptno=10)or(job=clerkanddeptno=20);

3.统计各部门的薪水总和。

selectdeptno,sum(sal)fromempgroupbydeptno;

4.找出部门10中所有理(manager),部门20中所有办事员(clerk)以及既不是经理又不是办事员但其薪水大于或等2000的

所有员工的详细资料。

select*fromempwhere(job=manageranddeptno=10)or

(job=clerkanddeptno=20)or(jobnotin(manager,clerk)andsal2000);

5.列出各种工作的最低工资。

selectjob,min(sal)fromempgroupbyjob;

6.列出各个部门的manager(经理)的最低薪水。

selectdeptno,min(sal)fromempwherejob=managergroupbydeptno;

7.找出收取奖金的员工的不同工作。

selectdistinct(job)fromempwherecommisnotnull;

8.找出不收取奖金或收取的奖金低于300的员工。

select*fromempwherecommisnullorcomm300;

9.找出各月最后一天受雇的所有员工。

select*fromempwherehiredate=last_day(hiredate);

10.显示所有员工的姓名,首字母大写。

selectinitcap(ename)fromemp;

11.显示正好为5个字符的员工的姓名。

12.显示不带有“r的”员工姓名。

selectenamefromempwhereenamenotlike%r%;

13.显示所有员工的姓名的前三个字符。

selectsubstr(ename,0,3)fromemp;

14.显所有员工的姓名,用a替换所有姓名中的a。

selectreplace(ename,a,a)fromemp;

15.显示所有员工的姓名以及工作10年后的日期。

selectename,add_months(hiredate,10*12)fromemp;

16.显示员工的详细资料,按姓名排序。

select*fromemporderbyename;

17.列出从事同一种工作但属于不同部门的员工的不同组合。

selectdistinct(t1.ename),t1.job,t1.deptnofromempt1,(selectjob,deptnofromemp)t2wheret1.job=t2.jobandt1.deptno!

=t2.deptno;

18.显示员工姓名,根据其服务年限,将最老的员工排在最前面。

selectenamefromemporderbyhiredate;

19.列出按年薪排序的所有员工的年薪。

select(sal+nvl(comm,0))*12as年薪fromemporderbysal;

20.列出最低薪水大于1500的各种工作。

selectjobfromempgroupbyjobhavingmin(sal)1500;

21.显示所有员工的姓名和加入公司的年份和月份,将员工入职年月从低到高排序。

selectename,to_char(hiredate,yyyy)asyear,to_char(hiredate,mm)asmonthsfromemporderbymonths;

22.显示在一个月为30天的情况下所有员工的日薪水,取整。

selecttrunc((nvl(comm,0)+sal)/30,0)as日薪fromemp;

解释:

nvl(comm,0)如果是null则转换为0,如果不是null,这保持原值。

23.找出在(任何年份的)2月受聘的所有员工。

select*fromempwhereto_char(hiredate,mm)=2;

24

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1