数据库简答题.docx

上传人:b****4 文档编号:2836404 上传时间:2022-11-15 格式:DOCX 页数:16 大小:76.23KB
下载 相关 举报
数据库简答题.docx_第1页
第1页 / 共16页
数据库简答题.docx_第2页
第2页 / 共16页
数据库简答题.docx_第3页
第3页 / 共16页
数据库简答题.docx_第4页
第4页 / 共16页
数据库简答题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据库简答题.docx

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

数据库简答题.docx

数据库简答题

考点:

数据库逻辑设计ER图

设某商业集团数据库中有三个实体集:

“公司”实体集,其中的属性有公司编号、公司名、地址等;“仓库”实体集,其中的属性有仓库编号、仓库名、规格、地址等;“职工”实体集,其中的属性有职工编号、姓名、性别等。

公司与仓库之间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工之间存在着“聘用”联系,每个可聘用的职工人数应该在10~40人之间,每个职工只能在一个仓库工作,仓库聘用职工有聘用期和工资。

(1)试画出ER图;

(2)将ER图转换成关系模型,并注明主码和外码。

解:

(1)ER图如下:

(2)将ER图转换成关系模型如下[注:

下划线表示为主码(关键字),波浪线为外码(外关键字)]:

公司(公司编号,公司名,地址)

仓库(仓库编号,仓库名,地址,公司编号)

职工(职工编号,姓名,性别,仓库编号,聘期,工资)

 

考点:

数据库建立和维护

1使用T-SQL语句建立一个宾馆数据库(要判断是否已经存在同名数据库,如果是,则删除后再新建),文件属性如下表:

(10分)

参数参数值

数据库名bg

逻辑数据文件名Bg_dat

操作系统数据文件名D:

\bg_dat.mdf

数据文件的初始大小2MB

数据文件的最大大小20MB

数据文件增长帐度2MB

日志逻辑文件名Bg_log

操作系统日志文件名D:

\bg_log.ldf

日志文件初始大小1MB

日志文件增长幅度15%

参考答案:

usemaster

Go

ifexists(select*fromsysdatabaseswherename=’bg')-------------2分

dropdatabasebg

createdatabasebg

on

(name=bg_dat,

filename='d:

\bg_dat.mdf',

size=2MB,

maxsize=20MB,

filegrowth=2MB)

logon

(name='bg_log',

filename='d:

\bg_log.ldf',

size=1MB,

filegrowth=15%)----------------------------------------------------------------------建数据库代码共8分,每个参数错了扣1分)

考点:

表的建立和维护

一、按下图所示创建表格stuinfo,其中字段Stuname为主键,性别为“男、女”,年龄<40类型请根据实际情况制定;并使用sql语句插入图1所示数据。

 

图1

createtablestuinfo

(stunamevarchar(20)primarykey,

stunovarchar(18),

stusexchar(5),

stuageint,

stuseatintidentity(1,1),

stuaddressvarchar(25),check(stusexin('男','女')andstuage<40))-----5分

insertintostuinfoselect'张秋丽','s25301','男','18','北京海淀'

unionselect'李文才','s25302','男','28','地址不详'

unionselect'李斯文','s25303','女','22','河南洛阳'

unionselect'欧阳俊雄','s25304','女','34','地址不详'

unionselect'梅超风','s25318','女','23','地址不详'--------------3分

1.(建表)创建表student(学号,姓名,性别,生源地,出生日期,系号),并在定义中声明

主键;学生的性别只能取‘男’或者‘女’;姓名不能为空;建立外键系号,关联表DEPARTMENT中的系号

答案:

