`

MySQL使用视图view

阅读更多
1. 视图
创建视图
create view productscustomers 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;

使用视图
select cust_name, cust_contact from productscustomers where prod_id = 'TNT2';

用视图重新格式化检索出来的数据
create view vendorlocations as select concat(rtrim(vend_name), '(', rtrim(vend_country), ')') as vend_title from vendors order by vend_name;
select * from vendorlocations;

用视图过滤不想要的数据
create view customeremaillist as select cust_id, cust_name, cust_email from customers where cust_email is not null;
select * from customeremaillist;

使用视图与计算字段
create view orderitemsexpanded as select order_num, prod_id, quantity, item_price, quantity*item_price as expanded_price from orderitems;
select * from orderitemsexpanded where order_num = 20005;

1. 使用视图的原因
    1) 重用SQL语句;
    2) 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节;
    3) 使用表的组成部分而不是整个表;
    4) 保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限;
    5) 更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据;
2. 视图的规则和限制
    1) 视图必须唯一命名(不能给视图取与别的表或者视图相同的名字);
    2) 对于可以创建的视图数目没有限制;
    3) 为了创建视图,必须具有足够的访问权限。这些权限通常由数据库管理员授予;
    4) 视图可以嵌套,即可以利用从其他视图中检索数据的查询来构造一个视图;
    5) order by也可以用在视图中,但如果从该视图检索数据select中也含有order by,那么该视图的order by将被覆盖;
    6) 视图不能索引,也不能由关联的触发器或默认值;
    7) 视图可以和表一起使用。例如,编写一条联结表和视图的select语句;
3. 视图的创建
    1) 视图用create view as select ... 语句来创建;
    2) 用show create view viewname;来查看创建视图的语句;
    3) 用drop view viewname;来删除视图
    4) 更新视图时,可以先用drop再用create,也可以直接用create or replace view。
       如果视图不存在,则第二条更新语句会创建一个视图;
       如果要更新的视图存在,则第二条更新语句会替换原有视图;
4. 视图的更新
    可以更新的视图
        1) insert、update、delete更新视图时候,会改变基表的数据
    不可以更新的视图
        1) 分组,使用group by和having;
        2) 联结;
        3) 子查询;
        4) 并;
        5) 聚集函数(min()、count()、sum()等);
        6) distinct
        7) 导出(计算)列
分享到:
评论

相关推荐

    在Navicat中创建MySQL动态视图的方法

    - **性能考虑**:虽然动态视图非常有用,但过多地使用它们可能会降低查询性能。在设计视图时,请考虑其对整体性能的影响。 - **维护**:随着数据库结构的变化,您可能需要定期更新视图以保持其相关性和准确性。 ###...

    MySQL--视图的定义

    ### MySQL视图定义详解 #### 视图的概念 在MySQL中,**视图**是一种特殊的虚拟表,其结果集由从本机表中选择的数据组成。视图并不存储实际的数据,而是存储一条SELECT语句,当用户访问视图时,数据库引擎会执行该...

    创建mysql数据库视图

    在MySQL中,使用`CREATE VIEW`语句来创建视图。基本语法如下: ```sql CREATE VIEW 视图名 AS SELECT 字段1, 字段2, ... FROM 表名 WHERE 条件; ``` 这里的`视图名`是你想要创建的视图的名称,`SELECT`语句...

    mysql-视图详解.doc

    删除视图使用`DROP VIEW`语句,例如: ```sql DROP VIEW viewname; ``` 要查看已创建的视图,可以使用`SHOW TABLES;`,查看视图的详细创建语句则使用: ```sql SHOW CREATE VIEW viewname\G; ``` 查询视图就像...

    MySQL数据库:使用NAVICAT工具创建和管理视图.pptx

    例如,如果你想要创建一个包含`employees`表中`name`和`salary`字段的视图,你可以写`CREATE VIEW view_name AS SELECT name, salary FROM employees;` 4. 完成后,点击“运行”或“保存”,视图就会被创建并在视图...

    创建mysql数据库视图.pdf

    在 MySQL 中,视图(View)是一种虚拟表,它是基于一个或多个表的数据计算生成的结果集。视图可以简化复杂的查询、隐藏复杂的查询逻辑、提高数据安全性和简化数据管理。下面是创建 MySQL 数据库视图的详细步骤和相关...

    利用视图提高MySQL查找效率.doc

    查看视图的创建信息,可以使用`SHOW CREATE VIEW`: ```sql SHOW CREATE VIEW bc \G; ``` 更新或修改视图,需使用`ALTER VIEW`命令: ```sql ALTER VIEW bc AS SELECT b.bName, b.publishing, c.bTypeId FROM books ...

    通过MSQL通过视图访问ORACLE中的表

    4. **查询和操作视图**:现在,你可以像对待普通MySQL表一样,对`my_view`视图进行查询、更新或删除操作。MySQL会将这些操作转化为对Oracle数据库的相应操作。 5. **注意事项**:跨数据库操作需要注意性能问题,...

    mysql视图简介.pdf

    ### MySQL视图详解 #### 一、视图概述 视图是MySQL中一种重要的功能,它为用户提供了灵活的数据访问方式。简而言之,视图是一个虚拟表,其内容由一条SELECT语句定义。尽管视图看起来像是一个独立的表,但实际上它...

    MySQL数据库:视图的使用.pptx

    MySQL 数据库视图的使用 MySQL 数据库中的视图是一种虚拟表,基于基本表的数据,它可以简化复杂的查询操作,提高数据的可读性和可维护性。本文将详细介绍 MySQL 数据库中的视图的使用,包括可更新视图的条件、通过...

    MySQL视图.doc

    总的来说,MySQL视图是数据库设计中的一个重要工具,它提供了一种灵活且安全的方式来组织和访问数据,提高了数据管理和使用的效率。通过使用视图,可以实现数据的逻辑隔离,提升用户体验,并简化数据库的复杂性。在...

    MySQL 视图(View)实用详解!!!

    从安全的角度来看,视图的数据安全性更高,使用视图的用户不接触数据表,不知道表结构。 视图的建立和删除只影响视图本身,不影响对应的基本表。 视图的优点 视图与表在本质上虽然不相同,但视图经过定义以后,结构...

    MySql视图创建更改销毁和显示

    ### MySQL视图创建、更改、销毁及显示 在MySQL数据库管理中,视图是一个非常重要的概念,它不仅可以简化复杂的查询操作,还能增强数据的安全性。本文档将围绕以下几个方面进行详细探讨:如何使用`CREATE VIEW`或`...

    【MySQL】视图(十).pdf

    ### MySQL视图详解 #### 一、视图概念与作用 **视图**(View)在MySQL中被视为一种特殊的表,其本质是一条SELECT语句的结果集,而非真实存在的物理表。视图中的数据来自于创建视图时所引用的基础表(基表),并且...

    mysql视图之创建视图(CREATE VIEW)和使用限制实例详解

    MySQL中的视图是一种虚拟表,它不存储实际的数据,而是基于一个或多个表的查询结果。在MySQL 5.x版本之后,视图的功能更加完善,符合SQL:2003标准。视图的主要目的是简化复杂的查询,提供数据的抽象层,以及保护...

    MySQL用户管理和视图

    3. 创建视图:使用CREATE VIEW语句创建一个视图,例如创建视图view_student,显示学生信息。 4. 调用视图:使用SELECT语句调用视图,例如SELECT * FROM view_student。 5. 删除视图:使用DROP VIEW语句删除视图。 ...

    mysql索引与视图的实例附答案宣贯.pdf

    mysql索引与视图实例附答案宣贯 在本篇文章中,我们将探讨 MySQL 中的索引和视图这两个重要概念,并通过实例和答案来宣贯相关知识点。 索引概念: 索引是一种数据结构,它可以提高查询的速度。索引可以创建在表上...

    25.11 MySQL 视图

    配合提供的资源,如`.eddx`、`.md`和`.pptx`文件,你可以更深入地学习MySQL视图的相关知识,包括具体的创建方法、使用示例、以及如何在实际项目中应用。 总的来说,MySQL视图是一个强大的工具,它可以帮助我们更好...

    MySQL中视图的使用及多表INNER JOIN的技巧分享

    创建视图   Sql代码  CREATE VIEW view_name AS SELECT t1.xxx, t2.xxx, t3.xxx FROM (table1 t1 INNER JOIN table2 t2 ON t1.fid = t2.fid) INNER JOIN table3 t3 ON t1.mid = t3.mid; 这里使用了3表关联,对于...

Global site tag (gtag.js) - Google Analytics