Oracle数据库基础select查询语句(续)

模糊查询

  关键字:like

  通配符:%:表示0到多个字符

      _:表示单个字符

      eg:查询员工名字第二个字符为L的员工信息。

        select * from emp where name like '_L%';

练习1:查询姓名中第三个字符为W的员工信息。

   select * from emp where name like '__W%'; 

条件中可以包含表达式或函数

练习1:查询员工编号大于1002的员工信息。

   select * from emp where id>1002;

练习2:查询员工名字长度大于3的员工信息。

   select * from emp where length(name)>3;  

排序

 

  

  也是查询语句中的一个子句。

  位置:一定要放在查询语句的最后。

  用法:ordey by colName。

  升序:asc,默认为升序,可不写。

  降序:desc。

  排序时,null为最大值,理解为无穷大。提示:Mysql和sql中null为最小值。

  按照两个字段排序时,逻辑是先按照第一个字段排序,当值一致时,在按照第二个字段排序。

  练习1:按照对name升序查询出emp表中员工的信息。

     select * from emp order by name;

  练习2:查询emp表中的信息,按照id降序,工资升序。

     select * from emp order by id desc ,sal;

去重

  关键字:distinct

  用途:去掉重复的数据,显示一次。

  用法:此关键字必须紧跟着select关键字。

  练习1:查询emp表中员工的名字,按照升序显示。

    select distinct name from emp ordey by name;

  

聚合函数

  也叫多行函数,分组函数,忽略null值。

  所要的数据表中无法直接体现,需要经过计算。

  max()/min()

  max():查看每一组中的最大值

  min():查看每一组中的最小值  

  sum():求每一组数据的总和

  avg():求每一组数据的平均值

  count():统计每一组数据的记录数,通配符*可以代替任意字段。

  group by 子句:

    作用:通过字段进行分组,字段值一样的为一组。

    用法:group by colName

  having 子句:

    作用:分组之后进行过滤

    位置:group by 子句后。

  练习1:求emp表中的最高与最低工资。

    select max(sal),min(sal) from emp;

  练习2:求emp表中总工资

    select sum(sal) from emp;

  练习3:求emp表中平均月工资。

    select avg(sal) from emp;

  练习4:求emp表中总的记录数。

    select count(*) from emp;

  练习5:对emp中的名字进行分组

    select name from emp group by name;

  练习6:对emp表中的名字进行分组,并查找名字为Mike的信息

    select * from emp group by name having name='Mike';

原文地址:https://www.cnblogs.com/lyr999736/p/9041654.html