数据库学习(4.1常见函数)

本文深入讲解SQL中的常用函数,包括字符函数、数学函数、日期函数等,以及它们的语法和应用场景,帮助读者提升SQL技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进阶四:常见函数

概念:类似一Java中的函数,将一组逻辑语句包装在方法中,对外暴露方法名.
好处:1,隐藏了实现细节 2,提高了代码的复用性
调用;select 函数名(实参列表) [from 表];
特点:
1)叫什么(函数名)
2)干什么(函数功能)
分类:
1)单行函数如:concat,length,ifnull…
2)分组函数
功能:做统计使用,又称为统计函数,聚合函数,组函数

一,单行函数(字符函数,数学函数,日期函数,流程控制函数,其他函数)

1)字符函数
a)length:显示字段的长度
语法:select length(‘john’);
注意:此函数显示字段的长度的时候,与字符集有关;可以用:show variables like ‘%char%’ 来获取字符集类型
补充:utf8:中文三个字节,英文一个字节.gbk:中文两个字节,英文一个字节.

2)concat:拼接字符串
语法:select concat (字段一,‘其他’,字段二);
注意:别名要放在concat的外面.

3)upper,lower:大小写的转换
语法:select upper/lower (‘需要转换的字段’);

4)substr,substring:分割字符串
语法:a)select substring (‘字段’,a) out_put;其中a代表所要截取的位置,输出a后面所有的字符.
b):select substr(‘字段’,a,b) out_put;其中 a代表起始位置,b代表从a开始往后的截取个数.

  1. instr:返回子串第一次出现的索引,如果找不到则返回0.
    语法:select instr (‘字段’,‘子字段’) ;

6)trim:去掉首位的空格,或者去掉首尾指定的字符
a)去掉首尾空格语法: select trim(’ 和 ');
b)去掉首尾相同的字符(‘a’ from ‘aaaaaaaaaaaaa张三aaaaaaaaaaaaaaa’😉

7)lpad/rpad:用指定的字符实现左/右填充指定长度
语法:select lpad (‘张三’,10,’’),指定十个字符,左边不够的用填充.(右边也是一样的)
注意:如果字符数不够,则原字段被截断,lpad就从左边截断,rpad就从右边截断.

8)replace:替换指定的字段
语法:select replace(‘原始字段’,‘替换前选中的字段’,‘替换成的字段’);

二:数学函数:
1)round:四舍五入
语法:a)select round(1.65);
b)重载:b)select round(a,b),a为原始数据,b为需要保留的小数点位数.

2)ceil:向上取整(返回大于等于该数值的最小整数)
语法:select ceil();
floor 向下取整(返回小于等于该数的最大整数)

3)truncate:截断小数
语法:select truncate(1.2555,2);#截取小数点后两位.

4)mod:取模
语法:select mod(10,3);#10/3的余数和百分号一样
注意:如果有负数,则结果与被除数一致.

三:时间函数
1)now:返回当前时间.
语法:select now();

2)curdate:返回当前日期,不包含时间.
语法:select curdate();

3)curtime:返回当前时间,不含日期.
语法:select curtime();

4)获取系统时间的指定部分
语法:select year/month (传入一个时间).
ps;若使用monthname则返回一个英文月份

5)str_to_date:将日期格式的字符串转换成指定格式的日期.
语法:select str_to_date(‘9-13-1999’,’%m-%d-%y’) ; 1999-09-13.

6)date_format:将日期转换成字符
date_format(‘2018/6/6’,’%y年%ym月%d日’) 2018年06月06日
参考表:%Y:四位的年份
%y:两位的年份
%m:月份(01,02,03…)
%c:月份(1,2,3…)
%d:日(01,02,…)
%H:小时(24小时制)
%h:小时(12小时制)
%i:分钟(00,01…59)
%s:(秒00,01,…59)

四:其他函数(系统的函数)
1)select version();当前MySQL的版本号

2)select database();查看当前数据库

3)select user();查看当前用户.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我只会javase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值