MySQL(十一):MySQL语法-函数

这篇具有很好参考价值的文章主要介绍了MySQL(十一):MySQL语法-函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原始数据

select * from employees where emp_no = '10002';
select * from salaries where emp_no = '10002';
+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|  10002 | 1964-06-02 | Bezalel    | Simmel    | F      | 1985-11-21 |
+--------+------------+------------+-----------+--------+------------+
1 row in set (0.00 sec)

+--------+--------+------------+------------+
| emp_no | salary | from_date  | to_date    |
+--------+--------+------------+------------+
|  10002 |  65828 | 1996-08-03 | 1997-08-03 |
|  10002 |  65909 | 1997-08-03 | 1998-08-03 |
|  10002 |  67534 | 1998-08-03 | 1999-08-03 |
|  10002 |  69366 | 1999-08-03 | 2000-08-02 |
|  10002 |  71963 | 2000-08-02 | 2001-08-02 |
|  10002 |  72527 | 2001-08-02 | 9999-01-01 |
+--------+--------+------------+------------+
6 rows in set (0.00 sec)

函数

MySQL(十一):MySQL语法-函数,数据库,mysql,数据库

select
    now()                                              as '查询时间',

    a.emp_no                                           as '员工编号',

    concat(b.last_name, ' ', b.first_name)             as '姓名',
    concat_ws(':', b.last_name, b.first_name)          as '姓名(字符串拼接)',

    replace(b.last_name, 'Simmel', 'Simmel-齐美尔')     as '姓(替换)',
    ucase(b.last_name)                                 as '姓(大写)',
    upper(b.last_name)                                 as '姓(大写)',
    mid(b.last_name, 1, 1)                             as '姓(首字母-从索引1开始计数)',

    replace(b.first_name, 'Bezalel', '贝扎雷-Bezalel')  as '名(替换)',
    lcase(b.first_name)                                as '名(小写)',
    lower(b.first_name)                                as '名(小写)',
    length(b.first_name)                               as '名(长度)',
    field('Bezalel', b.last_name, b.first_name)        as 'Bezalel(名的索引)',

    trim('     做个人吧     ')                          as '去除前后空格',

    b.gender                                           as '性别',

    repeat(b.gender, 10)                               as '复制10分性别',

    if(b.gender = 'F', '女', '男')                      as '性别(三元运算)',

    case
        when b.gender = 'F' then '女'
        when b.gender = 'M' then '男'
        else '变态' end
                                                       as '性别(三元运算)',

    isnull(b.gender)                                   as '是否为变态(isnull)',
    isnull(null)                                       as '是否为null(isnull)',

    ifnull(b.gender, '变态')                            as '是否为变态(ifnull)',
    ifnull(null, 'null')                               as '是否为null(ifnull)',

    coalesce(b.gender, '变态')                          as '是否为变态(coalesce)',
    coalesce(null, 'null')                             as '是否为null(coalesce)',

    b.birth_date                                       as '出生日期',
    b.hire_date                                        as '雇佣日期',

    left(b.birth_date, 4)                              as '年(从左侧截取4个字符)',
    substring(b.birth_date, 6, 2)                      as '月(从左侧6处开始截取2个字符)',
    substr(b.birth_date, 6, 2)                         as '月(从左侧6处开始截取2个字符)',
    right(b.birth_date, 2)                             as '日(从右侧截取2个字符)',

    substring_index('www.baidu.com', '.', -2)          as '以.分割字符串逆向截取两个元素',
    locate('.', 'baidu.com.cn')                        as '.第一次出现的位置',

    group_concat(a.salary separator ';')               as '薪资',
    count(a.salary)                                    as '数量',

    avg(a.salary)                                      as '平均值',
    round(avg(a.salary))                               as '四舍五入(平均值)',
    format(avg(a.salary), 0)                           as '平均值(格式化)',
    format(avg(a.salary), 10)                          as '平均值(格式化)',
    sum(a.salary)                                      as '总和',
    max(a.salary)                                      as '最大值',
    min(a.salary)                                      as '最小值',

    sqrt(sum(a.salary))                                as '总和平方根',

    rand() * 100                                       as '随机数(0到1 * 100)',

    floor(1.2345)                                      as '返回不大于参数的最大整数',
    floor(-1.2345)                                     as '返回不大于参数的最大整数',

    ceiling(1.2345)                                    as '返回不小于参数的最小整数',
    ceiling(-1.2345)                                   as '返回不小于参数的最小整数',

    abs(-2)                                            as '绝对值',

    5 div 2                                            as '5/2',

    mod(3, 2)                                          as '3%2',
    mod(2, 3)                                          as '2%3',

    pow(2, 3)                                          as '2^3',
    power(2, 3)                                        as '2^3',

    pi()                                               as '圆周率',

    cos(pi())                                          as 'cos(余弦)',
    sin(pi())                                          as 'sin(正弦)',
    tan(pi())                                          as 'tan(正切)',

    acos(1)                                            as 'acos(反余弦)',
    asin(1)                                            as 'asin(反正弦)',
    atan(1)                                            as 'atan(反正切)',

    least(2, 1, 4, 0, 1)                               as '返回最小值',
    greatest(2, 1, 4, 0, 1)                            as '返回最大值',

    degrees(pi())                                      as '从弧度转换为角度',
    radians(180)                                       as '从角度转换为弧度',

    truncate(0.123456789, 5)                           as '保留有效数字(不四舍五入)',

    sign(-100)                                         as '参数符号',
    sign(0)                                            as '参数符号',
    sign(100)                                          as '参数符号'
