mysql内置函数使用

说明

mysql是我们日常软件开发最常用最简单的数据库,mybatis是dao层开发的主流框架,
掌握mysql的常用函数,会给我们日常书写sql带来很大便捷性。

1.聚合函数

函数作用
count(col)统计查询结果的行数
min(col)查询指定列的最小值
max(col)查询指定列的最大值
sum(col)求和,返回指定列的总和
avg(col)求平均值,返回指定列数据的平均值

2.字符串函数

函数作用
concat(s1,s2…,sn)合并字符串,concat(‘hello’,’ world!’) 返回 hello world!
LOWER(str)字母转换小写
UPPER(str)字母转换大写
TRIM(str)去除字符串左右两边的空格
REPLACE(str, a, b)使用字符串 b 替换字符串 str 中所有的字符串 a
SUBSTRING(s, n, l)从字符串s中从位置n开始,截取一个长度同为 l 的子字符串
REVERSE(str)字符串反转
LENGTH(s)计算字符串长度函数

应用:
在这里插入图片描述

3.流程控制函数

函数作用
IF(expr, expr2, expr3)用法类似 java 的三目表达式,IF(expr1,expr2,expr3),expr1的值为true,返回expr2的值,否则返回expr3
IFNULL(expr1, expr2)如果expr1不为空,返回expr1,否则返回expr2
NULLIF(expr1, expr2)如果expr1=expr2返回NULL,否则返回expr1

在这里插入图片描述

4.日期和时间函数

函数作用
date_sub()获取当前时间的前一天select date_sub(curdate(),interval 1 day)
curdate()返回当前日期
curtime()返回当前时间
now()返回当前的日期和时间
UNIX_TIMESTAMP(date)返回日期的UNIX时间戳,与FROM_UNIXTIME为反函数
FROM_UNIXTIME()返回UNIX时间戳的日期值
WEEK(date)返回日期date为一年中的第几周,返回值的范围是否为 0-52 或 1-53
MONTH(date)返回date得月份,返回值的范围是否为 1-12
YEAR(date)返回日期date的年份,返回值范围是 1970-2069
HOUR(time)返回time的小时值
MINUTE(time)返回time的分钟值
DATE_FORMAT(date,fmt)格式化指定的日期,根据参数返回指定格式的值
DAYOFYEAR(date)返回date为一年中的第几天,返回值范围是1-366
DAYOFMONTH(date)返回date为一个月中的第几天,返回值范围是1-31
WEEKDAY(date)返回date为一周内的对应的工作日索引,返回值范围是1-7

5.四舍五入函数

函数作用
ROUND(x,y)四舍五入保留y位小数,y默认为0, 可以为负数, 如round(19, -1)返回20
TRUNCATE(x,y)截断至保留y位小数,y可以为负数, 如trancate(19,-1)返回10

示例:

  • ROUND(x,y)
SELECT 
    ROUND(5.45),
    ROUND(-5.5),
    ROUND(124.65, -1),
    ROUND(277.8, -2)

┌─ROUND(5.45)─┬─ROUND(-5.5)─┬─ROUND(124.65, -1)─┬─ROUND(277.8, -2)─┐
│           5-6120300 │
└─────────────┴─────────────┴───────────────────┴──────────────────┘

  • TRUNCATE(x,y)
SELECT 
    TRUNCATE(5.468, 2),
    TRUNCATE(66.56, 1),
    TRUNCATE(2.36, 0),
    TRUNCATE(16.78, -1)

┌─TRUNCATE(5.468, 2)─┬─TRUNCATE(66.56, 1)─┬─TRUNCATE(2.36, 0)─┬─TRUNCATE(16.78, -1)─┐
│               5.4666.5210 │
└────────────────────┴────────────────────┴───────────────────┴─────────────────────┘

6. using()函数的用法

  1. 在mysql中的使用using,主要用于两个表中有着相同字段查询操作,与join on中的on操作有着相同功能。
  2. 以下两个功能结果一样:
select a.title,u.user_name from article as a
join user as u
on a.user_id=u.user_id

在这里插入图片描述

select a.title,u.user_name from article as a
join user as u
using(user_id)

在这里插入图片描述

7. select from where group by having order by limit语句执行顺序

  • sql的查询语句主要有select from where group by having order by limit这七个,
    执行sql的时候select和from是必选的,其他是可选。

  • 在书写sql语句的时候,他们的顺序依次为:
    select -> from -> where -> group by -> having -> order by -> limit

  • 而在执行sql语句的时候,他们的顺序依次为:
    from -> where -> group by -> having -> select -> order by -> limit

语句含义

语句作用
from从那个表读取数据
where筛选数据的条件
group by对筛选后的数据进行分组
having对分组后的数据进行筛选的条件
select查询结果集的字段或字段的计算结果
order by按字段排序
limit指定返回n行数据,用于分页

8. mysql的插入函数

  1. insert ignore into :
    当插入数据时,数据库不会检查主键(primary key)或者唯一主键(unique key),如出现重复数据,也不返回错误,可继续往下执行。

  2. insert into :
    当插入数据时,数据库会检查主键(primary key)或者唯一主键(unique key),如果出现重复会报错,无法插入。

  3. replace into :
    如果存在主键(primary key)或者唯一主键(unique key)相同的记录,则先删除掉再插入新记录。

  4. insert into … on duplicate key update …
    当我们插入一行新记录时,记录不存在就插入。如果你插入的记录导致一个唯一索引或者primary key(主键)出现重复,那么就会认为该条记录存在,则执行update语句而不是insert语句,反之,则执行insert语句而不是更新语句。

9. mysql的删除函数

  1. drop:
    直接删除表结构和数据,并且清空表占用的储存空间,语法:drop table tablename if exists
  2. truncate:
    删除表中的数据,再插入数据时自增长的数据id又重新从1开始,语法:truncate table tablename
  3. delete
    删除表中数据,可以在后面添加where字句,与truncate相比,delete相当于是筛选后的truncate,语法:delete from tablename where …

10. mysql操作数据表

  1. 修改数据表名字:
# 格式 rename table ‘旧表名’ to ‘新表名’

rename table `mysql_table_1` to `mysql_table_2`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

高并发

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

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

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

打赏作者

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

抵扣说明:

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

余额充值