小贝_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!

时间: 2024-10-08 08:53:18

小贝_mysql三种子查询的相关文章

小贝_mysql select连接查询

select连接查询 简要: 一.union联合查询 二.左右内连接 一.union联合查询 作用: 把2次或多次查询结果合并起来 具体: (表1查询结果) union (表2查询结果) 运行: 先算表1查询结果,再算表2查询结果.再通过union把结果联合起来. 总结: a.左右查询结果列数一致 b.终于显示结果以第一张表的列名为主 c.左右查询结果的列类型最好也一致.不然就会进行转换. 由低到高.如表1结果A列为整形,表2结果A列为浮点型.则表1在A列的结果转换为浮点型 d.能够是不同表 e

小贝_mysql优化学习

mysql优化 简要: 1.数据库设计优化 2.sql语句优化 3.表分割 4.读写分离技术 一.数据库设计优化 1.表设计要符合三范式,当然,有时也需要适当的逆范式 2.什么是三范式 一范式: 具有原子性,不可再分割 二范式: 在满足一范式的基础上,我们考虑是否满足二范式.只要表的记录满足唯一性,也是说,同一张表,不可能出现完全相同的记录,一般说,在表中设计一个主键即可. 三范式: 在满足二范式的基础上,我们考虑是否满足三范式.只要表满足没冗余性. 二.SQL语句优化 1.sql优化的一般步骤

小贝_mysql分区理论学习

mysql分区 简要: 一.为什么需要mysql分区 二.mysql分区的类型 三.mysql分区技术对比 一.为什么需要mysql分区 1.首先,业务数据增大时,必然会影响数据操作.通常针对大数据,有如下优化方法: a.大表拆小表 b.sql语句优化 2.不足: a.sql语句优化可以通过增加索引等来调整,但是随着数据量增大时将会导致索引的维护代价增大 b.大表拆分小表可以在细分为垂直or水平分表.但是需要实现逻辑操作.即选择那张表 3.总结: 针对大数据,添加索引会导致索引文件大以及维护索引

小贝_mysql主从复制作用以及案例

mysql主从复制 简要: 一.mysql用户授权 二.mysql bin-log日志 三.mysql主从复制 一.mysql用户授权 1.命令 2.作用:进行权限控制 3.例子: (备注: 允许用户xiaobei从localhost访问mysql,而且需要密码验证,密码为xiaobei) 4.查看mysql用户权限表 二.bin-log日志 1.查看bin-log是否开启 2.开启bin-log日志 修改配置文件 [mysqld] log-bin=mysql-bin 3.重启mysql服务器,

小贝_mysql分区实例

mysql分区实验 简要: 一.按照分区类型建立分区 二.管理分区 三.分区与未分区表例子 一.建立分区以hash分区为例 (1).非线性hash分区 1.测试表t_hash结构 create table t_hash (id int unsigned, name char(1) )engine=myisam charset=utf8 partition by hash(id) partitions 5; 2.t_hash表物理文件结构 3.往t_hash表插入数据 4.查看表t_hash物理结

小贝_mysql索引学习与优化

mysql索引与优化 简要: 一.索引是什么 二.索引类型及使用语法 三.全文索引说明 一.索引是什么 1.以书的目录为例,通过查看目录,再找到对应的内容.因此,索引就是给数据加上了'目录',便于快速找到数据 2.索引的作用: 好处: 加快了查询速度 坏处: a.降低了增删改的速度 b.增大了表的文件大小(索引文件甚至可能比数据文件还大) 案例: 设有某个表15列,存在10列上有索引,共500w行数据,如何快速导入? 答: 1.把空表的索引全部删除 2.导入数据 3.数据导入完毕后再建立索引 3

小贝_mysql 常见存储引擎区别

存储引擎区别 简要: 1.存储引擎 2.myisam与innodb区别 一.存储引擎 1.什么是存储引擎 通俗地讲就是存储和管理数据的方式 形象例子: 某处地方的自行车管理员:李某,张某.每天都有很多人来存取自行车.李某的管理方式是: 车主自行存放,李某也不记录对方存的是什么车.取车时则要交管理费.也不检查取的是否是对方自己的车.相反,张某,则在车主存放车时,记录存放人的特征以及对应车的信息.当人来取车时,张某还要小心核对,人与车的特征是否对应. 从上述例子可知: a.从效率的角度来看: 李某比

小贝_mysql view视图学习

view视图 简要: 1.视图定义 2.创建视图 3.视图与表的关系 4.视图种类 一.视图定义 视图起因: 查询每个栏目最贵的商品=> selectgoods_id,goods_name,shop_price from goods order by cat_id asc,shop_price desc; 查询结果,当成一张表看 如果某个查询结果出现的非常频繁,也就是说,拿这个结果进行子查询出现的非常频繁. createtable g2 like goods;insert into g2 sel

小贝_mysql表优化

mysql表优化 简要:        一.分析表 二.检查表 三.优化表 四.表数据导入 五.锁表操作 一.分析表 1.1.命令: ANALYZE [NO_WRITE_TO_BINLOG | LOCAL]TABLE tbl_name [, tbl_name] ... 1.2.作用: 本语句用于分析和存储表的keyword分布.分析的结果将可以使得系统得到准确的统计信息,使得sql可以生成正确的行计划 1.3.不足: 在分析期间,会对表进行读锁操作 1.4.样例: 二.检查表 2.1.命令 CH