SQL-记录查询篇-009

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

  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记录。

上一篇:jQuery File Upload的使用


下一篇:uva401 - Palindromes结题报告