from
    (select * from salaries where emp_no = '10002') as a
inner join
    employees as b
on
    a.emp_no = b.emp_no
group by
    a.emp_no;

日期函数

MySQL(十一):MySQL语法-函数,数据库,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-598224.html

select date_add('2023-01-01', interval 7 day)                              as '增加7天',
       adddate('2023-01-01', interval 7 hour)                              as '增加7小时',
       adddate('2023-01-01', interval 7 minute)                            as '增加7分钟',
       adddate('2023-01-01', interval '07-01' year_month)                  as '增加7年1月',

       date_sub('2023-01-20', interval 7 day)                              as '减去7天',
       subdate('2023-01-20', interval 7 hour)                              as '减去7小时',

       addtime('00:00:00', '01:00:00')                                     as '增加1小时',
       subtime('00:00:00', '07:07:07')                                     as '减去7小时7分7秒',

       convert_tz('2023-01-01 01:01:01', '+8:00', '+10:00')                as '从+8:00时区修改为+9:00时区',

       curdate()                                                           as '返回当前日期',
       current_date()                                                      as '返回当前日期',
       current_date                                                        as '返回当前日期',

       curtime()                                                           as '返回当前时间',
       current_time()                                                      as '返回当前时间',
       current_time                                                        as '返回当前时间',

       now()                                                               as '返回当前日期时间',
       localtime()                                                         as '返回当前日期时间',
       localtime                                                           as '返回当前日期时间',
       localtimestamp()                                                    as '返回当前日期时间',
       localtimestamp                                                      as '返回当前日期时间',
       current_timestamp()                                                 as '返回当前日期时间',
       current_timestamp                                                   as '返回当前日期时间',

       date_format(now(), '%Y(4位年) - %y(2位年)')                         as '年',

       date(now())                                                         as '从 date 或者 datetime 表达式中提取出日期部分',

       datediff('2023-01-01 10:10:10', '1997-02-11 07:01:01')              as '日期相减得出天',

       day('2020-01-31')                                                   as '返回某天是当月的第几天(1-31)',
       dayofmonth('2020-02-31')                                            as '返回某天是当月的第几天(1-31)',

       dayname('2020-01-31')                                               as '返回某天在用星期中的名称',

       dayofweek('2020-01-31')                                             as '返回某天是该星期的第几天',

       dayofyear('2020-02-21')                                             as '返回某天是一年中的第几天(1-366)',

       extract(year_month from now())                                      as '提取日期中的某一部分',

       from_days(366)                                                      as '将天数转换为日期',

       from_unixtime(1580436610)                                           as '将某个 UNIX 时间戳格式化为日期',

       unix_timestamp('2020-01-31 10:10:10')                               as '将某个日期格式化为 UNIX 时间戳',

       last_day('2020-01-10 10:10:10')                                     as '返回参数日期所在月份的最后一天',

       makedate(2023, 100)                                                 as '利用年份和某天在该年所处的天数来创建日期',

       maketime(112, 50, 50)                                               as '根据小时,分钟和秒值创建并返回时间值',

       year(now())                                                         as '由参数返回年',
       month(now())                                                        as '由参数返回月份',
       monthname(now())                                                    as '由参数返回月份名称',
       yearweek(now())                                                     as '由参数返回年周数',
       weekofyear(now())                                                   as '由参数返回周数',
       weekday(now()) + 1                                                  as '返回星期几',
       week(now())                                                         as '由参数返回周数',
       time(now())                                                         as '时间',
       hour(now())                                                         as '由参数返回小时',
       minute(now())                                                       as '由参数返回分钟',
       second(now())                                                       as '由参数返回秒',
       microsecond(now())                                                  as '由参数返回毫秒',

       to_days(now())                                                      as '将日期参数转换为天数',

       utc_date()                                                          as '返回当前 UTC 日期',
       utc_time()                                                          as '返回当前 UTC 时间',
       utc_timestamp()                                                     as '返回当前 UTC 日期和时间',

       quarter(now())                                                      as '返回日期参数所在的季度',

       sec_to_time(100000)                                                 as '将秒数转换为 ''HH:MM:SS'' 格式',


       str_to_date('2020-01-10 10:20:30', '%Y-%m-%d %H:%i:%s')             as '将字符串转换为日期数据',

       sysdate()                                                           as '返回函数执行的时的时刻',

       time_format('20201010 101010', '%Y-%m-%d %H:%i:%s')                 as '格式化时间',

       time_to_sec('10:10:10')                                             as '将时间参数转换为秒数',

       timediff('2020-01-01 10:10:10', '2023-01-01 20:20:20')              as '将两个时间相减返回时分秒',

       period_add(201808, 2)                                               as '参数年月加上参数月',
       period_diff(201808, 201810)                                         as '返回两个年月格式的日期数据之间的月份数',

       timestampadd(day, 3, now())                                         as '3天以后的日期时间',
       timestampdiff(second, '2023-07-21 10:10:10', '2023-07-20 01:01:01') as '两个日期时间相减',

       timestamp('2020-01-01')                                             as '返回参数的日期时间',

       timestamp(now(), '3:00:00')                                        as '返回参数日期时间加上时间';

