小贝_mysql三种子查询

mysql三种子查询

简要:
一、三种子查询
二、三种子查询理解模型


一、mysql 三种子查询

where子查询、from子查询、exists子查询


二、理解模型:

2.1、一个好的模型,便于我们去理解。当我们编写一条sql语句时,可以通过以下几点去理解:

a、where表达式,把表达式放在行中,看表达式是否为真

b、列: 理解成变量,可以运算

c、 取出结果,可以理解成一张临时表

2.2、理解三种子查询

1、where子查询

         把内层查询的结果当做是外层查询的比较条件

详细:  select 字段 from 表 where 内层结果

执行: 先执行where后的语句,得到内层结果。再执行外层

 

2、from子查询

      把内层查询结果当成临时表,供外层sql再次查询

详细:  select 字段 from (from子查询)

执行: 先执行from后的语句,得到内层结果。再执行外层

 

3、exists子查询

         把外层查询结果,拿到内层。看内层的查询是否成立。

这个过程是从往外层的查询结果,一行一行代入内层中,判断是否成立。即exists后面的语句是否为真。如果为真,则显示代入的这一行。相反则不用。


The quieter you become,the more you are able to hear!

 

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
为了优化OceanBase的query timeout设置方式,特调研MySQL关于timeout的处理,记录如下。 复制代码 代码如下: mysql show variables like '%time%'; +----------------------------+-------------------+ | Variable_name | Value | +----------------------------+-------------------+ | connect_timeout | 10

impdp时报错ORA-39083&ORA-01917 - 2015-07-19 17:07:50

impdp时报错ORA-39083ORA-01917 ORA-39083: 对象类型 OBJECT_GRANT 创建失败, 出现错误: ORA-01917: 用户或角色 'HQ_88' 不存在 失败的 sql 为: GRANT ALTER, SELECT ON "HQ_123"."SEQ_TBL_SALEPROMODE" TO "HQ_88" 解决办法:  impdp 加个选型: exclude=grant  如:impdp ........ exclude=grant 版权声明:本文为博主原创文章,未经博

sql server 集群配置 - 2015-07-19 17:07:47

         Windows server2003 + sql server2005  集群配置安装 一:环境 软硬件环境       虚拟 3 台 windows server 2003 主机。其中一台做域控 DC ,另外两台作为节点 win1  win2. 域控 DC 网络设置: Hostname Private 网卡 Public 网卡   adtest   192.168.9.176     节点主机网络设置 Hostname Private 网卡 Public 网卡   Win1 10.0.
Oracle单实例情况下的library cache pin的问题模拟与问题分析 参考自: WAITEVENT: "library cache pin" Reference Note (文档 ID 34579.1) How to Find the Blocker of the 'library cache pin' in a RAC environment? (文档 ID 780514.1)   本机环境:Oracle 10.2.0.5 x86-64bit for RHEL5.8 x86-64bit  

在Win下mysql备份恢复命令 - 2015-07-19 17:07:28

在d:盘根目录下面存放备份数据库,备份数据库名字为backup20070713.sql(20070713.sql为备份日期) 备份数据库: mysqldump -uroot -p123456 database_named:/backup20070713.sql 恢复数据库: 删除原有数据库,建立数据库,把备份数据库导入。 mysqladmin -uroot -p123456 drop database_name mysqladmin -uroot -p123456 create database_name

数据库设计技巧 - 2015-07-19 17:07:28

1.  原始单据与实体之间的关系     可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单据对应多个实体,或多张原始单据对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。     〖例 1 〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单据对应多个实体”的典型例子。     2. 
主旨: 数据指标是 产品的脉搏。  管理者通过感受脉搏的变动,来了解产品的运营概况 碎片 关于埋点: 一切埋点最终目的为获取 运营需要的数据指标,除此外,无它。        这些点 就像一个一个的监视器,监视着用户的使用情况    关于日志: 埋点产生日志,用户多或者埋点因素 产生海量日志  对于海量日志单机无法完成  分布式势在必行   hadoop spark  hbase hive 登场。 关于工具: 工具就是工具,  一般公司会考虑 技术成熟性,再结合业务选取工具 关于web报表显示: 信息的变
1.适应window身份登陆 2.新建查询 create login bai1 with password = ‘1234’ create user bai2 for login bai1 3. 在右边框框最上面的那个右键属性,然后找到安全性,使用windows和sql密码混合登陆。确定 4. 退出sql 5. 右键我的电脑,点击管理。找到sql配置管理器,然后重启一下MSSQL服务。 6. 登陆使用用户名bai1,密码1234 即可登陆 版权声明:本文为博主原创文章,未经博主允许不得转载。
hive编程指南中有个employees表,默认的分隔符比较繁杂,编辑起来不太方便(普通编辑器编辑的控制字符^A等被当成字符串处理了,没有起到分隔符的作用)。收集的解决方案如下: http://www.myexception.cn/software-architecture-design/1351552.html http://blog.csdn.net/lichangzai/article/details/18703971 切记,简单的文本编辑器编辑如下的内容,分隔符是没被识别的,^A^B^C都会被当成
大家都知道索引对于数据访问的性能有非常关键的作用,都知道索引可以提高数据访问效率。 为什么索引能提高数据访问性能?他会不会有“副作用”?是不是索引创建越多,性能就越好?到底该如何设计索引,才能最大限度的发挥其效能? 这篇文章主要是带着上面这几个问题来做一个简要的分析,同时排除了业务场景所带来的特殊性,请不要纠结业务场景的影响。 索引为什么能提高数据访问性能? 很多人只知道索引能够提高数据库的性能,但并不是特别了解其原理,其实我们可以用一个生活中的示例来理解。 我们让一位不太懂计算机的朋友去图书馆确认一本叫