实验六



课程名称:

SQL

Server

数据库基础

任课教师:

池宗琳

实验名称:

视图、规则和索引的使用

年级、专业:

2018级电子信息工程

号:

20181060199

名:

苟诚

日期:

2019

云南大学

信息学院

一、实验目的1、掌握视图的创建、修改和删除操作

2、掌握规则的创建、绑定、解除和删除操作

3、掌握索引的创建、修改和删除操作

二、实验内容、方法、步骤和实验结果与分析

(一)视图

1.创建视图view1,使该视图中包含HrSystem数据库中一个员工的明细信息(视图中的列名全部使用中文)。

use

HrSystem

go

create

view

view1

as

select

e.Emp_id

as

员工编号,e.Emp_name

as

员工姓名,e.Sex

as

性别,e.Title

as

职务,e.Wage

as

工资,e.IdCard

as

身份证,d.Dep_id

as

部门编号

from

Employees

e

inner

join

Departments

d

on

e.Dep_id

=d.Dep_id

2.显示第1题创建的视图view1的所有数据。

use

HrSystem

go

select

all

*

from

view1

go

3.利用第1题创建的视图view1,列出视图中所有姓李的员工的所有信息。

use

HrSystem

go

select

all

*

from

view1

where

员工姓名='李%'

go

4.使用ALTER

VIEW修改第1题创建的视图view1,使其只包含所有员工的姓名、职务和部门三列(视图中的列名全部使用中文)。

use

HrSystem

go

alter

view

view1

as

select

e.Emp_name

as

员工姓名,e.Title

as

职务,d.Dep_name

as

部门名字

from

Employees

e

inner

join

Departments

d

on

e.Dep_id

=d.Dep_id

go

5.删除以上创建的视图view1。

use

HrSystem

go

drop

view

view1

go

(一)规则

以下操作均针对数据库HrSystem。

1.使用CREATE

RULE语句创建规则SexRule,指定变量@sex的取值只能为‘男’或‘女’。

use

HrSystem

go

create

rule

SexRule

as

@sex

in

('男','女')

go

2.完成后,在对象资源管理器中展开数据库HrSystem->“可编程性”->“规则”,确认可以看到规则SexRule。

3.使用存储过程sp_bindrule可以将规则SexRule绑定到表Employees的列Sex上。

use

Hrsystem

go

exec

sp_bindrule

'SexRule','Employees.Sex'

go

4.执行下面的INSERT语句,向表Employees中插入一条记录。

use

Hrsystem

go

insert

into

Employees(Emp_name,Sex,Title,Wage,IdCard,Dep_id)

values('小李','无','职员',10000,'110123xxxx',1)

go

确认是否可以成功执行INSERT语句,为什么?

答:不可以,因为插入的记录中Sex的值与创建的规则发生冲突。

5.使用存储过程sp_unbindrule取消表Employees的列Sex上绑定的规则。成功后再执行第4步中的INSERT语句,确认是否可以成功执行INSERT语句,为什么?

use

Hrsystem

go

exec

sp_unbindrule

'Employees.Sex'

go

use

Hrsystem

go

insert

into

Employees(Emp_name,Sex,Title,Wage,IdCard,Dep_id)

values('小李','无','职员',10000,'110123xxxx',1)

go

可以,因为表列与规则之间的绑定已经解除,列Sex与规则SexRule就不会发生冲突

6.使用DROP

RULE删除规则SexRule。完成后,在对象资源管理器中展开数据库HrSystem->“可编程性”->“规则”,确认是否可以看到规则SexRule。

USE

HrSystem

go

DROP

RULE

SexRule

go

(二)索引

执行以下语句,利用数据库HrSystem的表Employees产生一个新表emp,该新表包含了表Employees中的所有记录。

use

Hrsystem

select

*

into

emp

from

Employees

1.在新表emp上建立一个唯一聚集索引,索引名称为name_ind,索引字段为Emp_name。

use

Hrsystem

go

create

unique

nonclustered

index

[name_ind]

on

[dbo].[emp](Emp_name)

go

2.使用SQL

Server

Management

Studio查看索引name_ind的属性信息。

3.使用DROP

INDEX语句删除第1题创建的索引name_ind。

use

Hrsystem

drop

index

emp.name_ind

三、实验小结【对自己而言,通过实验学到的关键技术方法】

通过这次实验,我学会使用和建立视图,规则和索引,也学会了检查建立查询时候的一些错误和修改方法。通过了这次实验,我又进一步学会了对于SQL数据库的一些基本操作,下来课后,我也要进一步完善自己对于SQL语句的熟练程度,更有助于自己对SQL的学习。

    版权声明:此文自动收集于网络,若有来源错误或者侵犯您的合法权益,您可通过邮箱与我们取得联系,我们将及时进行处理。

    本文地址:https://www.feisuxs.com/wenku/jingpin/5/1205066.html

相关内容

热门阅读

最新更新

随机推荐