–视图:虚拟表,拥有和真实的数据表一样的行和列
–视图是建立在SELECT查询结果和已存在的表中的
–应用场景:不同的人关注不同的数据,可以把源数据表拆分成多个视图,把视图供作为数据源
可以从不同的视图中获取想要的数据
--从视图中查询数据
SELECT * FROM view_account;
--向视图添加数据
INSERT INTO view_account VALUES('100012','jiao7060158','孙悦',150000,'195652385622')
--修改视图中的数据
UPDATE view_account SET UserMoney=56000 WHERE Name='张三'
--删除视图中的数据
DELETE view_account WHERE CardID='10005'
Demo 02:
应用场景:
–创建视图:来自于多张表
–可以简化SQL查询:
–把想要的查询数据,先通过连接查询把查询出来的结果集,同一放到某一视图中
–就可以直接从视图中获取已经处理好的数据
CREATE VIEW view_school AS (SELECT S.stuName,C.courseName,CI.ClassName,R.score FROM Students S
INNER JOIN ClassInfos CI
ON(S.classId=CI.ClassId)
INNER JOIN Results R
ON(S.stuNo=R.stuno)
INNER JOIN Course C
ON(R.courseId=C.courseId))
从视图中查询数据:
SELECT * FROM view_school
–通过视图封装,简化SQL
–假设需要进行N次连接查询,可以把N-M次的连接查询的结果封装到视图中,
–再将视图与表进行连接查询
CREATE VIEW view_myschool AS (SELECT S.*,C.courseName,R.score FROM Students S
INNER JOIN ClassInfos CI
ON(S.classId=CI.ClassId)
INNER JOIN Results R
ON(S.stuNo=R.stuno)
INNER JOIN Course C
ON(R.courseId=C.courseId)
)
注意点:
1.视图中可以使用多张表
2.一个视图可以嵌套另一视图
3.视图中定义的SELECT语句不能包含下列内容:
ORDER BY 语句:除非在SELECT语句的选择列表中也有一个TOP子句
INTO子句
引用临时变量或表