SQL视图

本文介绍了SQL视图的概念,视图是一个虚拟表,仅存储定义,数据来源于原表。视图的作用包括简化查询和提高数据安全性。创建视图的语法、查看、修改、重命名及删除视图的方法也进行了详细阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,概念理解  什么是视图

    1.1  视图(view)是一个虚拟表,根据sql语句获取动态的数据集,并为其命名,
用户是使用时只需使用视图名称即可获取结果集,并还可以将其当作表来使用用 。 例如:可以取代子查询
  
    1.2  数据库只存放了视图的定义,并没有存放图中的数据,(相当于一个目录,
通过它去含有数据的表中找数据)#这些数据还是存放在原来的表中。

    1.3  使用视图查询数据时,数据包库系统会从原来表中取出相对应的数据,因此,视图中的数据是
依赖原来的表中取出的数据。一单原来的表中数据发生改变,显示在视图中的数据也会随之发生改变。
             *存储数据逻辑 相当于Java的方法


二,视图的作用

         2.1  简化代码,可以把重复使用的查询(例:嵌套查询)封装成视图重复使用,同时可以使复杂的查询,易于理解和使用。
         2.2  提高了数据安全,如果一张表中有很多数据,很多信息不希望让所有人看到,可以使用视图给不同的客户来显示不同的部分 如:社会保障基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资等..,可以对不同的用户设定不同的视图,让用户看你想让他看到的部分数据。


三,创建视图

           参数说明:    

                        create新建视图 
                        [or replace] 判断此视图是否存在 如果存在替换调,如果不存在新建视图
                       view view name 表示要创建的视图名称。
                       as

         3.1创建视图的语法:

                   use mydb;                                          //进入名为mydbd的数据库

                  create or replace  
                  view 视图名称
                  as select ename,job from emp        //在enp表中查询ename,job两列的数据 将此sql查                                                                               询语句放入此视图中

        3.2查看表和视图语法:

                                                show tables;       //查看所有表和视图的虚拟表
                                                show full tables  // *查看区分后 表和视图的虚拟表 便于分辨


         小知识 [or replace]也可以用来修改视图


四,视图的实际应用

                语法: select * from 视图名称;

            修改视图 语法:
                                  
 alter view 需要修改数据的视图名字 
                                   as select语句            //更改后的视图数据

        重命名视图 语法:
                                   
 rename table 视图名 to 新视图名;
            删除视图 语法:
                                   
 drop if exists view 视图名;//if exists判断如果存在删 


                *删除视图时,只能删除视图的定义,不会删除基表中的数据


五,更新视图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值