当前位置: 首页 > news >正文

sql三种类型常用函数

云计算运维第6天

1.三种类型的sql内嵌函数

1.1 数值函数

1.1.1 min()

最小函数,用于查某一列的最小值

select min(age) from user_profile where university='北京大学';

查找北京大学的年纪最小学生

1.1.2max()

最大函数,用于查某一列的最大值

select max(age) from user_profile where university='北京大学';

查找北京大学的年纪最大学生

1.1.3 round()

保留几位小数,去除小数是采用四舍五入。格式:round(数据值,保留n位小数)

select round(1.666,2);

1.1.4 format()

对数字进行格式化,保留显示几位小数,格式:format(数值,n位小数)

select format(1.66,3);-- 输出1.660

1.1.5 floor()

向下取整数,格式:floor(数值);

无论什么值,都输出小于这个数的最大整数,也就是把小数部分丢弃。

如5.3向下取整为5

1.1.6 ceil()

向上取整数,格式:floor(数值);

无论什么值,都输出小于这个数的最大整数,也就是把小数部分丢弃。

如5.3向上取整为6

1.1.7 mod()

取余,格式为mod(10,3),第一个数为被取余数,第二个为除数,输出结果为余数。

相当于10%3=1;

1.1.8 pow()

指数函数,pow(2,3),相当于2的3次方,为8,第一个数为底数,第二个数为指数。

1.1.9 rand()

rand为随机函数,他会生成0-1直接的随机小数,每一次刷新都不相同。这个可以用于验证码,

通常用cast(rand() as decimal(10,6))*pow(10,6);

1.1.10 cast()

决定保留几位小数,用法为cast(数值 as 类型);

1.2 字符串函数

1.2.1 lower把大写字母变成小写

select lower('Hello World!'); -- 输出结果hello world!

1.2.2 upper把大写字母变成小写

select upper('Hello World!'); -- 输出结果HELLO WORLD!

1.2.3 reverse反转函数

select reverse('123456'); -- 反转 '654321' ,一般用于判断回文。

1.2.4 repeat重复输出

select repeat('abc', 3); -- 重复 'abcabcabc' 输出重复的信息,3为次数。

格式:repeat(输出内容,输出次数)

1.2.5 concat拼接函数

select concat('Hello', ' ', 'SQL'); -- 拼接 'Hello SQL'

select concat_ws('-', '2025', '08'); -- 拼接 带分隔符拼接,'2025-08'

1.2.6 replace 替换函数

select replace('abcabc', 'a', 'X'); -- 替换a为x 结果为:'XbcXbc'

1.2.7 substr函数

substr函数的用法:substr(str字段名, pos从1开始, len截取长度)

从n位置开始取长度m个字符,下标从1开始计算

select substr('MySQL函数学习',n, m); -- 截取出 SQL

1.2.8 left函数

从左边位置取长度3个字符,是从头开始取

select left('MySQL函数学习', 3); -- 截取出 MyS

1.2.9 right函数

从右边位置取长度2个字符,是从尾开始取

select right('MySQL函数学习', 3); -- 截取出 数学习

1.2.10 字符数char_length

select char_length('数据库'); -- 统计字符长度 3

1.2.11 字节数length

select length('数据库'); -- 字节长度9 UTF-8每汉字3字节

1.3 时间函数

1.3.1时间函数类型

可以说是分为四大类(除去年,月,日,时,分,秒六种类型)

分别为date 3字节 日期,time 3字节 时间,timestamp 4字节 时间戳,datetime 8字节 日期时间

1.3.2 获得目前时间函数

#返回当前 日期和时间

select now(); -- 2025-08-24 15:30:15

select current_timestamp();

#返回当前 日期

select current_date(); -- 2025-08-24

# 返回当前 时间

select current_time(); -- 15:30:15

1.3.3 时间加减函数

#date_add(date, interval expr unit) expr数字 unit时间

-- 正数为之后,负数为之前

select date_add('2025-08-24', interval 3 day); -- 2025-08-27

select date_add('2025-08-24', interval 3 hour); -- 2025-08-24 03:00:00

没有时间默认为00:00:00:

-- 获取三天前的时间

select date_add(now(), interval -3 day);

1.3.4 计算时间差

格式:datediff(date1, date2)

select datediff('2025-01-01','2026-01-01'); -- -365天,前面-后面时间,-为前小,+为前大

1.3.5 提取时间

select year('2025-08-24 15:20:00');-- 年

select month('2025-08-24 15:20:00');-- 月

select day('2025-08-24 15:20:00');-- 天

select hour('2025-08-24 15:20:00');-- 小时

select minute('2025-08-24 15:20:00');-- 分

select second('2025-08-24 15:20:01');-- 秒

select weekday('2025-12-19');-- 星期几

select quarter(now());-- 第几季度

select weekofyear(now());-- 第几周(全年)

1.3.6 时间格式转化

