数据试题库
① 数据库原理试题(简答)
1、DBS由哪几个部分组成?
答:DBS由四部分组成:数据库、硬件、软件、数据库管理员。
2.数据库的并发操作会带来哪些问题?
答:数据库的并发操作会带来三类问题:丢失更新问题;不一致分析问题和“脏数据”的读出。
3.简述采用E-R图方法的数据库概念设计的过程。
答:E-R模型的图示法:(1)实体集表示法; (2)属性表法; (3)联系表示法。
层次模型的基本结构是树形结构,具有以下特点:
(1)每棵树有且仅有一个无双亲结点,称为根;
(2)树中除根外所有结点有且仅有一个双亲。
从图论上看,网状模型是一个不加任何条件限制的无向图。
关系模型采用二维表来表示,简称表,由表框架及表的元组组成。一个二维表就是一个关系。
在二维表中凡能唯一标识元组的最小属性称为键或码。从所有侯选健中选取一个作为用户使用的键称主键。表A中的某属性是某表B的键,则称该属性集为A的外键或外码。
关系中的数据约束:
(1)实体完整性约束:约束关系的主键中属性值不能为空值;
(2)参照完全性约束:是关系之间的基本约束;
(3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。
4.简述客户/服务器式DBS的一般结构。此时数据库应用的功能如何划分?
答:DBS :数据库系统(Database System),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
② SQL数据库题目
1、创建数据库
create database 学生成绩数据库
on primary
(name='学生成绩数据库_mdf',
filename='e:\学生成绩数据库.mdb',
size=1,
maxsize=10,
filegrowth =10%)
log on
(name='学生成绩数据库_ldf',
filename='e:\学生成绩数据库.ldf',
size=1,
maxsize=10,
filegrowth =10%)
2、创建课程表
create table 课程表
(课程号 char(6) primary key,
课程名称 char(20) not null,
任课教师 char(8))
3、 创建学生表
create table 学生表
(学号 char(6) primary key,
姓名 char(8) not null,
性别 char(2) constraint ck_性别 check( 性别 in ('男','女')),
民族 char(20) not null default '汉')
4、创建成绩表
create table 成绩表
(学号 char(6) not null foreign key(学号) references 学生表(学号),
课程号 char(6) not null foreign key(课程号) references 课程表(课程号),
分数 int constraint ck_分数 check(分数 between 0 and 150))
5、添加信息
insert 课程表(课程号,课程名)
values ('100001', '大学语文')
insert 课程表(课程号,课程名)
values ('100002', '大学英语')
6. 写出创建成绩表视图(学号,姓名,课程号,课程名称,成绩)的代码
create view 成绩表视图
as
select 学生表.学号,姓名,课程表.课程号,课程名称,成绩
from 学生表,课程表,成绩表
where 学生表.学号=成绩表.学号 and 成绩表.课程号=课程表.课程号
7. 写出计算大学语文课程成绩最高分、最低分、平均分的代码
select max(分数) '最高分数',min(分数) '最低分数',avg(分数) '平均分数'
from 成绩表
where 学号 in (select 学号
from 课程表
where 课程名称='大学语文')
8、 检索姓李的女同学的信息:姓名、性别、民族
select 姓名,性别,民族
from 学生表
where 姓名 like '李%' and 性别='女'
③ SOL数据库题目
三、1.select*from职工where工资<avg(工资)
2.select*from职工orderby工资asc
3.select*from职工orderby工资computeavg(工资)by仓库号
4.insertinto仓库values('WH6','长沙',1000)
5.update职工set工资=工资+200where职工号='E006'
6.selecta.名字,a.仓库号,b.城市from职工ajoin仓库bona.仓库号=b.仓库号
7.select名字from职工where仓库号in(select仓库号from仓库,where城市='北京')
8.delete*from供应商where地址like'%长春%'
9.droptable职工
10.altertable职工addconstgzcheck(工资between1500and5000)
四、1.create database library
on primary --默认就属于Primary 主文件组,可省略
(
/*--数据文件的具体描述--*/
Name='library_data', --主数据库的物理名称
Filename='d:datalibrary_data.mdf' ,--主数据库的物理名称
size=5MB , --主数据库的初始大小
Maxsize=20Mb, --主数据库文件增长最大文件增长
Filegrowth =10%
)
Log on
(
/*--日志文件具体描述同上--*/
name='library_log',
Filename='e:datalibrary_log.ldf',
Size=2MB,
MaxSize=10MB,
FIleGrowth=1MB
)
五、1.create table 职工表(
职工编号 char(10)primary key,
姓名 char(30),
性别 char(2) check (性别='男' or 性别='女'),
出生日期 smalldatetime check (出生日期 > '1960-01-01'),
部门编号 char(10)FOREIGNKEYREFERENCES 部门表(部门编号)
)
2. (1)alter table 部门表 add部门经理char(10)
(2)select * from 图书表 where出版社编号 = (select 出版社编号 from出版社 where 出版社名称 = '清华大学出版社出版')
(3)select图书编号,书名 from 图书表 where书名 like '%数据库%'
(4) select * from 职工表 where 性别='女' and部门编号 in (select 部门编号 from 部门表 where 部门名称 = ‘文科图书室’) order by出生日期 desc
(5) select图书的编号,名称 from图书表 where 出版社编号 in (select 出版社编号 from出版社表 where出版社名称 = '机械工业出版社') and部门编号 in (select 部门编号 from部门表where 部门名称 = '理科图书室')
(6)select*from职工表 orderby 部门编号,性别 computecount(*)by部门编号,性别
(7) select 部门编号,count(*) as管理图书数目 from图书表 group by 部门编号 havingcount(*) >1000
(9) select 图书编号,书名 from图书表 where部门编号 in (select 部门编号 from职工表where姓名 like '%张%')
(10) select a.书名,a.作者,a.出版社编号,b.出版社名称,b.地址 into 新表 from图书表 a join出版社表 b on a.出版社编号= b.出版社编号