1、视图能够简化用户的操作
2、视图使用能以多种角度看待同一数据
3、视图对重构数据库提供了一定程度的逻辑独立性
4、视图能够对机密数据提供安全保护
5、适当的利用视图可以更新清晰的表达查询
优缺点:
使用视图的优点:
1、视图着重于特定数据
2、简化数据的操作,易维护
使用视图的缺点
1、操作视图会比直接操作基础表要慢
2、修改限制
创建和使用 视图的注意事项
视图定义中的SELECT语句不能包括下列内容:
1,ORDER BY 子句,除非在SELECT语句的选择列表也有一个TOP子句
2,INTO关键字
--INTO,把数据从已存在的表中查询出来,添加到新表中,这个新表不存在
SELECT *
INTO NEWTABLE --NEWTABLE不存在
FROM CommodityInfo --程序正常运行
CREATE VIEW vw_newTable2
AS
SELECT *
INTO NEWTABLE2 --创建视图不允许使用INTO
FROM CommodityInfo --创建视图时则会报错
关于INTO
mysql中into是什么意思
在mysql中into一般配合select语句使用
把检索到的值赋值给一个变量,这样这个变量代表的就是查询结果。
语法如下:
Select * Into new_table_name from old_table_name;
示例如下: SELECT name
INTO @name FROM student WHERE id=14 ; SELECT @name
:
3,引用临时表或表变量
–临时表
/*
1、存储在tempdb数据库中。
2、本地临时表以#开头,全局临时表以##开头。
3、当断开连接时临时表被删除
*/
CREATE TEMPORARY TABLE 临时表名(
字段1 约束条件,
字段2 约束条件,
);
#根据现有表创建临时表
CREATE TEMPORARY TABLE 临时表名
[AS] SELECT 查询字段
FROM 业务表
[WHERE 条件];
–表变量
/*
1、表变量实际是变量一种形式
2、以@开头
3、存在内存中
*/
表变量(Table Variable)是在数据库中声明和使用的临时表。与临时表类似,它可以存储临时数据或中间结果,并在当前会话结束时自动销毁。
表变量的数据定义与使用:
--@TempTable表名称
DECLARE @TempTable TABLE
(
ID INT,
Name VARCHAR(40)
)
--插入表变量数据
INSERT INTO @TempTable (ID, Name) VALUES (1, 'John')
--查询表变量数据
SELECT * FROM @TempTable
--更新表变量数据
UPDATE @TempTable SET Name = 'Jane' WHERE ID = 1
--删除表变量数据
DELETE FROM @TempTable WHERE ID =