函数查询加强

2019-08-07  本文已影响0人  温柔倾怀

合计/聚合函数--count

count 函数是进行统计满足条件的记录数有多少条, 是按照分组的形式统计

1.统计班里共有多少学生
    select count(*) from student;
select count(*) from student where math > 90;

聚合函数--sum

Sum函数返回满足where条件的记录的总和

select sum(math) from student; //返回的结果是班级所有同学数学成绩总和
select sum(math)+sum(chinese)+sum(english) from student; //这种写法是一定正确的
select sum(math+chinese+english) from student; //这种写法要求所求记录中不能包含空值,数值会出错
select sum(chinese)/count(*) from student;
ifnull函数 ifnull(expr1,expr2),
  如果expr1为null,则取expr2的值
  如果expr1不为空,就取第一个表达式的值
select sum(ifnull(math,0.0)+ifnull(chinese,0.0)+ifnull(english,0.0)) from student where id >= 100;

聚合函数--avg

AVG函数返回满足where条件的列的平均值

select avg(math) from student;

聚合函数--Max/Min

返回满足where条件的的最大/最小值
也需要保证每个字段中不能包含空值

聚合函数 group by

group by 就是对数据(列)进行分组统计, 如果我们需要对分组的结果进行过滤则可以使用关键字 having

select max(salary),min(salary),deptno from emp group by deptno;

dual

亚元表,可以作为一个测试表,可以当做一个空表,没有表用的时候可以拿来用,补位的意思

mysql> select now() from dual;
+---------------------+
| now()               |
+---------------------+
| 2019-08-07 01:29:06 |
+---------------------+
1 row in set (0.01 sec)

Mysql的日期函数

字符串函数

mysql> select charset('nihao');
+------------------+
| charset('nihao') |
+------------------+
| gbk              |
+------------------+
1 row in set (0.01 sec)
mysql> select concat('name:',name,'  year:',year) as info from user;
+---------------------+
| info                |
+---------------------+
| name:huahua  year:4 |
+---------------------+
1 row in set (0.00 sec)
mysql> select ucase('abc'),lcase('DEF');
+--------------+--------------+
| ucase('abc') | lcase('DEF') |
+--------------+--------------+
| ABC          | def          |
+--------------+--------------+
1 row in set (0.00 sec)
mysql> select left('nihao',3);
+-----------------+
| left('nihao',3) |
+-----------------+
| nih             |
+-----------------+
1 row in set (0.01 sec)
mysql> select length('nihao');
+-----------------+
| length('nihao') |
+-----------------+
|               5 |
+-----------------+
1 row in set (0.00 sec)
如图,全部查找,全部替换
mysql> select replace('nihaoyyyyyy','y','!');
+--------------------------------+
| replace('nihaoyyyyyy','y','!') |
+--------------------------------+
| nihao!!!!!!                    |
+--------------------------------+
1 row in set (0.00 sec)
mysql> select strcmp('a','a');
+-----------------+
| strcmp('a','a') |
+-----------------+
|               0 |
+-----------------+
1 row in set (0.00 sec)
mysql> select strcmp('a','A');
+-----------------+
| strcmp('a','A') |
+-----------------+
|               0 |
+-----------------+
1 row in set (0.00 sec)
------------------------------------------------
mysql> select strcmp('a','b');
+-----------------+
| strcmp('a','b') |
+-----------------+
|              -1 |
+-----------------+
1 row in set (0.00 sec)
mysql> select substring('nihao world',6,6);
+------------------------------+
| substring('nihao world',6,6) |
+------------------------------+
|  world                       |
+------------------------------+
1 row in set (0.00 sec)

mysql> select substring('nihao world',6);
+----------------------------+
| substring('nihao world',6) |
+----------------------------+
|  world                     |
+----------------------------+
1 row in set (0.00 sec)
mysql> select length('     nihao!     ');
+----------------------------+
| length('     nihao!     ') |
+----------------------------+
|                         16 |
+----------------------------+
mysql> select length(trim('     nihao!     '));
+----------------------------------+
| length(trim('     nihao!     ')) |
+----------------------------------+
|                                6 |
+----------------------------------+
1 row in set (0.00 sec)

数值函数

mysql> select conv(10,10,2);
+---------------+
| conv(10,10,2) |
+---------------+
| 1010          |
+---------------+
1 row in set (0.00 sec)

mysql> select conv(10,10,16);
+----------------+
| conv(10,10,16) |
+----------------+
| A              |
+----------------+
1 row in set (0.00 sec)

流程控制函数

select case
when expr1 then expr2
when expr3 then expr4
else expr5
end;

其他函数

mysql> select md5('nihao');
+----------------------------------+
| md5('nihao')                     |
+----------------------------------+
| 194ce5d0b89c47ff6b30bfb491f9dc26 |
+----------------------------------+
1 row in set (0.01 sec)

mysql> select password('nihao');
+-------------------------------------------+
| password('nihao')                         |
+-------------------------------------------+
| *364870DF09C7E82F6A8ED19ED529F3375E57B3CF |
+-------------------------------------------+
1 row in set (0.00 sec)
上一篇下一篇

猜你喜欢

热点阅读