1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【转】MYSQL入门学习之十:视图的基本操作

【转】MYSQL入门学习之十:视图的基本操作

时间:2021-06-15 12:55:51

相关推荐

【转】MYSQL入门学习之十:视图的基本操作

转载地址:/database/12/176775.html

一、视图的基本介绍 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 使用视图需要MySQL5及以后的版本支持。 下面是视图的一些常见应用: 重用SQL语句; 简化复杂的SQL操作; 使用表的组成部分而不是整个表; 保护数据; 更改数据格式和表示; 在视图创建之后,可以用与表基本相同的方式利用它们。 但对于大量的复杂或嵌套视图,性能可能下降得很厉害。因此在部署相应的应用前,应进行充分的测试。 二、使用视图的规则和限制 与表一样,视图必须唯一命名(不能给视图取与别的视图或表相同的名字); 对于可以创建的视图数目没有限制; 为了创建视图,必须具有足够的访问权限; 视图可嵌套; ORDER BY可以用在视图中; 视图不能索引,也不能有关联的触发器或默认值; 视图可以和表一起使用; 三、使用视图 1、创建视图 create view view_name AS select 语句 示例: mysql> create or replace view v_pic_url -> as -> select -> id,url -> from v9_picture -> where catid=17; 2、查看创建视图的语句 SHOW CREATE VIEW viewname; 示例: mysql> show create view v_pic_url; +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ | View | Create View | character_set_client | collation_connection | +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ | v_pic_url | CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_pic_url` AS select `v9_picture`.`id` AS `id`,`v9_picture`.`url` AS `url` from `v9_picture` where (`v9_picture`.`catid` = 17) | latin1 | latin1_swedish_ci | +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+ 3、删除视图 DROP VIEW viewname; 示例: mysql> drop view v_pic_url; 4、更新视图结构 可以先将视图DROP,再使用CREATE语句创建; 也可以直接使用CREATE OR REPLACE VIEW语句; 四、更新视图数据 通常,视图是可更新的(即,可以对它们使用INSERT、UPDATE和DELETE)。更新一个视图将更新其基表。如果对视图增加或删除行,实际上是对其基表增加或删除行。 但是,并非所有视图都是可更新的。如果视图定义中有以下操作,则不能进行视图的更新: 分组(使用GROUP BY和HAVING); 联结; 子查询; 并; 聚焦函数; DISTINCT; 导出(计算)列; 一般,应该将视图用于检索而不用于更新。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。