createtablestudent(

学号char(10)primarykeynotnull,

姓名varchar(20)notnull,

性别char(4)default'男',

生源地varchar(12),

出生日期datetime,

check((性别='男')or(性别='女')),

foreignkey(系号)referencesdepartment(系号)

5.商品销售数据库

Article(商品号char(4),商品名char(16),单价Numeric(8,2),库存量int)

Customer(顾客号char(4),顾客名char(8),性别char

(2),年龄int)

OrderItem(顾客号char(4),商品号char(4),数量int,日期date)

1用SQL建立三个表,须指出该表的实体完整性和参照完整性,对性别和年龄指出用户自定义的约束条件。

(性别分成男女,年龄从10到100)。

顾客表的数据用插入语句输入数据,其它两表可用任意方式输入数据。

2检索定购商品号为‘0001’的顾客号和顾客名。

3检索定购商品号为‘0001’或‘0002’的顾客号。

4检索男顾客的人数和平均年龄。

5检索至少订购了3单商品的顾客号和顾客名及他们定购的商品次数和商品总数量,并按商品总数量降序排序。

【6】采用美国的ABCDE五级打分制来显示笔试成绩。

(表名为stumarks)

A级:

90分以上;B级:

80-89分;C级:

70-79分;D级:

60-69分;E级:

60分以下。

 

答案:

SelectstuNo,成绩=case

Whenwrittenexam<60then‘E’

Whenwrittenexambetween60and69then‘D’

Whenwrittenexambetween70and79then‘C’

Whenwrittenexambetween80and89then‘B’

Else‘A’

End

Fromstumarks

 

21职工(职工号、职工名、工资)管理(仓库号、职工号、领导)

E1王亮427WH1E3E3

E2李刚521WH1E4E3

E3张长弓625WH2E1E2

E4刘燕521WH2E2E2

仓库(仓库号、仓库名、面积)

WH1燃料库500

WH2原料库350

1.写出创建上面所示三个表的建表sql代码,其中职工表职工号为主键,仓库表仓库号为主键,管理表中仓库号为主键;并使用sql语句插入上图所示数据三个表的数据。

2.完成下列操作的SQL语言:

(1)将工资低于600元的所有职工工资增加60元。

(2)列出管理WH2仓库的所有职工的姓名。

(3)找出燃料库的领导职工号

(4)管理仓库WH1的所有职工的平均工资

1createdatabasefactory

usefactory

createtable职工(职工号vachar(10)primarykey,职工名varchar(10)notnull,工资int)

createtable管理

(仓库号vachar(10)primarykey,

职工号varchar(10)notnull,

领导varchar(10)

createtable仓库

(仓库号vachar(10)primarykey,

仓库名varchar(10)notnull,

面积int

----添加数据

insertinto职工values('E1','王亮','427')

insertinto职工values('E2','李刚','521')

insertinto职工values('E3','张长弓','625')

insertinto职工values('E4','刘燕','521')

insertinto仓库values('WH1','燃料库','500')

insertinto仓库values('WH2','原料库','350')

insertinto管理values('WH1','E3','E3')

insertinto管理values('WH1','E4','E3')

insertinto管理values('WH2','E1','E2')

insertinto管理values('WH2','E2','E2')

2update职工set工资=(工资+60)

where工资<600

select职工名from职工

where职工号=(

select职工号from管理

where仓库号='WH2')

3select管理.职工号from管理,仓库where仓库.仓库名='燃料库')

4selectavg(工资)

from职工

having职工号=(

select职工号from管理

where仓库号='WH1')

 

考点:

查询

1设关系模式SCG(S#,C#,grade)中S#为学生号,C#为课程号,grade为某学生学某号课程的考试成绩。

今要查询平均分数超过80分的课程的平均成绩,且要求查询的结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列。

写出SQL查询。

SelectC#,AVG(grade)

FromSCG

GroupbyC#

HavingAVG(grade)>80

Orderby2,C#desc

考点:

分组查询排序聚集函数难度:

2.(子查询)使用带有exists的子查询来表示:

查询至少选修了sno=1001012111所选修的全部课程的学生号码(表sc为课程表,sno表示学生号码)

参考:

selectdistinctsno

Fromscx

Wherenotexists

(select*fromscywherey.sno=’1001012111’andnotexists

(select*fromsczwherez.sno=x.snoando=o))

考点:

子查询除法难度:

8.查询选修了全部课程的学生姓名

student(sno,sname,sage)

course(cno,cname)

sc(sno,cno,grade)

答:

Selectsname

Fromstudent

Wherenotexists

(select*

fromcourse

Wherenotexists

(select*fromsc

Wheresno=student.sno

Andcno=o))

考点:

子查询除法难度:

5.已知:

Student(Sno,Sname,Sage,Ssex)学生表

Course(Cno,Cname,Tno)课程表

SC(Sno,Cno,score)成绩表

Teacher(Tno,Tname)教师表

查询“001”课程比“002”课程成绩高的所有学生的学号SQL语句答:

selecta.Snofrom(selectsno,scorefromscwhereCno='001')a,(sel

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

当前位置:首页 > 经管营销 > 经济市场

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

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