数据库原理实验报告分析 下载本文

(4)创建索引。

要求: ①在人员表的姓名列上创建一个单列索引name_sort

create index name_sort on person(P_name);

②在人员表的出生日期列和姓名列上创建一个组合索引birth_name

create clustered index birth_name on person(BirthDate,P_name);

③在人员表的姓名列上创建一个唯一索引u_name_sort

create unique index u_name_sort on person(P_name);

④创建月薪表上基于fact的索引fact_idx

create index fact_idx on salary(fact);

(5)删除索引。

要求:删除月薪表上的索引fact_idx

drop index salary.fact_idx;

三、实验总结

1.在表的创建的时候要注意什么问题? 答:完整性约束语的应用语法, 表间关系,和建立顺序。 2.自己在这次实验中遇到什么问题?怎么解决的?答:视图和索引的标点要不要加的问题。尝试找到正确的。

实验三 数据操作

一、实验目的

掌握SQL Server的数据操作语言;

掌握SQL Server数据操作的管理器处理方式; 掌握SQL Server 2005定义视图语言。

二、实验内容

(1)利用SQL语句向表person、salary和dept中插入数据。 要求:按表3-1、表3-2及表3-3中的数据插入。

表3-1 表person中的数据 P_no 000001 000002 000003 000004 000005 000006 000007 000008 000009 000010 P_name Sex 王云 男 谢志文 男 李浩然 男 廖小玲 女 梁玉琼 女 罗向东 男 肖家庆 男 胡溧阳 男 肖丽丽 女 黄剑祥 男 BirthDate 1973-4-7 1975-2-14 1970-8-25 1979-8-6 1970-8-25 1979-5-11 1963-7-14 1979-6-15 1968-8-19 1965-9-19 Prof 中级 中级 高级 初级 中级 初级 高级 中级 中级 高级 Deptno 0001 0001 0002 0002 0003 0003 0003 0001 0002 0003 表3-2 表salary中的数据 P_no 000001 000002 000003 000004 000005 000006 000007 000008 000009 000010 Base 2100 1800 2800 2500 2300 1750 2400 2900 2700 2300 Bonus 300 300 280 250 275 130 210 200 210 210 Fact Month 1 1 1 1 1 1 1 1 1 1 表2-3 表dept中的数据 Deptno 0001 0002 0003 Dname 人事部 财务部 市场部 insert

into dept (Deptno,Dname) values ('0001','人事部')

insert

into person (P_no,P_name,Sex,BirthDate,Prof,Deptno) values ('000001','王云','男',1973-4-7,'中级','0001')

insert

into salary (P_no,Base,Bonus,Month) values ('000001',2100,300,1)

(2)用SQL语句修改表中的数据。

要求:将salary表中工号为000006的员工工资增加为1800,奖金增加为160。

update salary

set Base=1800,Bonus=160 where P_no='000006'

(3)用SQL语句删除表中的数据。

要求:删除person表中工号为000010的员工数据

delete from salary

where P_no='0000010' delete from person

where P_no='0000010'

(4)更新视图。

要求:将员工视图PersonView中姓名为王云的员工职称改为高级。

update PersonView set Prof='高级' where P_name='王云'

(5)向视图插入数据。

要求:向视图PersonView中插入一行数据(‘000011’,‘刘美萍’,‘女’,‘中级’,‘0002’)。

insert

into PersonView (P_no,P_name,Sex,Prof,Deptno) values ('000011','刘美萍','女','中级','0002')

(6)删除视图。

要求:将视图PersonView删除。 drop View PersonView;

三、实验总结

1.在删除员工工号为?000010?的员工数据时遇到了什么问题?必须怎么处理? 答:Person表 被salary表引用,所以不能执行该命令。必须先将salary表中的员工工号为?000010?的员工数据删除,才能删除Person表中员工工号为?000010?的员工数据。

2.对于三个表来说,插入数据的顺序应该是怎样的?

答:先插入表dept,再插入Person表,最后插入salary表。

实验四 数据查询

一、实验目的

掌握SQL Server的数据查询语言;

掌握SQL语言在不同情况下的灵活应用。

二、实验内容

(1) 利用SQL语句查询person表中的所有数据。

select * from person;

(2) 条件查询。

要求:①查询person表中所有不重复的职称

select distinct Prof from person

②查询person表中职称为中级的所有员工数据

select * from person where Prof='中级'

③查询person表中具有高级职称的男员工信息

select *