20150103--SQL连接查询+视图-02

20150103--SQL连接查询+视图-02

子查询

一条查询语句出现在另外一条查询语句的内部,这条语句就被称之为子查询语句。

子查询分类

子查询可以根据子查询返回的结果以及子查询出现的位置两种方式进行分类

按结果分类:

标量子查询:子查询返回的结果是一行一列,一个字段的某一个值

列子查询:子查询返回的结果是一列,多行,一个字段有多个值

行子查询:子查询返回的结果是一行多列,多行多列

表子查询:子查询返回的结果多行多列

按照位置分类:

where子查询:子查询出现在where条件之后

from子查询:子查询出现在from之后

exists子查询:出现在exists之后,exists出现在where之后

标量子查询

子查询返回的结果是一个标量

clip_image002

列子查询

子查询返回的结果是一列。

需求:获取所有班级的所有学生,学生必须在班级中存在。

select * from student where c_id is not null; -- 无法解决

解决方案

1. 获取所有的现有班级的id:select id from class;

2. 从学生表中查出所有数据,判断学生的班级id是否在刚查出来的班级id中存在

clip_image004

集合判断条件(理解性知识)

集合(1,2,3,4,5)

any:任意一个,1 = any(集合),只要结果在集合中出现过,就返回true

all:全部,必须满足全部条件才返回真

some:等于其中的一部分,与any完全一致

clip_image006

行子查询

子查询返回的结果是一行多列

需求:找出所有班级中年龄最大,同时身高最高的学生;

行子查询必须构建行元素:有多个字段的元素

select * from 表名 where (字段1,字段2…) =/in (select 字段1,字段2… from 表名);

clip_image008

表子查询

表子查询从返回结果的层面上讲与行子查询完全一样。因为其出现的位置不是在where之后,而是在where之前,from之后。from后接数据源。

需求:求出每个班中身高最高的1个学生。

clip_image010

表子查询出现的原因:因为某些时候,希望order by在group by之前先执行。

先排序,再分组

视图

视图:视图是一张虚拟表,存在表结构,但是没有数据。

视图关键字:view

创建视图

语法:

create view 视图名字 as select语句;

clip_image012

视图创建之后发生了什么?

1. 创建视图结构(虚拟表)

clip_image014

2. 在数据库对应的文件夹下创建结构文件

clip_image016

视图是虚拟表,只有结构,没有数据。

视图查看

1. 视图可以像表一样的查看

show tables/show create table/desc 视图名

clip_image018

2. 可以通过视图查看创建语句的方法

show create view 视图名;

clip_image020

3. 查看视图数据:与查看表完全一致

clip_image022

视图不保存数据:数据的来源指的是当视图被调用的时候,系统会自动调用视图的创建语句中的select语句去执行。

clip_image024

修改视图

视图修改的本质是修改视图的数据来源。

语法

alter view 视图名字 as select语句;

clip_image026

删除视图

语法

drop view 视图名字;

clip_image028

视图作用

1. 节省查询语句的长度

2. 对外提供访问接口clip_image030

保证数据表(基表)的数据安全性。

视图能够选择性的从基表获取数据,并提供给外部。

3. 对外友好性

视图能够对外提供不同的数据信息。(不同的接口定义不同的视图)

视图数据增删改

视图可以为基表进行数据的增删改操作,必须满足以下条件

视图新增数据

1. 视图的数据来源(基表)只能有一个

clip_image032

多表视图不能插入数据

clip_image034

2. 视图中的所有字段,必须包含了基表中不为空或者没有默认值的全部字段。

clip_image036

更新数据:基本没有限制

单表视图更新

clip_image038

多表视图更新

clip_image040

删除数据:与插入数据条件一致,只有单表视图可以删除,多表不能删除

单表视图删除

clip_image042

多表视图删除

clip_image044

视图算法

视图在执行的过程中(视图被查询),到底是如何去执行视图对应的查询语句。

视图算法分为三种:

合并:merged,先将视图的SQL查询与与外部的查询语句进行语法合并

临时表:temptable,先执行视图里面的查询语句,结果变成一个临时表

