数据库相关函数

数据库相关函数

1)单行函数
a. 字符函数
b. 日期函数
c. 数学函数

2)多行函数:聚合函数;统计函数;
a. 求和
b. 求最大
c. 求最小
d. 求平均
e. 求总记录数

字符函数

1)语法:select 函数名(列名) from 表名
2)函数是可以嵌套
3)常用字符函数
a. Concat(s1, s2, s3...):连接字符串
b. Lower(s):将字符变成小写
c. Upper(s):将字符变成大写
d. Ltrim(s):去除字符左侧的空格
e. Rtrim(s):去除字符右侧的空格
f. Trim(s):去除字符左右两侧的空格
g. Substring(s, x, y):返回字符串s的子串,从x开始返回y个字符
h.Insert(s, x, y, from):将字符串x位置开始的y个字符替换成from
i.Length(s):返回s的长度
j.Replace(s, from, target):将字符串中包from的字符替换target

SELECT s_no, CONCAT(s_name,'-',s_sex) s_name, s_age FROM student;

SELECT LOWER('HelloWorld'), UPPER('helloWorld');

SELECT LENGTH(LTRIM('HelloWorld     ')), 
LENGTH(RTRIM('HelloWorld     ')),
LENGTH(TRIM('HelloWorld     '));

SELECT SUBSTRING('HelloWorld', 2), SUBSTRING('HelloWorld', 2, 2);

SELECT INSERT('13880255889', 4, 5, '*****');

SELECT REPLACE('你不好, 我讨厌你', '我', '*');

日期函数

– now() 返回当前日期时间

SELECT NOW()

– curdate() 返回当前日期,不包含时间

SELECT CURDATE()

– curtime() 返回当前时间

SELECT CURTIME(), CURDATE(), NOW();

– week(date) 返回日期为一年中第几周

SELECT WEEK(NOW())

– year(date) 返回日期中年
– month(date) 返回日期中月
– day(date) 返回日期中天(一月的第几天)

SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW());

– date_format(date, pattern) 格式化日期
– %y:表示两位数字的年份
– %Y:表示四位数字的年份
– %m:表示两位数字的月份
– %M:用英文来表示月份的名字
– %d:表示两位数字的天数
– %H:表示24小时制的小时
– %i:表示两位数字的分钟数
– %s:表示两位数字的秒数

SELECT DATE_FORMAT(NOW(), '%Y')
SELECT DATE_FORMAT(NOW(), '%M')
SELECT DATE_FORMAT(NOW(), '%d/%m/%y')

– datediff(d1, d2):返回d1与d2相差的天数(d1 - d2)

SELECT DATEDIFF(NOW(), '2019-12-13 23:23:59')

– date_add(d, interval y type):给日期加上指定类型的y值
– Type参数:
YEAR:表示年
MONTH:表示月
DAY:表示日
HOUR:表示小时
MINUTE:表示分钟
SECOND:表示秒

SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH)
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR)
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY)
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR)

数学函数

数学函数是十分重要的,因为当时我有位师兄他接了一个私活,大约三个月做完,要价3w左右,当时的数据库里面就有大量的数学函数要使用。
– ceil(n) 向上取整, 返回大于n的最大的整数
– floor(n) 向下取整,返回小于n的最大的整数
– rand() 返回 0 到 1的随机函数
– round(n, y) 将n四舍五入保留y位小数
– truncate(n, y) 将n保留y位小数

SELECT CEIL(1.53), FLOOR(1.53), RAND(), ROUND(1.53, 0), TRUNCATE(1.53, 0)

聚合函数 (统计函数)

– sum(列名):求和
– count(列名):求总记录数(求表里面有多少行)
– max(列名):求最大
– min(列名):求最小
– avg(列名):求平均值

SELECT AVG(s_age), MAX(s_age), MIN(s_age), SUM(s_age), COUNT(s_no) FROM student;

Group by 分组

– 语法:select * from 表名 where 条件 group by 列名
– 什么叫作分组:将指定列里面的相同数据分在一起

SELECT s_age FROM student GROUP BY s_age; – 将相同数据合并
SELECT DISTINCT s_age FROM student; – 去除重复数据 采用distinct

– 分组应用一般会和聚合函数一起使用(经典用法)

– 案例:查看每个年龄的学生的个数

SELECT COUNT(s_age), s_age FROM student GROUP BY s_age;

插图1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值