MySql常用内置函数详解

news2024/11/20 18:31:29

目录

    • 日期函数--了解
    • ***字符串函数--重要
    • 数学函数--了解
    • 其他函数--了解

MySql为我们提供了一些内主函数,方便我们对特定数据进行相关操作! 注意:都是配合select使用哦,个人理解SQL的select相当于C中的printf;

日期函数–了解

在这里插入图片描述

一般用于insert into插入语句的values()中,将某个时间插入对应字段;

  • 获得年月日:
select current_date(); -- current_date()函数,显示的是date类型 datetime

+----------------+
| current_date() |
+----------------+
| 2017-11-19 |
+----------------+
  • 获得时分秒:
select current_time();-- current_time()函数, 只显示时分秒; 

+----------------+
| current_time() |
+----------------+
| 13:51:21 |
+----------------+
  • 获得时间戳:
select current_timestamp();-- current_timestam()函数,显示时间戳 or datetime 类型; 一般用于日志等;  now()函数类似;

+---------------------+
| current_timestamp() |
+---------------------+
| 2017-11-19 13:51:48 |
+---------------------+
  • 在日期的基础上日期:
select date_add('2017-10-28', interval 10 day); -- date_add(date,interval 数字 day/month/second)函数 ,可以给一个date类型进行加法; 注意 interval 后的数字可以使负数,相当于减法了;

+-----------------------------------------+
| date_add('2017-10-28', interval 10 day) |
+-----------------------------------------+
| 2017-11-07 |
+-----------------------------------------+
  • 在日期的基础上日期:
select date_sub('2017-10-1', interval 2 day); -- date_sub(date,interval 数字 day/month/second)函数,可以给一个date类型进行减法

+---------------------------------------+
| date_sub('2017-10-1', interval 2 day) |
+---------------------------------------+
| 2017-09-29 |
+---------------------------------------+
  • 计算两个日期之间相差多少天:
select datediff('2017-10-10', '2016-9-1'); -- datediff(date1,date2)函数,计算 第一个日期 和 第二个日期 相差的天数,类似于第一个日期 - 第二个日期; 注意结果的正负;


+------------------------------------+
| datediff('2017-10-10', '2016-9-1') |
+------------------------------------+
| 404 |
+------------------------------------+

实际案例:

  • 显示所有留言信息,发布日期只显示日期,不用显示时间:
select content,date(sendtime) from msg; -- date(sendtime)函数,取出datetime or 时间戳的 日期部分(省去时:分:秒)!
  • 查询在 2分钟内 发布的帖子
select* from msg where date_add(sendtime, interval 2 minute) > now();  -- date_add(sendtime, interval 2 minute) > now()这个限定条件可以通过分析时间轴计算得出;

***字符串函数–重要

在这里插入图片描述

  • 获取emp表的ename列的字符集:
select charset(ename) from EMP; -- charset(字段)函数,输出utf8(汉字) or binary(int)等;
  • 要求显示student表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”
select concat(name, '的语文是',chinese,'分,数学是',math,'分') as mycat from student; -- concat(s1,s2......)函数,拼接多个字符串类型;
  • 求学生表中学生姓名占用的字节数
select length(name) ,name from student; -- length(string)函数,计算某个字符串占的 字节数 (注意不是个数,一个汉字 ==3 字节,一个字母 == 1字节);

-- 注意select length(12345) 虽然传进去的是int 12345,但是length内部会转成 '12345'处理,所以长度还是5;
  • 将EMP表中所有名字中有 S替换成’上海’
select replace(ename, 'S', '上海') ,ename from EMP; -- replace(字段,s1,s2)函数, 将某字段中s1子串替换成s2子串;
  • 截取EMP表中ename字段的第二个到第三个字符
select substring(ename, 2, 2) ,ename from EMP; -- substring(字段,pos1,num)函数, 将某字段中pos1位置开始,截取num个字符(无num的话默认取完);
  • 首字母小写,剩余字母大写的方式显示所有员工的姓名
select concat(lcase(left(ename,1)),ucase(substring(ename,2))) from EMP; -- lcase(s) 转小写,ucase(s)转大写,concat(s1,s2)字符串拼接,left(s,n)从s最左侧取n个字符,substring(s,pos,n)从s的pos位置取n个字符(默认取完);
  • 去除左侧多余空格
select ltrim()('   abc'); -- ltrim(s)函数;   trim()函数是去除双侧空格
  • 比较字符串大小;
