数据库管理系统技术、应用与实例分析SQL_Server_2005(第2版)孟宪虎-电子工业出版社-课后实验参考答案[1]

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验参考答案

实验四

(1)创建表

①使用对象资源管理器创建

②使用DDL语言定义基本表.

有一个项目管理(xmgl)数据库,现有四张表,分别是部门表(部门号,部门名,部门电话,部门地址);员工表(员工号,姓名,性别,出生年月,所在部门号);项目表(项目编号,项目名称,所在地方)以及员工参与项目(员工号,项目编号,职责)。其中一个员工属于一个部门,一个部门有多个员工;一个员工可同时参加多个项目,一个项目有多个员工一起开发。用SQL语言中的DDL语言建立这四张表,设计并定义表的主码和外码,各字段的数据类型自己设计。

部门表的创建:

create table部门表(

部门号char(4),

部门名char(10),

部门电话char(13),

部门地址char(30),

部门人数char(4),

primary key(部门号)

)

员工表的创建:

create table员工表(

员工号char(4),

姓名char(8),

性别char(2),

出生年月datetime,

所在部门号char(4),

primary key(员工号),

foreign key(所在部门号) references部门表(部门号)

)

项目表的创建:

create table项目表(

项目编号char(5),

项目名称char(20),

所在地方char(30),

项目类型char(10),

primary key(项目编号)

)

员工参与项目表的创建:

create table员工参与项目表(

员工号char(4),

项目编号char(5),

职责char(10),

primary key(员工号,项目编号),

foreign key(员工号) references员工表(员工号),

foreign key(项目编号) references项目表(项目编号)

)

所得结果为:

(2)从sysobjects、sysindexes和syscolumns,sysrefrences表中查看关于上

述创建的表的信息。

sysobjects表:

sysindexes表:

Syscolumns表:

Sysrefrences表:

(3)使用对象资源管理器定义下面的约束。

①员工号是四位数字串,其中第一位和最后一位是取1-9之间的数字,其他是0-9。

②项目编号是以字母J开始的其它是数字的4位字符串。

③约束性别的取值为‘男’、‘女’,且非空,缺省是男。

④约束电话号码的格式:以8892开始的,第5位取234中的一个,其它是数字的8位数字串。

(4)使用DDL语言增加修改部分表及字段

①在部门表中增加部门领导字段(注意和员工号同域);在项目表中增加项目主管字段(注意和员工号同域);

②在员工表中增加技术职称和工资字段,其中工资为数字类型;

③在项目表中增加开工日期和完工日期字段,类型为日期类型;alter table项目表

add开工日期datetime

alter table项目表

add完工日期datetime

④增加约束工程起始日期小于计划完成日期。

alter table项目表

add check(开工日期<完工日期)

⑤修改部门人数字段类型为整型。alter table部门表

alter column部门人数int

⑥删除项目表中的项目类型字段。alter table项目表

drop column项目类型

实验五

(1)调出第4章实验创建的四个表。方法:附加XMGL数据库或运行创建4个表的SQL语句。

(2)用SQL语句增加数据语句输入四个表中数据。其中部门表不得少于5个,员工表不得少于10个,项目表不得少于10个,员工参与项目的情况表不得少于20个。

(3)设计查询语句并在查询编辑器中进行查询。

①求参加'J3'项目的员工姓名

--请参加了‘J3’项目的员工姓名

select 姓名

from 员工参与项目表,员工表

where 项目编号='J3'

and 员工表.员工号=员工参与项目表.员工号

②查询'张明'这个职工所参加的项目的项目号,项目名称以及项目所在地方。select 项目表.项目编号,项目名称,所在地方

from 员工参与项目表,员工表,项目表

where 员工表.员工号=员工参与项目表.员工号

and 员工参与项目表.项目编号=项目表.项目编号

and 姓名='张明'

③查询参与了所有项目的员工姓名和员工所在的部门。

select 姓名,所在部门号

from 员工表

where not exists

(select *

from 项目表

where not exists

(select *

from 员工参与项目表

where 员工号=员工表.员工号

and 项目编号=项目表.项目编号))

④查询没有参与任何一个项目的员工姓名和所在部门。select 姓名,所在部门号

from 员工表

where not exists

(select *

from 项目表

where exists

(select *

from 员工参与项目表

where 员工号=员工表.员工号

and 项目编号=项目表.项目编号))

⑤查询所有部门都有员工参与的项目。

相关文档
最新文档