什么是视图(保姆版)

目录

一、如何提高查询效率:

那如何提高查询语句的效率呢?

二、视图的使用:

1、视图关键字:view

2、视图的基本使用

3、视图的修改

4、删除视图

三、视图的创建:

四、视图的修改

五、视图的删除

什么是视图?视图有什么作用?

为什么要建立视图?建立视图有什么好处和优点


一、如何提高查询效率:


查询语句也有查询的效率问题,比如说交叉连接与内外连接的区别,交叉连接需要产生一个笛卡尔积的临时表,这样效率比较低

那如何提高查询语句的效率呢?


1、选择有效的表名顺序,select语句一般优先处理写在from子句最后的表,将记录条数最少的或者父辈(被参考表)放在最后可提高查询效率


2、select尽量避免使用*,如果不需要查询所有属性的话,尽量把需要查询的字段一一写出来,而不是用*代替,比如说一共有10个字段,你需要查询其中的9个字段,把9个字段都写上更好,在满足需求的情况下,能少查一个字段就少查一个字段


3、整合简单的数据库查询语句,能一次性查询出来的数据就不要分为两次或者多次查询


4、尽可能使用where替换having,能使用where解决的就不要使用分组查询的having语句,因为having是查询所有记录之后,在进行分组过滤,其中可能还需要排序和统计等,比较繁琐


5、尽量多使用内部函数,少用运算符自己进行的操作,因为内部函数的处理优化的比较好


6、多使用表的别名,以减少解析时间


7、尽量使用exists代替in、not exists 代替 not in 


8、尽量用>=代替>等。如:有时候>5和>6所查询的效果是一样的,但是一个先找5,一个是先找6,多找了一个数
  

二、视图的使用:


1、视图关键字:view


一般格式:create view <视图名> as <查询语句>;
create view <视图名称> as <select <属性名> from <表名>>;

可以查询表中全部数据创建视图,也可查询表中部分数据创建视图


2、视图的基本使用


select *from <视图名>;

视图与上面的查询语句结果一致


3、视图的修改


alter view 视图名 as 查询语句 ;

#将视图更改为其他查询


4、删除视图


drop view 视图名;

三、视图的创建:

select *from student;
create view V_S as select * from student;
-- 视图可以用于代替一条查询语句,相当于为查询语句取一个别名
视图的使用:
select* from V_S;
    -- 将视图当做表格来使用

-- 查询视图中的部分属性
select s_id ,s_name from V_S where s_id >=1008;

四、视图的修改

-- 可以修改视图所对应的查询语句
    -- 查询所有学生所在班级的班级名称,以及对应班级的任课老师
select S.s_id 学号,S.s_name 学生姓名,C.c_name 班级名称,T.t_name 任课老师
    from student S left join  class C on S.s_cid = C.c_id
    left join teacher T on C.c_tid = T.t_id;

alter view V_S as
    select S.s_id 学号,S.s_name 学生姓名,C.c_name 班级名称,T.t_name 任课老师
    from student S left join  class C on S.s_cid = C.c_id
    left join teacher T on C.c_tid = T.t_id;

-- 可以使用视图代替一个复杂的查询语句
-- 也可以对视图创建视图(视图的嵌套)
create view V_SC as select 学生姓名, 班级名称 from V_S;


五、视图的删除

drop view 视图名;
-- 视图只可以用于代替查询语句
-- 视图不占用额外的存储空间


什么是视图?视图有什么作用?


了解了视图的创建和视图的基本使用方法后,大概会有这么一个概念,就是视图可以用于代替查询,多次使用同一个查询语句时,可以为此查询创建一个视图,方便后续使用
    视图就相当于为一个查询结果集(虚拟表)创建一个快捷方式

为什么要建立视图?建立视图有什么好处和优点


1、由于有些查询语句又长又麻烦,并且经常使用,这时可以给他创建一个视图,以便于后续操作


2、用户只用关心数据,而不关心数据是如何查询的,表与表之间的连接操作是怎样的,是面向结果,而不是面向过程


3、数据的安全性,视图可以单独设置权限,有些表中的某些数据是不方便给用户看的,视图能使用户只看到表中的部分数据,而没办法看到表中的全部数据和表的结构以及表与表之间的联系,相当于起到一个封装和保密的作用。(如用户查找他人账号信息,就只能看到一些基本信息,而不能看到账号密码等私密信息了)


4、数据独立,一旦视图确定,原表中其他数据的修改很难影响到视图,除非修改或者删除了视图中所涉及的字段或属性值

总的来说,视图使查询变的更加简单,安全,数据独立性得到了提高。

猜你喜欢

转载自blog.csdn.net/m0_65334415/article/details/130304294