select strcmp('abc','abc'); -- strcmp(s1,s2) 函数,相当于 逐字符 做减法 比较大下,结果==0 相等, 结果>0 s1>s2  , 结果<0 s1<s2

数学函数–了解

在这里插入图片描述

-- 绝对值;
select abs(-100.2); -- 输出 -100;

-- 向上取整
select ceiling(23.04); -- 输出 24

-- 向下取整
select floor(23.7); -- 输出 23

-- 保留2位小数位数(小数四舍五入)
select format(12.3456, 2); -- 输出 12.35

-- 产生0.0~1.0 的随机数
select rand();
-- 产生 3位数 的随机数
select rand()*100 ;

其他函数–了解

-- user() 查询当前用户;
select user();

-- md5(str)对一个字符串进行md5摘要,摘要后得到一个 定长 32位 字符串; -- 企业中对用户密码的 注册储存以及登录验证 操作,类似md5摘要加密算法,不然裸露密码太危险了;
select md5('admin'); 

-- 显示正在使用的数据库;
select database();

-- ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值; 
select ifnull('abc', '123');
+----------------------+
| ifnull('abc', '123') |
+----------------------+
| abc |
+----------------------+
1 row in set (0.01 sec)

-- 类似于C++中的 val1==NULL?val2:val1; 条件成立,返回第二个,不成立返回第一个; 

select ifnull(null, '123');
+---------------------+
| ifnull(null, '123') |
+---------------------+
| 123 |
+---------------------+
1 row in set (0.01 sec)

关于md5()函数的加密:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 主函数几种语法

Cmain函数的两种写法 1&#xff0c;返回值为int&#xff0c;且main不带参数 #include<iostream> using namespace std; int main() { cout << "Hello C \n" << endl; system("pause"); return 1;//函数返回值取值范围0到255&#xf…

深入了解 JavaScript 语法错误以及如何防止它们

最近&#xff0c;在 Leader 的建议下&#xff0c;去看了看 emotion 和 storybook 的相关文档。学习过后&#xff0c;小有收获。因此&#xff0c;这次将以我自己的视角带你们体验一下 storybook&#xff0c;也算是对我自己学习过程中的一个 review。 何为 storybook 什么是 st…

第2关:伪分布式体验及分布式安装配置

服务器leader选举 为进一步了解ZooKeeper的leader选举过程&#xff0c;本节实训利用服务器的关闭启动&#xff0c;观察服务器的leader产生过程。利用以下命令查看当前服务器节点的状态(/xxx为安装目录)&#xff1a; ./xxx/bin/zkServer.sh status 当仅启动1个服务器节点&…

进博会期间,多地政府领导密集考察深兰科技

从11月初开始&#xff0c;借第五届中国国际进口博览会在上海举办的契机&#xff0c;来自全国各地的地级、县级市的各级领导纷纷来到上海&#xff0c;深入到各个行业领域的国企、央企、民企和跨国企业中走访调研&#xff0c;寻求技术合作&#xff0c;洽谈招商引资。 期间仅1日至…

流体力学基础——简介

流体定义&#xff1a;无规则的运动&#xff0c;流体&#xff1b;流体在静止时内部不能产生剪切力&#xff0c;流动产生的剪切力叫做粘力流体特点&#xff1a; 1、力与变形的关系不同&#xff1b;固体&#xff0c;应力正比于应变&#xff0c;静力学为主&#xff1b;流体&#xf…

DeepLearn关于数组和数的操作

本篇文章纯属作为自己的笔记&#xff0c;因为每次写程序都忘记下面的内容&#xff0c;找起来又很浪费时间&#xff0c;所有就索性一次性都整理下来&#xff0c;后续又不新的不会的内弄也会及时更新到文章当中&#xff0c;方便以后查阅。 DeepLearn关于数组和数的操作Python标准…

【详解】BIO、AIO、NIO Netty 知识点和工作原理

Netty框架 基础 三大网络编程 BIO 同步阻塞:服务器实现模式一个连接一个线程,既客户端有连接请求时,服务器就需要启动一个线程进行处理,如果这个连接不任何事情会造成不必要的线程线程开销 适用场景&#xff1a; 连接数目比较小且固定的架构&#xff0c;这种方式对服务器资源…

Android企业微信分享到小程序

1.官方文档Android应用 - 接口文档 - 企业微信开发者中心https://developer.work.weixin.qq.com/document/path/91196 2.创建应用 登录企业微信管理后台&#xff0c;选择企业应用&#xff0c;选择“企业微信授权登录”&#xff0c;在设置界面填写Android的 App的签名&包名…

