mysql之select+五种子句的理解
select 可以包含很复杂,很丰富的逻辑,最能考验一个人的逻辑思维能力和sql语句的掌握程度,我是这么认为,以前的很多次面试几乎都死在它手上,所以才有了今天的这篇日志,下定决心把它学好。
where 表达式
我们要这样理解,表达式放在表中的哪一行成立,哪一行就取出来
=,>,<,>=,<=,!=/<>,and,or,between and,in,not
group by
分组,一般和统计函数配合使用才有意义
max,min,avg,count,sum
having 表达式
数据在表中,表在硬盘或内存以文件形式存在
和where区别:where 是针对表文件发挥作用的。
查询出的结果,也可以看成一张表,其文件一般临时存在于缓冲区
having就是针对查询结果发挥作用的。
所以应该现有where,才有having
order by 排序
可以针对字段进行排序,order by 字段1 [asc] 升序,[desc] 降序
有可能一个字段排序不出结果,可以选用其他字段继续排序,
order by 字段1 [asc/desc],字段2 [asc/desc]
limit [offset,] N
offset:偏移量
N:取出的条目
例如:要取某张表3-5行的记录,
select * from tableName limit 2,3;
注意:where->group by->having-order by->limit,必须按顺序出现。
子查询(重点)
where型的子查询:把内层查询的结果作为外层查询比较的条件
差不多这种形式:
select * from tableName where tid = (select tid from ...);
from型子查询:把内层查询的结果,当做一张临时表,供外层继续查询
形式:select * from (select * from ...) as temp group by...;
exists型子查询:把外层的查询结果拿到内层,看内层的查询是否成立
形式:select oid from outTable o where exists(select * from inTable i where i.oid=o.oid);
最新文章
- Spring中的IOC\DI\AOP等概念的简单学习
- Spring使用非applicationContext.xm 默认名的配置文件的配置
- live555库中的openRTSP实例
- C# 获取MAC地址
- UVA-11107 Life Forms(后缀数组)
- ajax分页
- Yii2 捕获错误日志
- UVA11324 强连通+dp记忆化搜索
- php gd 生成日历图
- 摸索出来的chrom调试前后台数据(Java&;&;Ajax)交互的方法分享一下咯!!!
- java程序性能调优---------------性能概述
- 报错django.db.migrations.exceptions.InconsistentMigrationHistory
- typescript之初学习
- Linux CentOS设置定时重启:crontab
- 关于openSetting通过tap的调用
- Tarjan总结(缩点+割点(边)+双联通+LCA+相关模板)
- Jenkins pipeline 语法详解
- c#public、private、protected、internal、protected internal
- Python3 turtle安装和使用教程
- Wannafly 挑战赛22 D 整数序列 线段树 区间更新,区间查询
热门文章
- 数据段、代码段、堆栈段、BSS段
- MapReduce编程系列 — 2:计算平均分
- 游戏中VIP会员模块的简单实现
- Git教程(10)git比较复杂的功能
- Convert boolean values to strings &#39;Yes&#39; or &#39;No&#39;.
- Android 内存管理分析(四)
- hdu 1874 畅通工程续(模板题 spfa floyd)
- ORACLE【1】:触发器详解
- [转载]12款免费与开源的NoSQL数据库介绍
- NOI2003 逃学的小孩