什么是视图(保姆版)

这篇具有很好参考价值的文章主要介绍了什么是视图(保姆版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、如何提高查询效率:

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

二、视图的使用:

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

总的来说,视图使查询变的更加简单,安全,数据独立性得到了提高。文章来源地址https://www.toymoban.com/news/detail-425564.html

到了这里,关于什么是视图(保姆版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 查询效率至少提高4倍的MySQL技巧

    SQL语句中IN包含的值不应过多 MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:select id from t where num in(1,2,3) 对于连续的数值,能用between就不要用in了;再或者使用连接来替

    2024年04月26日
    浏览(25)
  • Oracle之table()函数的使用,提高查询效率

    目录 一、序言 二、table()函数使用步骤 三、table() 具体使用实例 3.1 table()结合数组 使用 3.2 table()结合PIPELINED函数(这次报表使用的方式) 3.3 table()结合系统包使用 前段时间一直在弄报表,快被这些报表整吐了,然后接触到了Oracle的table()函数。所以今天把table()函数的具体用法

    2024年02月03日
    浏览(30)
  • SpringBoot引入缓存提高单次查询数据效率

    第1步:引入缓存上下文 第2步:查询先查缓存,查询到值先存缓存 第3步:清理缓存上下文 第4步:验证使用 执行日志

    2024年02月20日
    浏览(37)
  • 什么是视图(保姆版)

    目录 一、如何提高查询效率: 那如何提高查询语句的效率呢? 二、视图的使用: 1、视图:view 2、视图的基本使用 3、视图的修改 4、删除视图 三、视图的创建: 四、视图的修改 五、视图的删除 什么是视图?视图有什么作用? 为什么要建立视图?建立视图有什么好

    2023年04月26日
    浏览(18)
  • 提高办公效率用什么?表单开发工具好不好用?

    在办公流程化繁盛发展的今天,越来越多的企业希望通过专业的软件和工具提升办公协作效率,朝着数字化和流程化管理的方向靠近。那么,如何提高办公效率?如何提高表格制作质量和效率?表单开发工具是专业的办公软件平台之一,在业务量越来越大的今天,它的出现是

    2024年02月11日
    浏览(30)
  • 互联网大厂技术-elasticsearch(es)- 在数据量很大的情况下(数十亿级别)提高查询效率

    互联网大厂技术-elasticsearch(es)- 在数据量很大的情况下(数十亿级别)提高查询效率 目录 一、问题分析 二、问题剖析 三、性能优化的杀手锏(filesystem cache) 四、数据预热 五、冷热分离 六、document 模型设计 七、分页性能优化 八、解决方案 这个问题是肯定要问的,说白了,就

    2024年02月04日
    浏览(65)
  • 如何提高sql执行效率

    1.尽量避免全表扫描,首先应考虑在where及order by涉及到的列上建立索引 2.尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id

    2024年01月23日
    浏览(28)
  • 如何利用chatgpt提高工作效率?

    使用 ChatGPT 提高工作效率的关键在于有效利用其能力来辅助和优化你的工作流程。以下是一些具体的建议: 1. 自动化和优化常规任务 生成和编辑文本 :利用 ChatGPT 快速撰写或编辑报告、电子邮件、提案等。 代码辅助 :获取编程语言的帮助,包括代码示例、错误调试建议等

    2024年01月19日
    浏览(55)
  • 如何借助AIGC提高研究效率

    首先,如果是常规方法,没法使用ChatGPT,也没法使用ERNIE Bot: 还在排队中。 ChatGPT 4.0版本在网上看了很多介绍和测评,比较新的资讯是已经超过九成人类。 机器人/人工智能/就业形势2023_zhangrelay的博客-CSDN博客 如上这篇,引用了一张表格: 保守一点,ChatGPT4智商应该达到1

    2024年02月10日
    浏览(38)
  • 【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】

    索引(index) 是帮助 MySQL 高效获取数据的数据结构(有序) 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是 索引 。 MySQL的索引是在存储引擎

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包