数据库简答题Word下载.docx
《数据库简答题Word下载.docx》由会员分享,可在线阅读,更多相关《数据库简答题Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
操作系统数据文件名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'
\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'
地址不详'
李斯文'
s25303'
22'
河南洛阳'
欧阳俊雄'
s25304'
34'
梅超风'
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仓库
仓库名varchar(10)notnull,
面积int
----添加数据
insertinto职工values('
E1'
王亮'
427'
)
E2'
李刚'
521'
E3'
张长弓'
625'
E4'
刘燕'
insertinto仓库values('
WH1'
燃料库'
500'
WH2'
原料库'
350'
insertinto管理values('
E2'
2update职工set工资=(工资+60)
where工资<
600
select职工名from职工
where职工号=(
select职工号from管理
where仓库号='
3select管理.职工号from管理,仓库where仓库.仓库名='
4selectavg(工资)
from职工
having职工号=(
查询
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