数据库表的基本操作DQL2

#字段控制查询

   去除重复记录

       去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就          存在相同的记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记          录,需要使用DISTINCT:

      select distinct 字段的名字 from 表的名称;

   两列进行运算(为数值类型)

     select    列名1+列名2   from  表名;

     注意:如果字段中存在null 相加的结果还是null   所以用到了把null转化为0的函数 ifnull

     select    列名1+ifnull(列名2,0)  from 表名;

   给计算后的列名添加别名

    select 列名1+ifnull(列名2,0)   别名   from 表名;

#排序 order by

   语法 : order by  列名  asc(默认的 升序)  或者 desc (降序)

#聚合函数  sum avg max min count 

数据库表的基本操作DQL2_第1张图片

 count  语法

    select count(*或者列名)   as 别名 from   表名 where 条件语句; 

    注意,count()函数中给出的是列,那么只统计列非NULL的行数。

sum 和avg 语法

   select sum或者avg(列名) from 表名;

max和min 语法

  select max或者min(列名) from 表名;

#分组查询 group by 

注:凡和聚合函数同时出现的列名,一定要写在group by之后

数据库表的基本操作DQL2_第2张图片

having 子句

     查询工资总和大于9000的部门编号以及工资和:

     SELECT deptno, SUM(sal)  FROM emp    GROUP BY deptno     HAVING SUM(sal) > 9000;

注:having与where的区别:

1.having是在分组后对数据进行过滤.

where是在分组前对数据进行过滤

2.having后面可以使用聚合函数(统计函数)

where后面不可以使用聚合函数。

WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

#限制查询 limit 

  语法:

    select * from 表名   limit   起始行,总行数; 

#最后


你可能感兴趣的:(数据库表的基本操作DQL2)