MySQL函数
时间:2022-05-14
本文章向大家介绍MySQL函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
MySQL 函数
详细见官方参考手册 参考手册
1、常见函数
常见函数汇总练习
-- 数学运算函数
SELECT ABS(-8); -- 绝对值 /8/
SELECT CEILING(-1.2) ;-- 向上取整 /-1/
SELECT FLOOR(9.4);-- 向下取整 /9/
SELECT RAND(); -- 返回一个0~1之间的随机数
SELECT SIGN(0); -- 判断一个数的符号,0 返回0 负数返回-1 正数返回1 /0/
-- 字符串函数(字符串起始位置为1)
SELECT CHAR_LENGTH('无关风月'); -- 字符串长度 /4/
SELECT CONCAT('无','关','风','月'); -- 拼接字符串 /无关风月/
SELECT INSERT('wgfy,我题序等你回',1,4,'无关风月');
-- 插入,替换(1,4代表从1位置开始替换长度为4) /无关风月,我题序等你回/
SELECT LOWER('Viper'); -- 全部小写 /viper/
SELECT UPPER('viper'); -- 全部大写 /VIPER/
SELECT INSTR('viper','a'); -- 返回第一次出现的子串的索引,若没有则返回0 /0/
SELECT REPLACE('永和XX,岁在癸丑','XX','九年'); -- 替换出现的指定字符串 /永和九年,岁在癸丑/
SELECT SUBSTR('永和九年,岁在癸丑', 6, 100);
-- 返回指定的子字符串(源字符串,截取的位置,截取的长度)截取长度可以超出字符串长度 /岁在癸丑/
SELECT REVERSE('会于会稽山阴之兰亭'); -- 反转 /亭兰之阴山稽会于会/
-- 时间和日期函数(记住!)
SELECT CURRENT_DATE(); -- 获取当前日期(年月日)
SELECT CURDATE(); -- 获取当前日期简写
SELECT NOW(); -- 获取当前的时间(年月日时分秒)
SELECT LOCALTIME(); -- 获取本地时间
SELECT SYSDATE(); -- 获取系统时间
SELECT YEAR(NOW()); -- 年
SELECT MONTH(NOW()); -- 月
SELECT DAY(NOW()); -- 日
SELECT HOUR(NOW()); -- 时
SELECT MINUTE(NOW()); -- 分
SELECT SECOND(NOW()); -- 秒
-- 系统函数
SELECT SYSTEM_USER();
SELECT USER();
SELECT VERSION();
2、聚合函数及分组过滤
函数
函数 | 描述 |
---|---|
count() |
计数 |
sum() |
求和 |
avg() |
平均值 |
max() |
最大值 |
min() |
最小值 |
聚合函数练习(基于school1数据库)
因为最后一个练习是查询不同课程的分,所以要用group by 进行分组
因为要过滤掉均分在60分以下的科目,所以要用having
-- 聚合函数
-- 用于统计表中数据
-- 统计表中记录数(行数)
-- 语法是:COUNT()
-- 1.COUNT(字段名) 会忽略所有的null值(想查询一个表中有多少个记录,就使用这个)
SELECT COUNT(studentname) FROM student; -- 9
-- 2.COUNT(*) 不会忽略所有的null值 本质是 计算行数
SELECT COUNT(*) FROM student;
-- 3.COUNT(1) 不会忽略所有的null值 本质是 计算行数
SELECT COUNT(1) FROM student;
SELECT SUM(studentresult) AS '总和' FROM result; -- 1829
SELECT AVG(studentresult) AS '平均分' FROM result; -- 76.2083
SELECT MAX(studentresult) AS '最高分' FROM result; -- 100
SELECT MIN(studentresult) AS '最低分' FROM result; -- 45
-- 查询不同课程(所以用 group by)的平均分,最高分,最低分
-- 练习:查询不同课程的 平均分,最高分,最低分(过滤掉均分在60分以下的科目)
SELECT sub.subjectname AS '课程',
AVG(res.studentresult) AS '平均分',
MAX(res.studentresult) AS '最高分',
MIN(res.studentresult) AS '最低分'
FROM `result` res
INNER JOIN `subject` sub
ON res.`subjectno`=sub.`subjectno`
GROUP BY res.`subjectno` -- 制定结果按照 `result` 表的 `subjectno`字段来分组
HAVING AVG(res.studentresult) >=60;
-- 过滤分组的记录必须满足的次要条件为 过滤掉均分在60分以下的科目
如下图,均分在60以下的科目被过滤掉了
原文地址:https://www.cnblogs.com/xypersonal/p/16269521.html
- 【编程基础】C语言内存使用的常见问题
- kmeans聚类理论篇K的选择(轮廓系数)
- 算法之旅 | 选择排序法
- 【专业技术】Android数据保存之SharedPreferences
- 【答疑解惑】Java中的高精度数字
- 2000! | 看上去如此简单的面试题,让太多“前端”英雄好汉折戟
- 【Windows编程】系列第六篇:创建Toolbar与Statusbar
- arguments,想说爱你不容易
- 【android开发】Android binder学习一:主要概念
- 高考啦! JavaScript高考全国卷
- 2017 JavaScript高考全国卷 参考答案与解析
- 用贝叶斯判别分析方法预测股票涨跌
- 开发 | 在 Mac OS X 装不上 TensorFlow?看了这篇就会装
- 【答疑解惑】Java中的默认构造器和equals方法
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解