在学习记录查询之前,学习一些关键字的使用;

  1、逻辑运算符:and 、 or 、 not  、is null

    select *

    from   table_name

    where  id>2 and id<4

    解释:返回id大于2,小于4的记录

    select *

    from  table_name

    where  name is null

      解释:返回name字段不为空的记录

  2、模糊查询:like

    select *

    from table_name  

    where  name like '%good%'

    解释:返回name字段包含good字符串的记录

  3、范围查询:between   、  in

    select *

    from table_name

    where age between  1  and 10

      解释:返回age在1-10之间的记录

    select *

    from table_name

    where  name  in('张三',‘李四’,‘马六’)

    解释:返回name字段中有('张三',‘李四’,‘马六’)的记录

  4、exists 、all 、some、 any

    exists (select * from table_name where id >10)

    解释:exists返回值为bool值,检测行是否存在。若不存在行,返回false,若存在一条及多条,返回true;

  

    select * from table_name where age > all(select age from table_name2 )

    解释:筛选出表1中的age大于表2中最大age的记录

    select * from table_name where id > any(select age from table_name2 )

    解释:筛选出表1中的age大于表2中最小age的记录

    

    注:some的用法与any一样,且这些关键字多用于子查询中。

  5、top 、distinct 、compute 、group by

    select top 10 *

    from  table_name

    where  id >20

    解释:筛选出id大于20的前10条记录

    select  distinct  name

    from table_name

    解释:筛选出不同值的name记录

    select  age ,count(*)

    from table_name

    group by age

    解释:age字段为主字段,另一个字段必须为聚合函数。

    select id,name,age

    from table_name

    compute sum(age)

    解释:返回两个结果集,一个是id,name,age字段的详细结果集,另一个是sum结果集

    select id,name,age,sex

    from table_name

    order by sex

    compute sum(age) by sex

    解释:返回多个结果集,根据sex的不同值划分结果集。

    

  一、合并多个表的记录

    关键字:union

      select *  from table_name

      union

      select * from table_name2

      解释:将表1和表2的记录简单累加,表1和表2的字段数和字段类型必须一致!

      select * from table_name

      union all

      select id,name ,age from table_name2

      解释:将表2筛选出来的记录与表1合并

      select * from table_name

      union

      select * from table_name1

      union

      select * from table name2

      解释:将表1和表2和表3合并

  二、联接多个表  

    内联接:inner join

      select table1.age

      from table1

      inner join table2

      on table1.name=table2.name

      解释:从表1中筛选出表1和表2 name字段相同的age记录,删除重复记录。

    左联接:left join

      select table1.age

      from table1

      left join table2

      on table1.name=table2.name

      解释:留下表1的所有age记录,即使没有与表2匹配

    右联接:right join

      select table1.age,table2.name

      from table1

      right join table2

      on table1.name=table2.name

      解释:留下表2的所有name记录,即使没有与表1匹配

    全联接:full join     

      select table1.age,table2.name

      from table1

      full join table2

      on table1.name=table2.name

      解释:留下表1的所有age记录,留下表2的所有name记录。

SQL-记录查询篇-009的更多相关文章

  1. sql记录查询重复注意事项(经验提升),in的用法和效率

    sql查询重复记录,使用: select * from dimappnamenew as appn where id in (   select id   from dimappnamenew gro ...

  2. ORACLE基本SQL语句-查询篇

    一.普通查询 /*查询表数据*/select * from STU /*取出前3行数据*/select * from stu where ROWNUM<=3 /*模糊查询*/select * f ...

  3. 第四篇:记录相关操作 SQL逻辑查询语句执行顺序

    http://www.cnblogs.com/linhaifeng/articles/7372774.html 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <selec ...

  4. mysql第四篇--SQL逻辑查询语句执行顺序

    mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> < ...

  5. **SQL某一表中重复某一字段重复记录查询与处理

    sql某一表中重复某一字段重复记录查询与处理   1.查询出重复记录  select 重复记录字段 form  数据表 group by houseno having count(重复记录字段)> ...

  6. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十一)数据层优化-druid监控及慢sql记录

    本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...

  7. SQL联合查询:子表任一记录与主表联合查询

    今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...

  8. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

  9. oracle(sql)基础篇系列(五)——PLSQL、游标、存储过程、触发器

      PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语 ...

随机推荐

  1. Linux下调试.Net core(1):lldb的安装

    windows下,我们对于.net程序发生Crash,资源泄露,死锁等问题的分析,有神器windbg,那现在我们的.net core程序运行在linux上时,该怎么进行对对Core Dump文件进行分 ...

  2. C++字节对齐汇总

    一.什么是字节对齐 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数 ...

  3. 线性回归(linear regression)

    基本形式 最小二乘法估计拟合参数 最小二乘法:基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method) 即(左边代表 $\mathbf{\omega }$ 和 ...

  4. stlcky footers布局小技巧

    sticky-footer解决方案 在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果 ...

  5. HBase和MongoDB的区别

    Mongodb用于存储非结构化数据,尤其擅长存储json格式的数据.存储的量大概在10亿级别,再往上性能就下降了,除非另外分库.Hbase是架构在hdfs上的列式存储,擅长rowkey的快速查询,但模 ...

  6. buntu下cutecom图像界面串口调试工具使用

    一.安装,首先下载这个软件,终端和软件中心均可下载,终端下载命令: sudo apt-get install cutecom 即可快速搞定安装问题. 软件中心: 由于我已经通过终端安装成功,所以软件中 ...

  7. CSS之user-select——设置标签中的文字是否可被复制

    详细介绍请参考 http://www.css88.com/book/css/properties/user-interface/user-select.htm CSS样式 user-select:no ...

  8. get函数

    dict={"name":"jary","age":22}print(dict.get("age")) # 通过键值找到 ...

  9. Python自学:第三章 索引从0开始而不是从1

    #返回最后一个,和倒数第二个元素 bicycles = ['trek','cannondale','redline','specialized'] print(bicycles[-1]) print( ...

  10. linux下无root 安装activepython到指定目录

    linux下无root 安装activepython 1.下载ActivePython-2.7.8.10-linux-x86_64.tar.gz 包 2.进入非root用户,如bdc用户,解压 [bd ...