十二:视图

  1. 为什么要使用视图?什么是视图?
    为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以储存的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。
    视图使开发者只关心感兴趣的某些特定数据和所负责的特定任务,只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。
  2. 视图有哪些特点?
    视图的特点如下:
    1)视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
    2)视图是由基本表(实表)产生的表(虚表)。
    3)视图的建立和删除不影响基本表。
    4)对视图内容的更新(添加,删除和修改)直接影响基本表。
    5)当视图来自多个基本表时,不允许添加和删除数据。
    视图的操作包括创建视图,查看视图,删除视图和修改视图。
  3. 视图的使用场景有哪些?
    视图根本用途:简化sql查询,提高开发效率。如果说还有另外一个用途那就是兼容老的表结构。
    下面是视图的常见使用场景:
    1)重用SQL语句;
    2)简化复杂的SQL操作。在编写查询后,可以方便的重用它而不必知道它的基本查询细节;
    3)使用表的组成部分而不是整个表;
    4)保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限;
    5)更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。
  4. 视图的优点
    1)查询简单化。视图能简化用户的操作
    2)数据安全性。视图使用户能以多种角度看待同一数据,能够对机密数据提供安全保护
    3)逻辑数据独立性。视图对重构数据库提供了一定程度的逻辑独立性
  5. 视图的缺点
    1)性能:数据库必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也把它变成一个复杂的结合体,需要花费一定的时间。
    2)修改限制:当用户试图修改视图的某些行时,数据库必须把它转化为对基本表的某些行的修改。事实上,当从视图中插入或者删除时,情况也是这样。对于简单视图来说,这是很方便的,但是,对于比较复杂的视图,可能是不可修改的
    这些视图有如下特征:
    1)有UNIQUE等集合操作符的视图。
    2)有GROUP BY子句的视图。
    3)有诸如AVG\SUM\MAX等聚合函数的视图。
    4)使用DISTINCT关键字的视图。
    5)连接表的视图(其中有些例外)
    十三:什么是游标?
    游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,每个游标区都有一个名字。用户可以通过游标逐一获取记录并赋给主变量,交由主语言进一步处理。

十四:存储过程与函数

  1. 什么是存储过程?有哪些优缺点?
    存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需要创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。
  2. 优点
    1)存储过程是预编译过的,执行效率高。
    2)存储过程的代码直接存放于数据库中,通过存储过程名直接调用,减少网络通讯。
    3)安全性高,执行存储过程需要有一定权限的用户。
    4)存储过程可以重复使用,减少数据库开发人员的工作量。
  3. 缺点
    1)调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
    2)移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
    3)重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
    4)如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。

MySQL数据库面试题五(2020最新版)相关推荐

  1. MySQL数据库面试题(2021最新版)

    文章目录:http://github.crmeb.net/u/defu 数据库基础知识 为什么要使用数据库 什么是SQL? 什么是MySQL? 数据库三大范式是什么 mysql有关权限的表都有哪几个 ...

  2. mysql 字段字符串转int_MySQL数据库面试题(2020最新版)(一)

    作者:ThinkWon 来源:https://blog.csdn.net/ThinkWon/article/details/104778621 数据库基础知识 1. 为什么要使用数据库 数据保存在内存 ...

  3. 六、MySQL数据库面试题(2021最新版)20210907

    数据库基础知识 为什么要使用数据库 数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存 缺点:1)速度比内存操作慢,频繁的IO操作.2)查询数据不方便 ...

  4. 2020最新MySQL数据库面试题( MySQL引索系统+MySQL数据架构+红黑树结构图+B+树)

    视频参考一线互联网大佬一堂课教会你那些年,你未曾了解的MySQL索引优化 [建议收藏] '阿里高级架构师一个视频教会你MySql 各大知识点MySQL系列/ MySQL引索系统/MySQL数据架构/红 ...

  5. 2020最新版MySQL数据库面试题(一)

    点击上方" 码农编程进阶笔记 ",选择"置顶或者星标" 文末有干货,每天定时与您相约! 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久 ...

  6. mysql怎么计算某个字段重复的个数_2020最新版MySQL数据库面试题(一)

    点击上方" 码农编程进阶笔记 ",选择"置顶或者星标" 文末有干货,每天定时与您相约! 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久 ...

  7. MySQL数据库面试题总结(2022最新版)

  8. MySQL数据库面试题(超详细)

    一.数据库基础知识 为什么要使用数据库 数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存 缺点:1)速度比内存操作慢,频繁的IO操作. 2)查询数据不 ...

  9. MySQL数据库面试题(50道题含答案和思维导图总结)

    1.MySQL 中有哪几种锁? (1)表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最 高,并发度最低. (2)行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最 ...

最新文章

  1. js 创建一条通用链表
  2. 追一科技热招职位来袭:AI新世界,不做旁观者
  3. 洛谷—P1307 数字反转
  4. 初学者也能看懂的 Vue3 源码中那些实用的基础工具函数
  5. 用临时表的GridView分页
  6. mysql集群之keepalived简单搭建
  7. ImportError: cannot import name '_ellipsoid'
  8. 两个listmap合并去重_单机亿级规模题库去重,如果是你会怎么做?
  9. win10 Python开发环境搭建 PyCharm IDE安装
  10. windows下socket编程GetLastError()函数返回结果与对照表-转
  11. 华为鸿蒙系统首发设备,鸿蒙首发设备包装曝光:安卓已成过去式,鸿蒙正式走上舞台...
  12. cocos2dx资料汇总 - 持续更新
  13. 修改Android模拟器的IMEI号
  14. oracle 拼音首字母查询,用Oracle的NLSSORT获取拼音首字母
  15. 【无限互联】学员作品:搜狐新闻iOS客户端
  16. LX4056耐高压线性锂电池充电IC(耐压30V,带OVP,带NTC)
  17. 快速锁定计算机的按键的快捷键,win7系统如何设置锁定计算机快捷键
  18. xml使用外部DTD加载验证
  19. 谷歌Fuchsia操作系统对编程语言的支持决议
  20. 椭圆 / 椭圆的画法

热门文章

  1. 全球为何只有13台DNS根服务器
  2. 正则表达式教程: 开始
  3. C语言编译的基本原理
  4. 用思科软件做实验时遇到的一些bug及其原因
  5. C语言循环结构程序设计1
  6. axios拦截器封装与使用
  7. Python ssh 远程执行shell命令
  8. 2018年中国医疗器械最新行业发展分析
  9. EA公司CFO简森将于月底离职
  10. Android属性系统分析