【MySQL篇】MySQL内置函数

embedded/2025/3/14 8:51:33/

目录

1,日期函数

 2,字符串函数

3,数学函数 

4,其他函数 

实战OJ


1,日期函数

日期类型在之前文章【数据类型】中有描述

传送门:【MySQL篇】数据类型_mysql 数据类型-CSDN博客

函数名称描述
current_date()当前日期
current_time()当前时间
current_timestamp()当前时间戳
date(datetime)返回datetime参数的部分日期
date_add(date,interval d_value_type)在date中添加日期或时间,interval关键字后可以是:year,mintue,second,day
date_sub(date,interval d_value_type)

在date中减去日期或时间,interval关键字后可以是:

year,minute,second,day

datediff(date1,date2)两个日期的差,单位是天
now()当前日期时间
  • 获得当前日期(年月日)

  • 获得当前日期(时分秒)

  • 获取当前日期 

  • 获得时间戳 

  • 在日期的基础上加上日期 

  • 在日期的基础上减去时间 

  • 计算两个日期之间相差多少天 

 案例1:创建一张生日表,记录生日

mysql> create table tmp(
    -> id int primary key auto_increment,
    -> birthday date);

  • 添加当前日期 

mysql> insert into tmp (birthday) values (current_date());

 

  • 案例2:创建一张留言表 

mysql> create table msg(
    -> id int primary key auto_increment,
    -> content varchar(30) not null,
    -> sendtime datetime);

  • 插入数据 

mysql> insert into msg (content,sendtime) values ('hello1',now());

mysql> insert into msg (content,sendtime) values ('hello2',now());

 

  • 显示所有留言信息,只显示日期,不显示时间 

mysql> select content,date(sendtime) from msg;

 

  • 查询2分钟内发布的留言

mysql> select * from msg where date_add(sendtime,interval 2 minute)>now();

 

 2,字符串函数

charset(str)返回str的字符集
concat(string,[...])连接字符串
instr(str,substring)返回substring在str中出现的位置,没有返回0
ucase(string2)转换成大写
lcase(string2)转换成小写
left(string2,length)从string2的左边起,取length个字符
length(string)string的长度,单位是字节
replace(str,search_str,raplace_str)在str中用replace_str替换search_str
strcmp(string1,string2)比较两字符串的大小
substring(string,postion,length)从string的postion开始,读取length个字符
ltrim(string)    rtrim(string)   trim(string)去除前空格或后空格(见示例)

示例:

  • 查看字符的编码集

  • 连接字符串 

 

  • 判断一个字符是否在另一个字符串中出现 

  •  大小写转换

  •  left,right函数

  • length求字符串长度,单位是字节 (utf8下一个整数3个字节)

 

案例: 

  • 首先创建一张员工表

  • 插入数据 

  • 获取emp表的ename列的字符集 (如果表中有些部分出现乱码,可以查看插入数据的编码和mysql的编码是否一致)

mysql> select charset(ename) from emp;

 

  •  将emp表中所有名字中有 S的替换成 '上海'

mysql> select ename,replace(ename,'S','上海')  from emp;

  • 截取emp表中ename字段的第2到3个字符

 mysql> select ename,substring(ename,2,2) from emp;

 

  • 以首字母小写的方式显示所有员工的姓名 

mysql> select concat(lcase(substring(ename,1,1)),substring(ename,2)) from emp;

 

3,数学函数 

函数名称描述
abs(num)绝对值函数
bin(decimal_number)十进制转二进制
hex(decimal Number)转换成十六进制
conv(number,form_case,to_base)进制转换
ceiling(number)向上取整
floor(number)向下取整
format(number,decimal_places)格式化,保留小数位数
rand()返回随机浮点数,范围【0.0,1.0)
mod(number,denominator)取模,求余数

