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