1)同一属性的数据具有同质性。每一列中的分量是同一类型的数据,来自同一个域。
2) 同一关系的属性名具有不能重复性。 3) 关系中的列位置具有顺序无关性。
4) 关系具有元组无冗余性。关系中的任一两组不能完全相同。 5) 关系中的元组位置具有顺序无关性。 6) 关系中每一个分量必须是不可分的数据项
3.什么叫数据模式,它分哪三级
答:在数据模型中有关数据结构及其相互间关系的描述被称为数据模式。数据模式被分为外模式、概念模式和内模式三级。
概念模式:又简称为模式,是关于整个数据库中数据的全局逻辑结构的描述。 外模式:又称为子模式、用户模式,是关于某个用户所需数据的逻辑结构的描述。外模式可由概念模式推导而出,是概念模式的一个子集
内模式:又称为物理模式、存储模式,是关于数据库中数据的存储方式和物理结构的描述。
4、在E-R模型中联系是用来反映什么样的信息,它有几种类型?
答:用来反映为实体(型)内部的联系和实体(型)之间的联系,实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。 联系可分为三种: (1) 一对一联系(1:1) (2) 一对多联系(1:n) (3) 多对多联系(m:n)。 5、什么是视图?它有何作用?
答:视图是命名的、从基本表中导出的虚表。它在物理上并不存在。存在的只是它的定义;视图中的数据是从基本表中导出的。每次对视图查询都要重新计算;视图之上可以再定义视图。
视图的作用是让一定权限的操作者不用操作基本表就能满足其相应的操作要求,从而实现了对数据的安全管理。
6、数据库的结构数据模型有哪几种?按此划分SQL SERVER属于哪种类型? 数据模型有层次模型,网状模型,关系模型,面向对象数据模型,对象关系模型。按此划分SQL SERVER属于关系模型。
得分 阅卷教师 四、SQL语言(共30分)
6
表1 部门表 部门编号 10 20 30 40 表2 雇员表
雇员姓名 年龄 受雇时间 工资 电话编号 7369 史大山 7499 艾伦 30 25 号码 2006/07/1560 6696030 901 30 部门编号 20 部门名称 财务部 研发部 销售部 公司总部 部门所在地 深圳 北京 广州 上海 2000/10/1936 6698201 030 7521 福特 28 2002/05/1830 6789110 234 10 7566 王琼 35 1998/12/2975 5678920 012 10 7654 马克 20 2007/07/1830 6696020 001 30
7
1、根据表1和表2,用SQL语句创建雇员表和部门表(6分) 假设有雇员关系表格,它的结构如下:
雇员( 雇员编号,雇员姓名,年龄,受雇时间, 薪水, 电话号码, 部门编号)。雇员编号 为主键, 部门编号为外键。
部门(部门编号,部门名称,部门所在地)主键是部门编号
Create table 部门表 (部门编号 char(4) not null primary key, 部门名称 char(12), 部门所在地 char(4));
Create table 雇员表 (雇员编号 char(4) not null primary key,
雇员姓名 char(12), 年龄 int, 受雇时间 datetime, 薪水 decimal(7,2), 电话号码 char(6), 部门编号 char(4) foreign key references 部门(部门编号));
2、请写出下列查询和操作SQL语句。20分
1)以递增的方式列出职工的部门号码(不重复);
select distinct部门编号from 雇员表 order by 部门编号 asc;
2)查找AGE年龄为35岁的职工全部信息;
select * from 雇员表 where 年龄=35;
3)查询在部门20或者30工作的,工资大于1600,年龄大于35岁的职工信息。
Select * from 雇员表 where (部门编号=20 OR 部门编号=30) and 工资>1600 and 年龄>35;
4)计算最高,最低和平均工资;
select max(工资), min(工资) avg(工资) from 雇员表;
5) 找处职工不足3人的部门及其相应的职工数;
select 部门编号, count(*) from 雇员表 group by 部门编号 having count(*)<3;
6. 将部门号为10部门所有人员工资提高20%。
Update 雇员表 set 工资=工资+0.2*工资 where 部门编号=10;
8
7.从雇员中找出工资大于平均工资的职工信息。
Select * from 雇员表 where 工资>(select avg(工资) from 雇员表);
8.删除在部门10的,工资大于2500的职工信息
delete from 雇员表 where 工资>2500 and 部门编号=10;
9. 从雇员表雇员中选取工资大于150元职工的雇员编号,雇员姓名,工资和部门编号,构成一个雇员工资视图。
Create view 雇员工资 (雇员编号,雇员姓名,工资, 部门编号) as select 雇员编号, 雇员姓名, 工资, 部门编号 from 雇员表 where 工资>150;
10.查询马克所在部门名称
Select 姓名,部门名称from 雇员表,部门表 where 雇员表.部门编号=部门表.部门编号
9