数据库_聚合函数

*运算符
基本的加减乘除取余都在sql语句里面都好用

*使用as关键字给列或表改名
例:

    select salary%2  as result, salary    from employee;

*比较运算符
=,>,<,>=,<=
不等于 != <>
例:

    select * from employee where salary<> 6000;

*判断是否为空
is null
is nut null
例:

    select *from Employee where depart is null ;

    select 60*60*24*365;

*判断两个值是否相等 <=>,=
<=>和=区别就是他可以判断两个空值相等
例:

    select  null <=>null ;

*beyween ....and ..... 判断是否在某个区间内
例:

    select *from Employee where salary between 6000 and 12000;

*IN和Not in
例:

    select *from Employee where depart in ('市场部','销售部');

    select *from Employee where aga  not in (22,32);

*like 模糊查询
%写在字符串中,代表任意长度的任意字符
_代表单个字符
例:

     select *from Employee where name like '张%';

     select *from Employee where name like '张_';

*逻辑运算符
and &&
of ||
not !
xor 异或
异或:两个一样就是假,两个不一样才是真
例:

    select 1 xor 1, 0 xor 1,0 xor 0;

*位运算符
位于&
位或 |
位异或 ^
位左移<<
位右移>>
位取反 -

*CONCAT字符串拼接函数
例:

    select CONCAT('我是',name) from Employee;

*LOWER 大写拼接函数
例:

    select LOWER('AWEWEJKW');

*UPPER 小写拼接函数
例:

    SELECT  UPPER('kdsjfklsdif');

*字符串替换

INSERT  在第3个之后插入试试

例:

    select  INSERT('这是一个字符串',3,5,'试试');
SUBSTRING 从第3个字后开始往后走5个字

例:

    select  SUBSTRING('这是一个字符串',3,5);

*数学相关的函数
向上取整
例:

    select CEIL(3.3);
向下取整

例:

    select  FLOOR(3.3);
随机数

例:

    select  rand();

*常用的聚合函数

取平均值
    select AVG(salary)from Employee;
求和
    select SUM(salary) from Employee;
求最大值
    select MAX(salary)from Employee;
求最小值
    select MIN(salary )from Employee;
求数量
    select  salary,COUNT(*)from Employee where aga>30;

*子查询

例:

 求所有年龄比张三小的人
select aga from Employee where name='张三';


select *from Employee where aga<(select aga from Employee
                                                                                         where name='张三');
求年龄比平均年龄小的人
    select *from Employee where aga<(select AVG(aga) from Employee);
求平均薪资
    select AVG(salary)from Employee;

*group by 子句
分组 ,group by 列名
只有跟在group by 后面的列才能写到select 后面

例;
求每个部门的平均薪资

select depart  ,AVG(salary)from Employee group by depart;
求每个部门相同年龄的工资平均值
select depart,aga  ,AVG(salary)from Employee group by depart,aga;

*having子句 ,只用来过滤分组情况
一般来说只会跟聚合函数相关的判断
例:
求最大薪资大于7000的部门的平均薪资

    select depart, AVG(salary)from Employee group by depart
    having max(salary)>7000;

*时间和日期函数
获取当前的日期

    SELECT curdate();
获取当前的时间
    SELECT curtime();
获取当前的时间和日期
    SELECT now();
 获取当前的年
    SELECT year('2018-9-29');
一年中的第几周
    SELECT week(now());

    SELECT hour(now());

    SELECT minute(now());
算两个日期之间间隔的天数
    SELECT datediff(now(), '2020-12-3');
计算xx天后的日期和时间
    SELECT adddate(NOW(), 10);

select 列名 from 表名;

where 行限制条件

grout by 分组列名

having 分组限制条件

上一篇:查询卡余额


下一篇:el-tree使用心得及其一些坑