-- 字符串类型 转时间类型 才可以用时间运算 + interval 1 day

select str-to-date('2025-08-24 12:30:00', '%Y-%m-%d %H:%i:%s');

时间格式:%Y-%m-%d %H:%i:%s

%Y:4 位完整年份,%y:2 位简写年份,

%m:两位数字月份(01-12),%M:英文完整月份

%d:两位日期,带前导零(01-31),%D:带后缀英文日期例:9th

时间部分(时分秒)

%H:24 小时制,两位(00-23),%h:12 小时制,两位(01-12)

%i:分钟,固定小写(00-59), I 不代表分钟,代表12小时制,带前导零,范围 01-12

%s:秒,固定小写(00-59),大写 S和小写s等价

-- 时间转时间戳

select unix_timestamp('2025-08-24 12:30:00'); -- 1756029000s

时间戳本质是一串数字,在sql当中,是按照秒为单位的。这一串数字是从unix诞生的时候开始到目标时间之间相隔多少秒,时间戳时间范围从1970-01-01 08:00:00开始到2038年结束。有些语言时间戳可能不是按照s来计算的。

-- 时间戳转时间

select from_unixtime(1756029000, '%Y-%m-%d %H:%i:%s');

2.mysql的日志分类以及配置文件书写

2.1 mysql日志分类

1 通用日志 记录服务常规启动运行的日志,查询服务器日常状态

2 二进制日志 记录服务器所有的变更(DDL,DML,DCL)的记录。(备份还原)

3 查询日志 记录DQL

4 中继日志 集群服务器中,从服务器拷贝主服务器日志的载体。

2.2 配置文件书写

新建立一个ini为文件后缀的mysql配置文件(通用日志),写下如下代码,会生成一个general.log日志文件,路径在D:\\mysql-8.4.8-winx64。

[mysqld]

# 记当mysql的sql日志

general_log=on

# 日志地址

general_log_file=D:\\mysql-8.4.8-winx64\\general.log

此日志会记录数据库会记录客户端执行的所有SQL语(SELECT/INSERT/UPDATE/DELETE、连接、断开全部记录)

http://www.jsqmd.com/news/1181316/

相关文章:

  • 2026大模型零基础到精通完整学习路线:避开误区,高效进阶
  • Carbon Components React数据可视化:图表、仪表盘和数据表格的高级应用
  • Windows系统内存终极清理指南:Mem Reduct 3.5.2完整使用教程
  • 【工具解析】PyProcar:从PROCAR文件到物理洞察的DFT数据可视化桥梁
  • LangChain开发效率翻倍的5个隐藏技巧(90%开发者从未用过的Runtime优化法)
  • 2026上海黄金回收正规门店盘点|实地考察核心商圈线下点位大全 - 奢品小当家
  • ragas官方文档中文版(六十五)
  • eBPF 网络观测进阶:XDP 与 TC 实现高性能流量分析
  • Ino依赖管理终极指南:如何自动处理Arduino库和头文件依赖
  • AI绘图实战:蜡笔风个人主页海报提示词拆解
  • AMD Ryzen AI开发者必看:Llama-3.2-3B模型NPU部署最佳实践
  • 【Unity】十万人同屏寻路?从传统RVO到DOTS Jobs的性能跃迁之路
  • 基于51单片机射频RFID卡签到考勤计数统计系统设计/DIYDIY-D103
  • 如何用Firecrawl在5分钟内构建专业网页数据提取系统
  • Mistral-7B-v0.3_rai_1.7.1_npu_4K配置全解析:genai_config.json参数调优指南
  • UE4SS Lua脚本实战:安全查找与修改Actor缩放与位置的完整指南
  • 物联大师:重新定义工业物联网的轻量级革命之路
  • 如何为Spatie URL包贡献代码:开发者指南
  • 华为OD机试真题 新系统 2026-07-05 JavaGoC 实现【二叉树两节点间的最小跳数】
  • 盘活闲置奢品!2026 重庆全域正规回收机构七强实力榜单 - 奢侈品回收中心
  • Canvas 爱心粒子动画:从物理模型到对象池实现
  • 适配器模式:实现结构转换的利器
  • 梳理!数字信号处理中系统、频响与收敛域的关联与设计
  • 小白程序员必看:大模型如何颠覆财务工作?8大AI Agent场景全解析
  • 7个必须掌握的Blender UV编辑技巧:TexTools插件完全指南
  • 2026 无锡翡翠回收零套路:易奢福无鉴定费,报价即到手价 - 奢侈品回收实体店
  • 终极WeMod增强指南:5分钟免费解锁Pro高级功能的完整教程
  • 高精度信号采集:ADS8665与PIC32MZ的工业应用方案
  • 2026 重庆黄金首饰回收放心白名单:全域实地亲测、7 家全程透明合规门店 - 奢侈品回收中心
  • LLM对齐新突破:博弈论框架与乐观在线镜像下降算法