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);

最新文章

  1. Spring中的IOC\DI\AOP等概念的简单学习
  2. Spring使用非applicationContext.xm 默认名的配置文件的配置
  3. live555库中的openRTSP实例
  4. C# 获取MAC地址
  5. UVA-11107 Life Forms(后缀数组)
  6. ajax分页
  7. Yii2 捕获错误日志
  8. UVA11324 强连通+dp记忆化搜索
  9. php gd 生成日历图
  10. 摸索出来的chrom调试前后台数据(Java&amp;&amp;Ajax)交互的方法分享一下咯!!!
  11. java程序性能调优---------------性能概述
  12. 报错django.db.migrations.exceptions.InconsistentMigrationHistory
  13. typescript之初学习
  14. Linux CentOS设置定时重启:crontab
  15. 关于openSetting通过tap的调用
  16. Tarjan总结(缩点+割点(边)+双联通+LCA+相关模板)
  17. Jenkins pipeline 语法详解
  18. c#public、private、protected、internal、protected internal
  19. Python3 turtle安装和使用教程
  20. Wannafly 挑战赛22 D 整数序列 线段树 区间更新,区间查询

热门文章

  1. 数据段、代码段、堆栈段、BSS段
  2. MapReduce编程系列 — 2:计算平均分
  3. 游戏中VIP会员模块的简单实现
  4. Git教程(10)git比较复杂的功能
  5. Convert boolean values to strings &#39;Yes&#39; or &#39;No&#39;.
  6. Android 内存管理分析(四)
  7. hdu 1874 畅通工程续(模板题 spfa floyd)
  8. ORACLE【1】:触发器详解
  9. [转载]12款免费与开源的NoSQL数据库介绍
  10. NOI2003 逃学的小孩