示例:

  • 绝对值

  • 向上取整 

  •  向下取整

  • 保留两位小数位数 (四舍五入)

  • 十进制转化成二进制 

  • 把一个数字从一个进制转化成另一个进制 

  • 转化成十六进制 

  • 产生随机数

4,其他函数 

  • user查询当前用户

mysql> select user();

  • md5(str)对一个字符串进行md5摘要,摘要后的得到一个32位字符串 ,可以保证用户信息的安全性

mysql> create table user(
    -> id int primary key auto_increment,
    -> name varchar(20),
    -> password char(32) not null); 

插入数据 

mysql> insert into user (name,password) values ('张三',md5('12345'));
mysql> insert into user (name,password) values ('李四',md5('21090'));

 

  • database(),显示当前正在使用的数据库 

mysql> select database();

  • ifnull(val1,val2),如果val为null,返回val2。否则返回val1

 

实战OJ

查找字符串中逗号出现的次数_牛客题霸_牛客网

select id,length(string)-length(replace(string,',','')) cnt from strings;

 


http://www.ppmy.cn/embedded/172452.html

相关文章

RocketMQ开发实战篇

一、生产者开发指南 1. Java API使用详解 在使用RocketMQ进行消息生产时&#xff0c;首先需要引入相关的依赖。在Maven项目中&#xff0c;可以在pom.xml文件中添加以下依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactI…

记录一下返修

1.对复杂度的分析还不够&#xff1b; 2.融合两种指标的解释还不够&#xff0c;审稿人认为这两种指标存在冲突&#xff0c;不能同时优化&#xff0c;但其实我们考虑的是公平性保证整个调度周期内用户分配到了更加平均的sum-rate,而se是为了追求每个调度时刻都尽可能找到信道条件…

条款1:理解模版性别推导

目录 问题引出 情况1&#xff1a;ParamType是个指针或引用&#xff0c;但不是个万能引用。 情况2&#xff1a;ParamType是个万能引用 情况3&#xff1a;ParamType既非指针也非引用 问题引出 函数模板大致形如&#xff1a; template<typename T> void f(ParamType p…

EngineerCMS完整版支持OnlyOffice8.2文档协作

这次从OO5.3那个时代的接口&#xff0c;改到支持8.2接口&#xff0c;颇费周折。centos升级和docker升级 - Powered by MinDoc (itdos.net) 1. 首先是升级centos 手动升级centos7内核&#xff08;版本自行选择&#xff0c;亲测内核下载链接有效&#xff09;_centos内核下载-CS…

微信小程序防止弹框下面穿透滚动

‌使用catchtouchmove属性‌&#xff1a;在需要防止穿透滚动的元素上添加catchtouchmove"true"属性。这样&#xff0c;当用户在该元素上进行滚动操作时&#xff0c;不会触发下层的滚动事件&#xff0c;从而防止穿透滚动。 例如&#xff1a; 修改前&#xff0c;在弹框…

JAVA面试_进阶部分_Java JVM:垃圾回收(GC 在什么时候,对什么东西,做了什么事情)

在什么时候&#xff1a; 首先需要知道&#xff0c;GC又分为minor GC 和 Full GC&#xff08;major GC&#xff09;。Java堆内存分为新生代和老年代&#xff0c;新生代 中又分为1个eden区和两个Survior区域。 一般情况下&#xff0c;新创建的对象都会被分配到eden区&#xff…

【算法day9】字符串转换整数 (atoi);请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。

字符串转换整数 (atoi) https://leetcode.cn/problems/string-to-integer-atoi/description/ 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数。 函数 myAtoi(string s) 的算法如下&#xff1a; 空格&#xff1a;读入字符串并丢…

FiddlerScript学习笔记

参考官方文档&#xff1a;https://www.fiddlerbook.com/fiddler/dev/scriptsamples.asp json // 反序列化 static function jsonDecode(str : String){return Fiddler.WebFormats.JSON.JsonDecode(str).JSONObject; } // 序列化 static function jsonEncode(jsonObject : Obje…