数据库处理函数

目录

一、单行处理函数

二、多行处理函数(分组函数) 


一、单行处理函数

单行处理函数常见的有哪些?

1、lower 转换小写        select lower(ename) as ename from emp;

2、upper 转换大写        select upper(name) as name from t_student;

3、substr取子串(substr(被截取的字符串,起始下标,截取的长度))

select substr(ename, 1, 1) as ename from emp;        注意:起始下标从1开始,没有0.

找出员工名字第一个字母是A的员工信息?

        第一种方式:模糊查询        select ename from emp where ename like 'A%';

        第二种方式:substr函数      select ename from emp where substr (ename,1,1) = 'A';

        首字母大写        select upper(substr(name,1,1))  from t_student;

                                  select concat (upper (substr (name,1,1)) ,substr (name,2,length (name) - 1))                         as result from t_student;

4、length 取长度        select length (ename)enamelength from emp;

5、trim 去空格        select * from emp where ename = trim('    KING');

6、str_ to date 将字符串转换成日期

7、date format 格式化日期

8、format 设置千分位

9、round 四舍五入        

        select round(1236.567,1) as result from emp;//保留1个小数

        select round(1236.567,2) as result from emp;//保留2个小数

        select round(1236.567,-1) as result from emp;//保留到十位。

10、rand()生成随机数        select rand() from emp;

11、ifnull可以将null转换成一个具体值

注意:NULL只要参与运算,最终结果一定是NULL。为了避免这个现象,需要使用ifnull函数。ifnull函数用法:ifnull(数据,被当做哪个值)如果“数据”为NULL的时候,把这个数据结构当做哪个值。

补助为NULL的时候,将补助当做0        

        select ename, (sal + ifnull(comm, 0)) * 12 as yearsal from emp;

12、concat函数进行字符串的拼接        select concat(empno,ename) from emp;

13、case..when..then.when..then..else..end

当员工的工作岗位是MANAGER的时候,工资上调108,当工作岗位是SALESMAN的时候,工资上调508,其它正常。|(注意:不修改数据库,只是将查询结果显示为工资上调)

select ename,job,sal from emp;

select

        ename,

        job,

        (case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal end) as newsal

from

        emp;

二、多行处理函数(分组函数) 

多行处理函数的特点:输入多行,最终输出一行。

5个:count 计数          select count (ename) from emp;

         sum 求和            select sum(sal) from emp;

         avg 平均值          select avg(sal) from emp;

         max 最大值         select max(sal) from emp;

         min 最小值          select min(sal) from emp;

注意:

        1、分组函数在使用的时候必须先进行分组,然后才能用。

        2、如果没有对数据进行分组,整张表默认为一组。

        3、分组函数自动忽略NULL,你不需要提前对NULL进行处理。

        4、分组函数中count(*)和count(具体字段)有什么区别?

                count(具体字段):表示统计该字段下所有不为NULL的元素的总数。

                count(*):统计表当中的总行数。(只要有一行数据count则++)因为每一行记录不可

        能都为NULL,一行数据中有一列不为NULL,则这行数据就是有效的。

        5、分组函数不能够直接使用在where子句中。

                因为分组函数在使用的时候必须先分组之后才能使用。where执行的时候,还没有分

        组。所以where后面不能出现分组函数。

        6、所有的分组函数可以组合起来一起用。

分组查询

        1、在实际的应用中,可能有这样的需求,需要先进行分组,然后对每一组的数据进行操作。这个时候我们需要使用分组查询。

        select

                ...

        from

                ...

        group by

        ...

        计算每个部门的工资和?         select job,sum(sal) from emp group by job; 

        注意:在一条select语句当中,如果有group by语句的话,select后面只能跟:参加分组的字段,以及分组函数。其它的一律不能跟。  

        找出每个部门的最高薪资?        select deptno,max (sal) from emp group by deptno;
     

        2、使用having可以对分完组之后的数据进一步过滤。having不能单独使用,having不能代替where,having必须和group by联合使用。

        eg:要求显示最高薪资大于3000

                select deptno,max (sal) from emp group by deptno having max(sal) > 3000;

                select deptno,max (sal) from emp where sal > 3000 group by deptno;      

        优化策略:where和having,优先选择where,where实在完成不了了,再选择having。 

   3、将之前的关键字全部组合在一起,来看一下他们的执行顺序?

                select...

                from...

                where...

                group by...

                having...

                order by...

        以上关键字的顺序不能颠倒1.from  2. where  3. group by  4.having  5.select  6.order by

        从某张表中查询数据,先经过where条件筛选出有价值的数据。对这些有价值的数据进行分组。分组之后可以使用having继续筛选。select查询出来。最后排序输出!

 

相关推荐

  1. 数据库处理函数

    2024-03-24 05:58:05       34 阅读
  2. ES6数据处理函数(笔记)

    2024-03-24 05:58:05       56 阅读
  3. 【python处理数据函数】---误区2

    2024-03-24 05:58:05       34 阅读
  4. 多次运用集成函数处理蛋白质特征数据

    2024-03-24 05:58:05       59 阅读
  5. python定义函数和写循环批量处理数据

    2024-03-24 05:58:05       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 05:58:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 05:58:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 05:58:05       82 阅读
  4. Python语言-面向对象

    2024-03-24 05:58:05       91 阅读

热门阅读

  1. Python编程异步爬虫——协程的基本原理

    2024-03-24 05:58:05       35 阅读
  2. Scala第十一章节(正则表达式和异常处理)

    2024-03-24 05:58:05       36 阅读
  3. Python XML 解析

    2024-03-24 05:58:05       40 阅读
  4. 特种兵旅游-扬州、南京

    2024-03-24 05:58:05       37 阅读
  5. vue3之声明式和编程式导航

    2024-03-24 05:58:05       44 阅读
  6. 5.83 BCC工具之tcplife.py解读

    2024-03-24 05:58:05       38 阅读
  7. creator-webview与Android交互

    2024-03-24 05:58:05       29 阅读
  8. 2024最新华为OD机试试题库全 -【贪心歌手】- C卷

    2024-03-24 05:58:05       35 阅读