未定义:undefined,系统自己判断到底使用合并还是临时表,默认的

clip_image046

算法指定语法

create view algorithm = 算法 视图名字 as select语句

clip_image048

posted on 2016-04-20 22:29 山山未迟 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lifushan/p/5414767.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QtQuick controls和controls2 自定义样式

2019独角兽企业重金招聘Python工程师标准>>> controls import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4Rectangle {color: "green"Button {id:buttontext: qsTr("Second page")anchors.centerIn: parentpr…

电脑开机3秒就重启循环_电脑修好后客户不愿支付上门费,行,那电脑开机60秒自动关机吧!...

上门维修电脑已经非常普及了,上门维修电脑费用要比送修(送到维修店)费用高,送修电脑只有一项维修费用,上门维修电脑比送修多了一项费用,这项费用就是上门费。有人说维修电脑收取上门费用不合理,其实这样的说法非常自私…

jQuery属性筛选选择器

2019独角兽企业重金招聘Python工程师标准>>> 代码一 <h2>属性筛选选择器</h2><h3>[attval]、[att]、[att|val]、[att~val]</h3><div class"left" testattr"true" ><div class"div" testattr"t…

java 代码优化

Java程序中的内存管理机制是通过GC完成的&#xff0c;“一个对象创建后被放置在JVM的堆内存中&#xff0c;当永远不在应用这个对象的时候将会被JVM在堆内存中回收。被创建的对象不能再生&#xff0c;同时也没有办法通过程序语句释放”&#xff08;这个是《Java的GC机制》中提到…

MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法

在Matlab中&#xff0c;做短时傅里叶变换需要使用函数spectrogram&#xff0c;而在Matlab2019中&#xff0c;引入了一个新的函数stft&#xff0c;下面我们就来看下这两个函数都如何使用。短时傅里叶变换的基本原理就是将数据分段加窗&#xff0c;做fft&#xff0c;在分段时会有…

图像处理基础——灰度共生矩阵

标准定义如下&#xff1a;对于取定的方向θ 和距离 d, 在方向为θ的直线上, 一个像元灰度为 i, 另一个与其相距为 d 像元的灰度为 j 的点对出现的频数即为灰度共生矩阵第(i, j)阵元的值。 怎样理解呢&#xff1f;看起来好复杂呀 呜呜呜 小白理解&#xff1a;灰度共生矩阵就…

iphone查看删除的短信_iPhone12发布!刚买的苹果手机短信全部消失了怎么办?

原标题&#xff1a;iPhone12发布&#xff01;刚买的苹果手机短信全部消失了怎么办&#xff1f;目前&#xff0c;人们的社交除了面对面交谈&#xff0c;用的最多的就是通过手机进行聊天&#xff0c;比如用QQ、微信和短信、邮件等方式&#xff0c;虽然短信不会用来一般的聊天&…

python基础之01数据类型-变量-运算浅解

python的数据类型 1 数字 数字分为整型&#xff08;int&#xff09;&#xff0c;长整型&#xff08;long&#xff09;&#xff0c;浮点型&#xff08;float&#xff09;&#xff0c;复数&#xff08;complex&#xff09; 整型较为常用的功能&#xff1a; >>> a-4 >…

使用Caffe进行手写数字识别执行流程解析

之前在 http://blog.csdn.net/fengbingchun/article/details/50987185 中仿照Caffe中的examples实现对手写数字进行识别&#xff0c;这里详细介绍下其执行流程并精简了实现代码&#xff0c;使用Caffe对MNIST数据集进行train的文章可以参考 http://blog.csdn.net/fengbingchun/…

obs可以装手机吗?_原神PC和手机数据互通吗 PC和手机可以一起玩吗

在原神中&#xff0c;很多玩家都在PC端创建了角色&#xff0c;那么疑问来了&#xff0c;PC端与手机端的账号会是互通的吗&#xff1f;下面小编就为大家带来原神PC和手机数据互通吗的相关内容&#xff0c;一起来看看吧&#xff01;更多攻略&#xff1a;原神攻略大全PC和手机数据…

三维点云目标提取总结(续)

三维点云目标提取&#xff08;续&#xff09; 3.三维点云目标提取 3.1一般流程 先根据个人认识总结一下目标提取的一般性步骤&#xff1a; 如上所示&#xff0c;三维点云的目标提取关键性的两步即为&#xff1a;特征提取与选择、分类&#xff0c;是不是整个方法流程与图像中的目…

安卓高手之路之java层Binder

很多人一提到Binder就说代理模式&#xff0c;人云亦云的多&#xff0c;能理解精髓的少。 本篇文章就从设计角度分析一下java层BInder的设计目标&#xff0c;以及设计思路&#xff0c;设计缺陷&#xff0c;从而驾驭它。 对于【邦德儿】的理解, 从通信的角度来看&#xff0c;就是…

ftp改为sftp_浅谈 FTP、FTPS 与 SFTP

二狗子最近搭建了一个图片分享网站&#xff0c;每天都有好多人在他的网站上传许多照片&#xff0c;这些照片还会通过内部的逻辑同步到又拍云存储中&#xff0c;非常方便。但不久后问题就来了&#xff0c;由于刚开始的用户照片管理规划没有做好&#xff0c;随着用户上传的图片越…

如何解决秒杀的性能问题和超卖的讨论

2019独角兽企业重金招聘Python工程师标准>>> 最近业务试水电商&#xff0c;接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀&#xff0c;讨论电商&#xff0c;这次终于轮到我们自己理论结合实际一次了。 ps&#xff1a;进入正文前先说一点个人感受&#xff0c;…

C# 从Excel中读取时间数据

之前写到从Excel中读取时间数据 //读取Excel数据Excel.Application xapp new Excel.Application();string filepath txt_Excel.Text;Excel.Workbook xbook xapp.Workbooks._Open(filepath, Missing.Value, Missing.Value,Missing.Value, Missing.Value, Missing.Value, Miss…

grid autosport额外内容下载慢_清理大王app下载-清理大王v1.0安卓下载

清理大王&#xff0c;下面由小编给大家介绍一下这款软件&#xff0c;该软件是一款非常不错的手机清理服务应用软件&#xff0c;清理大王app为用户提供了手机垃圾清理&#xff0c;内存加速&#xff0c;优化手机&#xff0c;解决手机卡顿的情况。感兴趣的朋友欢迎使用微侠下载&am…

怎么看cudnn的版本好_祖坟风水怎么看,好祖坟有什么征兆?

人们之所以看重祖坟的风水&#xff0c;是因为祖坟的风水与后代子孙的运势密切相关&#xff0c;可以说祖坟的风水好不好关系着子孙后代的运势顺不顺&#xff0c;因此对于祖坟的风水好坏人们是非常在意的&#xff0c;那么祖坟风水怎么看,好祖坟有什么征兆呢&#xff1f;下面是小编…

Spark 宽依赖和窄依赖

2019独角兽企业重金招聘Python工程师标准>>> 我们知道RDD就是一个不可变的带分区的记录集合&#xff0c;Spark提供了RDD上的两类操作&#xff0c;转换和动作。转换是用来定义一个新的RDD&#xff0c;包括map, flatMap, filter, union, sample, join, groupByKey, co…

smart gesture安装失败_WinCC flexible SMART V3 SP2安装步骤以及常见错误解决方法

1安装配置1. win7和win10系统都可以装2. 运行内存至少要2G。3. 硬盘储存空间至少要3G。2安装注意事项1.安装本软件之前必须要关闭所有杀毒软件(例如360安全卫士/360杀毒/电脑管家)等。2.其它西门子软件不要使用或者打开。3.安装之前确保硬盘空间充足。3下载地址https://bbs.jcp…

启动页面和各设备的宽高比及像素

2019独角兽企业重金招聘Python工程师标准>>> iOS7只能用LaunchImage来布置启动画面&#xff0c;只能用图片。iOS8以后支持LaunchScreen.xib来布置&#xff0c;可以自己添加控件。iOS8以及以后的用LaunchScreen来配置启动页。iOS8以后的会走这个设置&#xff0c;而io…