一、视图1.视图创建练习
CREATE VIEW 每个学生课程平均分(学号,平均分)
as select 学号,AVG(成绩)
from course
GROUP BY 学号;
视图可以看作定义在MYSQL上的的临时表,是另一种查看数据的入口。视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询来定义的临时表 。视图就如同一张表一样,对表能够进行的操作都可以应用于视图。例如增、删、改、查,但插入、修改、删除等的操作其实对于原始数据表的操作。视图中的数据会随着原始数据表的改变而改变。2.视图的作用
1.视图可以简化数据操作:在使用查询时,在很多时候要使用聚合函数,同时还要显示其它字段的信息,这时写的语句可能会很长,如果这个动作频繁发生的话,则可以创建视图。如上图,我们如果要使用,只需要 select * from 每个学生课程平均分;就可以了。
2.视图可以使原始表中的数据更安全:因为视图是临时的,只是存储了数据的集合,故可以将原始表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图,不可以随意的更改和删除,可以保证数据的安全性。
3.使用视图的注意事项1.避免在视图上再创建视图:多重视图会降低SQL的效率和性能。
2.不能往视图里面插入数据。二、子查询练习:1.找出每个课程里成绩最低的学号
SELECT
课程号,学号 AS 成绩最低学号,成绩
FROM
course
WHERE
(课程号,成绩) I