版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
视图:
一种逻辑对象,不占物理存储空间,来自一个或多个表,是由查询结果形成的一张虚拟表,同一张表可以创建多个视图
创建语法:
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
例:
CREATE VIEW productcustomers AS SELECT cust_name, cust_contact, prod_id FROM customers, orders, orderitems WHERE customers.cust_id = orders.cust_id AND orderitems.order_num = orders.order_num with check option #最后一行是检查,防止后续操作视图时添加不满足筛选条件的数据,不需要可忽略不写
查看语法:show create view viewname
删除语法:drop view 视图名
更新语法:①先drop后create ②create or replace viewcreate view 视图名 as SQL语句
视图一般服务于查询操作,不用于数据更改,当用于数据更改时:
视图d内容是单表的时候,UPDATE,DELETE可以执行成功,对于INSERT如果未设值的字段都有默认值,或者是可以为空的字段的时候可以执行成功,否则会执行失败。对
视图内容是两张或两张表以上的时候,如果使用了分组查询语句的时候,INSERT,UPDATE,DELETE都会执行失败。如果没有使用分组查询语句的时候UPDATE是可以执行成功,DELETE会失败。INSERT只能将结构插入单个表中,所有插入的字段只能都在一张表中,而且未设置的字段都有默认值,或者是可以为空的字段的时候才可以执行成功,否则会执行失败。
优点:筛选数据、重用SQL语句、简化SQL操作、简化权限管理以及为向其他应用程序输出而重新组织数据等。
注:视图不能索引,也不能有关联的触发器或默认值,不能引用临时表。
存储过程:
一组为