为什么需要视图
1.视图是一张虚拟表(表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上)
2.视图中不存放数据:数据存放在视图所引用的原始数据表中
3.一个原始表据不同需求,可创建不同的表
视图的用途
1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.降低数据库的复杂程度
4.将多个物理数据库抽象为一个逻辑数据库
*可以使用多张表;一个视图可以嵌套另一张视图;对视图数据进行添加,更新,删除直接影响所引用表中的数据;当视图来自多个表数据时,不许添加删除数据
*使用视图会有许多限制,一般在实际开发中只用查询
#删除视图表
DROP VIEW [IF EXISTS] `view student result`
#创建视图表
CREATE VIEW `view student result`AS SELECT stedent.stuname AS '姓名', subjecttable.subnaame AS '课程名' ,scoretable.score/5 AS '平均成绩' FROM
`stedent`
INNER JOIN `scoretable` ON stedent.id=scoretable.id
INNER JOIN `subjecttable` ON subjecttable.number=scoretable.idview student result
#查看视图
use information ;select * from views; <
1.视图是一张虚拟表(表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上)
2.视图中不存放数据:数据存放在视图所引用的原始数据表中
3.一个原始表据不同需求,可创建不同的表
视图的用途
1.筛选表中的行
2.防止未经许可的用户访问敏感数据
3.降低数据库的复杂程度
4.将多个物理数据库抽象为一个逻辑数据库
*可以使用多张表;一个视图可以嵌套另一张视图;对视图数据进行添加,更新,删除直接影响所引用表中的数据;当视图来自多个表数据时,不许添加删除数据
*使用视图会有许多限制,一般在实际开发中只用查询
#删除视图表
DROP VIEW [IF EXISTS] `view student result`
#创建视图表
CREATE VIEW `view student result`AS SELECT stedent.stuname AS '姓名', subjecttable.subnaame AS '课程名' ,scoretable.score/5 AS '平均成绩' FROM
`stedent`
INNER JOIN `scoretable` ON stedent.id=scoretable.id
INNER JOIN `subjecttable` ON subjecttable.number=scoretable.idview student result
#查看视图
use information ;select * from views; <