mysql必会语法_sql语法:sql必读必会(二)mysql中的函数大全
AVG 函数
作用:AVG 函数返回数值列的平均值。NULL 值不包括在计算中
语法:SELECT AVG(列) FROM 表
求id平均值(实在没字段了,就是意思意思)
id大于平均值的记录
COUNT() 函数
作用:返回匹配指定条件的行数。
语法:SELECT COUNT(列) FROM 表
年龄是13的记录有34行
id大于1的年龄不同值2个
FIRST() 函数
作用:返回指定的字段中第一个记录的值。(多与order by 联合使用)
语法:SELECT FIRST(列) FROM 表
!!!这个划重点,贼鸡儿坑,我不知道啥数据支持这个函数,反正mysql,sqlserver,oracle都不支持。
SQL Server 语法:
SELECT TOP 1 column_name FROM table_name
ORDER BY column_name ASC;
MySQL 语法:
SELECT column_name FROM table_name
ORDER BY column_name ASC
LIMIT 1;
Oracle 语法:
SELECT column_name FROM table_name
ORDER BY column_name ASC
WHERE ROWNUM <=1;
因为我这只有mysql数据库,所以就用mysql做例子:
排序某字段并取第一行记录值
LAST() 函数
作用:返回指定的字段中最后一个记录的值。
语法:SELECT LAST(列) FROM 表
这个没啥好说的了。照着上面第三个来,order by反过来就ok了!我也不多说了,毕竟mysql,sqlserver都不直接支持。
MAX() 函数
作用:返回一列中的最大值。NULL 值不包括在计算中
语法:SELECT MAX(列) FROM 表
最大年龄
MIN() 函数
作用:返回一列中的最小值。NULL 值不包括在计算中
语法:SELECT MIN(列) FROM 表
age最小值
SUM() 函数
作用:返回数值列的总数(总额)
语法:SELECT SUM(列) FROM 表
表中年龄总和
GROUP BY 语句
作用:用于结合合计函数,根据一个或多个列对结果集进行分组。GROUP BY 语句常常与合计函数联合使用。
语法:SELECT 分组列,合计函数(合计列) FROM 表 (如果有条件还可以加where语句) GROUP BY 分组列
其实我觉得这个比较复杂,也不是一个例子两个例子就能完全了解的,甚至我用的也没多少熟练,简单的写几种情况:
因为这个要结合业务,我这里就拿已有的例子简单的写几个情景:
每个司机的跑单总数
订单状态为0是已完成,所以想查找每个司机已完成的订单数要加个条件,状态为0。
每个司机已完成的订单总数
这个和上面的类似,已完成的订单才确定钱数。
每个司机跑单应得钱数
规定已完成一周的订单才可以提现,现在求每个司机可提现钱数(execute不为0证明已经提现过,所以不算在内):
这里确定订单是否已完成一周我用了最笨的一种方法,就是当时的创建时间加上七天是否小于当前实现,不小于则说明不够七天,反之同理。
每个司机可提现钱数
计算每个司机每天单数统计:这里是按照司机和日期两个字段分组的。实际业务中还容易出现一种需求,那就是如果某天没有数据要补0,保证日期的连续性。但是我目前的知识储备只能做一张日历表关联,比较麻烦,所以这里就不写了。如果大佬们有更好的办法麻烦告知哈,谢谢了。
每个司机每天单数
HAVING 子句
作用:在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
语法:SELECT 分组列,合计函数(合计列) FROM 表 (如果有条件还可以加where语句) GROUP BY 分组列 HAVING 合计函数(合计列)条件
挣钱超过一万五的司机
UCASE() 函数
作用:把字段的值转换为大写。
语法:SELECT UCASE(列) FROM 表
image.png
LCASE() 函数
作用:把字段的值转换为小写。
语法:SELECT LCASE(列) FROM 表
用法和上面的大写是一样的,我也不写demo了。
MID() 函数
作用:用于从文本字段中提取字符。
语法:SELECT MID(列,起始下标(从1开始),截取长度(不填默认到结束)) FROM 表
这个我理解为就是一个字符串截取。第一个参数是要截取的列,第二个参数从哪里开始截取(注意的是从1开始,不同于常用的从0开始),第三个参数可写可不写,不写默认是截取到结尾。
从第二个到结尾
截取1-3
LEN() 函数
作用:返回文本字段中值的长度。注意!!!!!坑又来了,mysql中这个函数写法不同,mysql中是LENGTH();
语法:SELECT LENGTH(列) FROM 表
司机名字的长度
ROUND() 函数
作用:用于把数值字段舍入为指定的小数位数。
语法:SELECT ROUND(字段,小数位数) FROM 表
因为我数据库真的没有小数能做例子,所以这里看不出效果,但是语句运行正常就说明还是有用的。
image.png
NOW() 函数
作用:返回当前的日期和时间。
语法:这个就是一个函数,我在上文都用到过,就不多说了。
image.png
FORMAT() 、DATE_FORMAT()
作用:用于对字段的显示进行格式化。
format()函数:将数据内容格式化的,可以将数据格式化为整数或者带几位小数的浮点数(四舍五入)。
DATE_FORMAT() 函数:用于以不同的格式显示日期/时间数据。
语法:DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
时间格式的写法
对,我说的莫名其妙就是因为这个格式,真的可能是我接触的少,所以很受不了。接下来是两种用法的例子:
两种格式化的用法
mysql必会语法_sql语法:sql必读必会(二)mysql中的函数大全相关推荐
- mysql数据库标识符大小写_SQL语法区分大小写吗?
我的理解是SQL标准要求不区分大小写. 但我不相信任何数据库完全符合标准. 对于区分大小写或不敏感的表名,MySQL有一个配置设置作为其"严格模式"(一些使MySQL更符合标准的设 ...
- MySQL学习笔记——第2章 SQL的基本概念和MySQL简介
文章目录 2.1 SQL的基本概念 2.2 MySQL简介 2.3 MySQL数据库管理 2.1 SQL的基本概念 SQL(Structured Query Language):结构化查询语言 数据查 ...
- mysql 优化器算法_SQL 查询优化器底层原理解析【MySQL 篇】
前言 SQL 执行流程中有一个模块叫做查询优化器,这个模块的功能主要是对 SQL 语法树进行逻辑优化和物理优化,最终生成执行计划交给执行引擎执行 SQL. 查询优化器主要分为两部分:一部分是逻辑优化, ...
- php mysql 注入漏洞_PHP安全:SQL注入漏洞防护
原标题:PHP安全:SQL注入漏洞防护 SQL注入是最危险的漏洞之一,但也是最好防护的漏洞之一.本文介绍在PHP的编码中合理地使用MySQL提供的预编译进行SQL注入防护,在PHP中使用PHP数据对象 ...
- sql和mysql语法_SQL 与MySQL-基本语法介绍
MySQL-基本语法介绍 简单说:msyql 就是一个仓库, sql就是如何从仓库取(查询.更改)东西,它们是一个组合,在一起亲密合作,缺一不合: MySQL 基本语法介绍 1. 什么是SQL SQL ...
- sql not in 用法_SQL 语法速成手册
Cat哥领读: 整理非常全面,原谅我书读得少,只能用一句卧槽来赞美了! 作者:静默虚空 原文:https://juejin.im/post/5c7e524af265da2d914db18f 本文针对关 ...
- mysql版本不同会导致语法错误码_神奇的 SQL,Group By 真扎心,原来是这样!
作者:青石路 原文:cnblogs.com/youzhibing/p/11516154.html GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 S ...
- sql between的用法的意思_SQL 宝典——SQL 语法速成手册
没有谁的生活会一直完美,但无论什么时候,都要看着前方,满怀希望就会所向披靡.--<撒野> 本文针对关系型数据库的一般语法.限于篇幅,本文侧重说明用法,不会展开讲解特性.原理. 一.基本概念 ...
- 【JavaDebug(二)】之Mysql语法异常java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; chec
本文章由公号[开发小鸽]发布!欢迎关注!!! 老规矩–妹妹镇楼: 一. 异常 (一)异常描述 java.sql.SQLSyntaxErrorException: You have an error i ...
最新文章
- Nginx的继续深入(日志轮询切割,重写,负载均衡等)
- 取出list中属性_你是否用过List<T>和List<?>?
- 一看就明白的爬虫入门讲解-基础理论篇(下篇)
- Python Django 前后端数据交互 之 HttpRequest、HttpResponse、render、redirect
- 苹果cms资源站360影视
- ManualResetEvent详解
- 最简单的基于FFmpeg的移动端例子:Android 视频解码器-单个库版
- 低危漏洞- X-Frame-Options Header未配置
- html没有prefix属性,HTML前缀属性(Open Graph Protocol)的含义?
- python:批量修改文件夹下所有图片名字,改为文件夹名字的一部分+.jpg
- 基于docker的Mongodb部署文档 文件映射方式
- Android测试驱动开发实践2
- win7家庭版计算机桌面,Win7 home basic家庭普通版显示桌面图标的方法
- 内存超频软件哪个好 内存超频教程
- js解压gzip(解决RangeError: Maximum call stack size exceeded)
- 会员管理系统html,会员管理系统网页版
- SVM支持向量机原理(一) 线性支持向量机
- 三年经验前端开发面试总结
- 使用bat批量删除修改子目录文件名后缀,超简单
- linux中设置ssh登录时显示的banner
热门文章
- 模拟退火法-TSP问题
- ncurses初始化函数:raw(),cbreak(),echo(),noecho(),keypad(),halfdelay()
- Python生态概览(一):数据分析库、数据可视化库、文本处理库、机器学习库、深度学习库
- Centos中iptables和firewall防火墙
- python映射的主要特点_30 个 Python 语言的特点技巧
- mfc formview中的关闭视图函数_VC|API消息处理(回调函数+分支语句)与MFC中的消息映射函数...
- js文件位置--为甚有些js必须放在尾部
- 微服务权限控制(二)共享Session方式的登录认证
- java test20006_java 数组 (数组个数小于2000)
- 在mysql支持关系模型中_MySQL支持关系模型中、和三种不同的完整性约束