[附源码]java毕业设计基于技术的新电商助农平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

HTTP 消息头

title: HTTP 消息头 date: 2022-11-16 14:36 tags: [HTTP,X-Real-IP,Host,X-Forwarded-For,Nginx] 文章目录〇、问题一、前言二、什么是消息头&#xff1f;三、Host四、X-Real-IP五、X-Forwarded-For参考更新〇、问题 什么是HTTP Headers&#xff1f;作用是什么&#xff1f; …

qemu-system-aarch64使用记录

qemu-system-aarch64 使用记录下载安装qemu查看是否支持KVM运行qemu-M内核启动问题内核编译下载安装qemu #!/bin/bashsudo apt update > /dev/null sudo apt upgrade > /dev/null sudo apt-get install -y make gcc g git > /dev/nullcd sudo apt-get install -y r…

一起来庆祝属于GISer的节日GIS DAY

概述 作为一名GISer的你&#xff0c;有没有想过其实我们GISer也有自己的节日&#xff1f;这个节日便是GIS DAY&#xff0c;今年的GIS DAY恰在今天&#xff08;2022年11月16日&#xff09;。究竟什么是GIS DAY&#xff1f;这里为大家介绍一下这个节日。 什么是GIS DAY GIS DA…

Python学习----异常、模块、安装第三方包

异常 异常的含义就不用解释了 打开一个不存在的文件&#xff1a; 异常的捕获 语法&#xff1a; 捕获所有异常 try:可能发生错误的代码 except:发生错误之后执行的代码try:可能发生错误的代码 except Exception as e:发生错误之后执行的代码两种写法都行 捕获指定异常&…

【maptplotlib大全图】一段代码洞查matplotlib图片真谛

此文通过给大家设计一个全面的代码&#xff0c;帮助大家了解matplotlib库画图的全貌 代码解读&#xff0c;略。 图示解读&#xff1a; 对照上图序号和下面序号看代码解释&#xff1a; 1.应用风格使用代码&#xff1a;plt.style.use(sty) 2.文本注释 plt.annotate(‘maximum…

QSS(Qt样式表)概念

Qt样式表是一个可以自定义部件外观的十分强大的机制&#xff0c;除了QStyle更改的样式&#xff0c;其他的都可以由QSS修改。由于受到Html的CSS启发&#xff0c;所以叫QSS。 代码添加样式表ui界面上添加样式表代码添加样式表&#xff1a; setStyleSheet&#xff08;&#xff09…

Beacon帧

一、简介 Beacon帧是802.11中一个周期性的帧&#xff0c;每隔一段时间就会向外界发出一个Beacon(信标)信号用来宣布自己802.11网络的存在。Beacon周期调高&#xff0c;对应睡眠周期拉长&#xff0c;故节能&#xff08;即越来休息100ms再起来发一个包&#xff0c;现在休息200ms…

python学习思路

话不多说&#xff0c;就是开始练习&#xff0c;因为之前编程的经验比较少&#xff0c;怎么办&#xff0c;就像马化腾一样&#xff0c;先抄袭&#xff0c;只有抄袭完成了之后&#xff0c;你才会获得你自己的知识 总体思路是先抄袭&#xff0c;再领悟。最后一定要自己默写打一次。…

电子统计台账:垂直流水账格式数据的导入

目录 1 前言 2 新建项目并打开数据源文件 3 模板设置 4 垂直过滤模板中&#xff0c;流水账过滤条件详细格式说明 1 前言 不少企业记录生产销售数据采用流水账格式。我们可以通过设置过滤模板来导入流水账格式的数据。 企业数据源文件&#xff0c;用excel打开后可以看到格式…

API安全防护解决方案

究竟什么是API 常规定义下&#xff0c;API是应用程序接口&#xff08;Application Programming Interface&#xff09;的简称&#xff0c;其含义比较宽泛&#xff0c;泛指一组定义、程序及协议的集合。随着技术领域的细分和前后端分离架构模式的推广&#xff0c;App应用、小程…

Java文件操作

文章目录1、文件的基本概念2、java文件操作2.1 File概述2.2 InputStream 和 FileInputStream2.3 OutputStream 和 OutputStreamWriter1、文件的基本概念 平时说的文件一般都是指存储在硬盘上的普通文件&#xff0c;形如txt&#xff0c;jpg&#xff0c;mp4&#xff0c;rar等这些…