SQL Server 临时表、视图、表变量

一、视图
1)创建视图

create view [view_name] as [select express]

2)示例:

create view good_stu
as
select stu.* from student s,grade g where s.id=g.sid and g.score>80

3)执行

select * from [view_name]


二、临时表
特点:临时表存储在tempdb中,当不再使用时会自动删除
1)本地临时表

create table #[table_name]
(columns...)

--插入数据
insert into #[table] values (...)
insert into #tt select id,name from student;

可见性:只在当前数据库连接可见;

2)全局临时表

create table ##[table_name]
(columns...)

可见性:全局可见

三、表变量
使用场景:在一个存储过程中存储多段结果集
1)声明

declare @tmp table --声明表变量
(
id int identity(1,1), --字段 必须和插入表变量里的数量一一对应
Name varchar(60),
[Description] varchar(60),
Category varchar(60)
)
2)插入数据

insert @tmp select col1,col2,col2.... from [table_name] where [express]


在select投影的字段名称和顺序必须与表变量中的一致

四、临时表、视图、表变量那个效率比较快

1,存在方式: 
表变量、临时表都表变量只存放在内存中,临时表需要写磁盘。
视图 无存在形式 
2, 生命周期: 
临时表 Sql服务关闭就消失 
视图 你不删它就不会消失 
3,用途 
临时表 经常作为 中间转接层 
视图 作为物理表的窗口 
4,效率
一般情况下,用表变量比临时表快些,临时表比视图快些
临时表因为在缓存中,所以执行效率比较高
视图 效率一般,但是节省I/O操作,节约资源 
5,在存储过程使用时: 
临时表,效率很高{可能是数据量少,再加上临时表是在缓存中,所以执行效率高} 
视图 一般 
 



posted @ 2020-04-17 10:08  练,就不平凡  阅读(1168)  评论(0)    收藏  举报