外贸网站推广机构网站图片速度
文章目录
- 1 :peach:聚合函数:peach:
 - 2 :peach:group by子句的使用:peach:
 - 3 :peach:内置函数:peach:
 - 3.1 :apple:日期函数:apple:
 - 3.2 :apple:字符串函数:apple:
 - 3.3 :apple:数学函数:apple:
 
- 4 :peach:其它函数:peach:
 
1 🍑聚合函数🍑
| 函数 | 说明 | 
|---|---|
COUNT([DISTINCT] expr) | 返回查询到的数据的 数量 | 
SUM([DISTINCT] expr) | 返回查询到的数据的 总和,不是数字没有意义 | 
AVG([DISTINCT] expr) | 返回查询到的数据的 平均值,不是数字没有意义 | 
MAX([DISTINCT] expr) | 返回查询到的数据的 最大值,不是数字没有意义 | 
MIN([DISTINCT] expr) | 返回查询到的数据的 最小值,不是数字没有意义 | 
案例:我们使用的是students表和exam_result表:
 
 
- 统计班级共有多少同学?
 

- 统计班级收集的 qq 号有多少?
 

- 统计本次考试的数学成绩分数个数?
 
没有去重:
 
 去重:
 
- 统计70 分以上的数学最低分;
 

2 🍑group by子句的使用🍑
在select中使用group by 子句可以对指定列进行分组查询。
 语法:
select column1, column2, .. from table group by column;
 
案例:
 准备工作:创建一个雇员信息表(来自oracle 9i的经典测试表)
 参考下面:
 
- 如何显示每个部门的平均工资和最高工资?
 

- 显示每个部门的每种岗位的平均工资和最低工资;
 

- 显示平均工资低于2000的部门和它的平均工资;
 
注意:having和group by配合使用,对group by结果进行过滤。
总结SQL查询中各个关键字的执行先后顺序:
from > on> join > where > group by > with > having > select> distinct > order by > limit
3 🍑内置函数🍑
3.1 🍎日期函数🍎
| 函数名称 | 描述 | 
|---|---|
| current_date() | 当前日期 | 
| current_time() | 当前时间 | 
| current_timestamp() | 当前时间戳 | 
| date(datetime) | 返回data参数的日期部分 | 
| date_add(date, interval d_value_type) | interval后的数值单位可以是:year,minute,second,day | 
| date_sub(date, interval d_value_type) | interval后的数值单位可以是:year,minute,second,day | 
| datediff(date1, date2) | 两个日期的差,单位是天 | 
| now() | 当前的日志时间 | 
- 在日期的基础上加日期;
 

- 计算两个日期之间相差多少天;
 

- 创建一个留言表插入数据,显示所有留言信息,发布日期只显示日期,不用显示时间,以及查询在2分钟内发布的帖子;
 

显示所有留言信息,发布日期只显示日期,不用显示时间:
 
 查询在2分钟内发布的帖子:
 
3.2 🍎字符串函数🍎
| 函数名称 | 描述 | 
|---|---|
| charset(str) | 返回字符串字符集 | 
| concat(str, [……]) | 连接字符串 | 
| instr(str, sunstring) | 返回substring在string中出现的位置,没有则返回0 | 
| ucase(str) | 转化成大写 | 
| lcase(str) | 转化成小写 | 
| left(str, len) | 从str左边取len个字符 | 
| length(str) | str的长度 | 
| replace(str, serstr, repstr) | 在str中用repstr替代serstr | 
| strcmp(str1, str2) | 比较两个字符串 | 
| substring(str, pos, len) | 从str的pos位置开始截取len的字符 | 
| ltrim(str) rtrim(str) trim(str) | 除去前空格或者后空格 | 
案例:
- 获取emp表的ename列的字符集
 

- 以首字母小写的方式显示所有员工的姓名;
 

3.3 🍎数学函数🍎
| 函数名称 | 描述 | 
|---|---|
| abs(num) | 绝对值 | 
| bin(num) | 十进制转二进制 | 
| hex(num) | 十进制转十六进制 | 
| conv(num, form_base, to_base) | form_base进制转化为to_base进制 | 
| ceiling(num) | 向上取整 | 
| floor(num) | 向下取整 | 
| format(num, decimal_places) | 格式化小数位数 | 
| mod(num) | 取模 | 
| rand() | 返回随机浮点数->[0.0, 1.0) | 
4 🍑其它函数🍑
user()查询当前用户:
mysql> select user();
+--------+
| user() |
+--------+
| root@  |
+--------+
1 row in set (0.00 sec) 
md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串:
mysql> select md5('hello');
+----------------------------------+
| md5('hello')                     |
+----------------------------------+
| 5d41402abc4b2a76b9719d911017c592 |
+----------------------------------+
1 row in set (0.00 sec) 
database()显示当前正在使用的数据库:
mysql> select database();
+------------+
| database() |
+------------+
| scott      |
+------------+
1 row in set (0.00 sec) 
password()函数,MySQL数据库使用该函数对用户加密:
mysql> select password('grm');
+-------------------------------------------+
| password('grm')                           |
+-------------------------------------------+
| *3170D93DA75A9CE48555747589F6EFC4C29276D7 |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec) 
ifnull(val1, val2)如果val1为null,返回val2,否则返回val1的值:
mysql> select ifnull(null, '123');
+---------------------+
| ifnull(null, '123') |
+---------------------+
| 123                 |
+---------------------+
1 row in set (0.00 sec) 