到了这里,关于MySQL(十一):MySQL语法-函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 1-MySQL数据库的安装和基础语法介绍

    1.MySQL是什么? MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。它是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 关系数据库将数据保存在不同

    2024年02月08日
    浏览(35)
  • 基于Linux操作系统中的MySQL数据库SQL语句(三十一)

    MySQL数据库SQL语句 目录 一、SQL语句类型 1、DDL 2、DML 3、DCL 4、DQL 二、数据库操作 1、查看 2、创建 2.1、默认字符集 2.2、指定字符集 3、进入  4、删除 5、更改 6、练习 三、数据表操作 (一)数据类型 1、数值类型 1.1、TINYINT 1.2、SMALLINT 1.3、INT 1.4、BIGINT 1.5、FLOAT(M,D) 2、时间

    2024年02月15日
    浏览(50)
  • 【JaveWeb教程】(17) MySQL数据库开发之 MySQL简介、安装、数据类型、SQL通用语法 详细代码示例讲解

    在我们讲解SpringBootWeb基础知识(请求响应案例)的时候,我们讲到在web开发中,为了应用程序职责单一,方便维护,我们一般将web应用程序分为三层,即:Controller、Service、Dao 。 之前我们的案例中,是这样子的请求流程:浏览器发起请求,先请求Controller;Controller接收到请求之

    2024年01月25日
    浏览(48)
  • MySQL语句通过腾讯云数据库智能管家的性能与语法优化

    最近公司项目迁移至腾讯云,用的腾讯云MySQL服务器,MySQL负载一直很高,借助云管家优化了一部分SQL语句,提升了部分性能和释放了部分,MySQL内存占用      

    2024年02月15日
    浏览(47)
  • MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)

    目录 介绍 特点 基本语法 创建 调用 查看 删除  示例  存储过程是 事先经过编译 并 存储在数据库 中的一段 SQL 语句的 集合 ,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想

    2024年02月06日
    浏览(46)
  • Oracle、MySQL数据库常规命令语法-简易记录(非常规持续更新)

    前言:呈现的是非常基础必备命令以及常规关联语法,因涉及到不同数据库其表达都会有所区别,此篇纯属做个仓库记录更非常规持续更新,专业人士可忽略,且看且珍惜… MySQL: 关系型数据库、重点开源、支持大型规模、标准SQL数据语言、多平台多架构、高可用集群、可定

    2024年01月25日
    浏览(44)
  • MySQL数据库:内置函数

    规定:日期:年月日       时间:时分秒 函数名称 作用描述 current_date() 当前日期 current_time() 当前时间 current_timestamp() 当前时间戳 date(datetime) 返回datetime参数的日期部分 date_add(date,interval d_value_type) 在date中添加时间或日期。interval后面可以是year、day、minute、second date_sub(da

    2024年02月11日
    浏览(30)
  • 云原生数据仓库AnalyticDB Mysql(ADB分析型数据库)-DML语法之新增插入数据详解

    ADB分析型数据库,是阿里云平台上资源,原名叫云原生数据仓库AnalyticDB Mysql,俗称ADB分析型数据库,那么ADB的语法与mysql关系型数据库语法存在一定的差异。 本文为笔记,介绍ADB的DML语法的应用。 1. INSERT INTO INSERT INTO用于向表中插入数据,主键重复时会自动忽略当前写入数据

    2024年02月15日
    浏览(31)
  • 数据库概述、部署MySQL服务、必备命令 、密码管理、安装图形软件、SELECT语法 、筛选条件

    目录 1 案例1:构建MySQL服务器 1.1 问题 1.2 方案 1.3 步骤 2 案例2:密码管理 2.1 问题 2.2 步骤 3 案例3:安装图形软件 3.1 问题 3.2 方案 3.3 步骤 4 案例4:筛选条件 4.1 问题 4.2 方案 4.3 步骤 1.1 问题 在IP地址192.168.88.50主机和192.168.88.51主机上部署mysql服务 练习必备命令的使用 1.2 方案

    2024年02月19日
    浏览(37)
  • 数据库概述、部署MySQL服务、必备命令、密码管理、安装图形软件、SELECT语法 、筛选条件

    Top 案例1:构建MySQL服务器 案例2:密码管理 案例3:安装图形软件 案例4:筛选条件 1.1 问题 在IP地址192.168.88.50主机和192.168.88.51主机上部署mysql服务 练习必备命令的使用 1.2 方案 准备2台虚拟机,要求如下: 表-1   配置yum源、关闭selinux和防火墙,如果忘记了请自行补习前边课

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包