• MySQL数据库——视图-介绍及基本语法(创建、查询、修改、删除、演示示例)


    目录

    介绍

    语法

    创建

    查询

    修改

    删除

    演示示例


    介绍

    视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表(称为基表),并且是在使用视图时动态生成的。

    通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

    语法

    因为视图是一种虚拟存在的表,所以可以根据之前操作表的方法来操作视图(其中修改视图与修改表不同,修改视图有两种方式)。

    创建

    1. CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句
    2. [ WITH [CASCADED | LOCAL ] CHECK OPTION ]

    查询

    1. -- 查看创建视图语句:
    2. SHOW CREATE VIEW 视图名称;
    3. -- 查看视图数据:
    4. SELECT * FROM 视图名称 ...... ;

    修改

    1. -- 方式一:
    2. CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句
    3. [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
    4. -- 方式二:
    5. ALTER VIEW 视图名称[(列名列表)] AS SELECT语句
    6. [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

    删除

    DROP VIEW [IF EXISTS] 视图名称 ...

    演示示例

    1. -- 创建视图
    2. create or replace view stu_v
    3. as
    4. select id,name from student
    5. where
    6. id <= 10;
    7. -- 查询视图
    8. show create view stu_v;
    9. select * from stu_v;
    10. select * from stu_v where id < 3;
    11. -- 修改视图
    12. create or replace view stu_v
    13. as
    14. select id,name,no from student
    15. where
    16. id <= 10;
    17. alter view stu_v
    18. as
    19. select id,name from student
    20. where
    21. id <= 10;
    22. -- 删除视图
    23. drop view if exists stu_v;

    上述我们演示了,视图应该如何创建、查询、修改、删除,那么我们能不能通过视图来插入、更新数据呢?

    接下来,做一个测试。

    1. -- 创建视图,设置条件id < 10
    2. create or replace view stu_v
    3. as
    4. select id,name from student
    5. where
    6. id <= 10 ;
    7. -- 插入两条数据,一条id < 10,另一条id > 10
    8. insert into stu_v values(6,'Tom');
    9. insert into stu_v values(17,'Tom22');
    10. -- 查询视图
    11. select * from stu_v;

    执行上述的SQL,我们会发现,id为6和17的数据都是可以成功插入的。

    但是我们执行查询,查询出来的数据,却没有id为17的记录。

    因为我们在创建视图的时候,指定的条件为 id<=10,

    id为17的数据,是不符合条件的,所以没有查询出来,

    但是这条数据已经成功的插入到了基表中。

     
    如果我们定义视图时指定了条件,然后我们在插入、修改、删除数据时,是否可以做到必须满足条件才能操作,否则不能够操作呢? 答案是可以的,这就需要借助于视图的检查选项了。

    下一篇就来了解视图的检查选项这一内容。


    END


    学习自:黑马程序员——MySQL数据库课程

  • 相关阅读:
    176. 装满的油箱 图 - 拆点
    前端——Layui的导航栏与tab页联动
    LVS+Keepalived群集
    Java测试框架:分享常用的Java测试框架,如JUnit, TestNG等,包括单元测试,集成测试,性能测试等
    由粒子加速器产生的反中子形成的白洞
    【Android】修改aar包里的jar包里的class文件内容
    基于PHP+MySQL的小型企业客户关系管理系统
    浏览器缓存机制
    ChatGPT关联技术
    上海张江×百度飞桨打了个样,AI赋能这事儿可算有“参考答案”了
  • 原文地址:https://blog.csdn.net/li13437542099/article/details/133800048