实验8 视图和索引
一、 实验目的
1、了解索引的使用。
2、了解视图的使用
二、实验内容
1、新建
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
并插入数据
· 建表
create table index1
(
STID int not null,
name1 varchar(10),
score int
)
· 向表中插入数据
declare @a int
set @a=1
while (@a<10)
begin
insert into index1 values(@a,'clm',100-@a)
set @a=@a+1
end
2、 视图操作
· 新建视图View1
create view view1 as select * from index1
· 从视图中查询
select * from view1
· 在表中插入一条新记录
insert into index1 values(23,'slc',77)
· 从视图中删除记录
delete from view1 where score=99
select * from index1
· 从视图中更新记录
update view1 set name1='wyl'where score=98
· 创建视图不能和INTO连用
create view view5 as select * into index1 from index1
· 删除视图
drop view view4
3、高级视图
· 使用 WITH ENCRYPTION
下例使用 WITH ENCRYPTION 选项并显示计算列、重命名列以及多列。
USE pubs
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME = 'accounts')
DROP VIEW accounts
GO
CREATE VIEW accounts (title, advance, amt_due)
WITH ENCRYPTION
AS
SELECT title, advance, price * royalty * ytd_sales
FROM titles
WHERE price > $5
GO
· 使用 WITH CHECK OPTION
下例显示名为 CAonly 的视图,该视图使得只对加利福尼亚州的作者应用数据修改。
USE pubs
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME = 'CAonly')
DROP VIEW CAonly
GO
CREATE VIEW CAonly
AS
SELECT au_lname, au_fname, city, state
FROM authors
WHERE state = 'CA'
WITH CHECK OPTION
GO
· 在视图中使用内置函数
下例显示包含内置函数的视图定义。使用函数时,必须在 CREATE VIEW 语句中为派生列指定列名。
USE pubs
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_NAME = 'categories')
DROP VIEW categories
GO
CREATE VIEW categories (category, average_price)
AS
SELECT type, AVG(price)
FROM titles
GROUP BY type
GO
4、索引
· 在表的score列上建立索引
create index indexscore on index1 (score)
· 查看表的索引信息
sp_helpindex index1
· 在表的STID列上建立索引
create index indextstid on index1 (STID)
· 创建聚集索引
//注:主键和聚集索引无关,但在创建主键时,如果没有聚集索引会在此字段上创建。
//对表中的记录进行重排
create clustered index indexscore on index1(score)
· 组合索引,此处只有SCORE字段为降序
create index indexname4 on index1 (name1,score desc)
· 唯一索引,此字段不再允许有重复值
create unique index indexname6 on index1 (name1,score desc)
insert into index1 values(9,'clm',91)