首页 > 数据库 >mysql函数

mysql函数

时间:2024-05-08 15:01:42浏览次数:26  
标签:函数 MySQL 日期 mysql now Hello select

1. 字符串函数

 MySQL中内置了很多字符串函数,常用的几个如下:


演示:

  1. concat : 字符串拼接
select concat('Hello' , ' MySQL');
  1. lower : 全部转小写
select lower('Hello');
  1. upper : 全部转大写
select upper('Hello');
  1. lpad : 左填充
select lpad('01', 5, '-');
  1. rpad : 右填充
select rpad('01', 5, '-');
  1. trim : 去除空格
select trim(' Hello MySQL ');
  1. substring : 截取子字符串
select substring('Hello MySQL',1,5);


案例: 由于业务需求变更,企业员工的工号,统一为 5 位数,目前不足 5 位数的全部在前面补0。比如: 1 号员工的工号应该为 00001。

update emp set workno = lpad(workno, 5, '0');


2. 数值函数

常见的数值函数如下:


演示:

  1. ceil:向上取整
select ceil(1.1);
  1. floor:向下取整
select floor(1.9);
  1. mod:取模
select mod(7,4);
  1. rand:获取随机数
select rand();
  1. round:四舍五入
select round(2.344,2);


案例: 通过数据库的函数,生成一个六位数的随机验证码。

思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0

select lpad(round(rand()*1000000 , 0), 6, '0');


3. 日期函数

常见的日期函数如下:


演示:

  1. curdate:当前日期
select curdate();
  1. curtime:当前时间
select curtime();
  1. now:当前日期和时间
select now();
  1. YEAR , MONTH , DAY:当前年、月、日
select YEAR(now());

select MONTH(now());

select DAY(now());
  1. date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );
  1. datediff:获取两个日期相差的天数
select datediff('2021-10-01', '2021-12-01');


案例: 查询所有员工的入职天数,并根据入职天数倒序排序。

思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。

select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by
entrydays desc;


4. 流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。


演示:

  1. if
select if(false, 'Ok', 'Error');
  1. ifnull
select ifnull('Ok','Default');

select ifnull('','Default');

select ifnull(null,'Default');
  1. case when then else end

需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

select
  name,
  ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else'二线城市' end ) as '工作地址'
from emp;

标签:函数,MySQL,日期,mysql,now,Hello,select
From: https://www.cnblogs.com/pine1203/p/18179761

相关文章

  • mysql8 根据ibd文件恢复表
    原文https://github.com/ddcw/ibd2sql 环境:mysql8.0.33一、创建测试数据Mysql8.0.32环境:mysql>createtablet1(idint,namevarchar(200));QueryOK,0rowsaffected(0.02sec)mysql>insertintot1select1,'a';QueryOK,1rowaffected(0.01sec)......
  • MySQL索引数据结构
    什么是索引索引在项目中还是比较常见的,它是帮助MySOL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗。索引的底层数据结构MySQL的默认的存储引擎InnoDB采用的B+树的数据结构来存储......
  • mysql基本语法
    1.DDLDataDefinitionLanguage,数据定义语言,用来定义数据库对象(数据库,表,字段)。 1.1数据库操作查询所有数据库showdatabases;查询当前数据库selectdatabase();创建数据库createdatabase[ifnotexists]数据库名[defaultcharset字符集][col......
  • MYSQL 数据库之锁
    本文参考哔哩哔哩黑马TODO补充详细mysql实例操作语句全局锁全局锁就是对整个数据库实例加锁加锁后处于只读状态后续的DML的写语句和DLL不执行表级锁表锁表锁分为两类:表共享锁(readlock)表独占写锁(writelock)-->语法:加锁locktables表名...read/write......
  • varlet库loading组件模版使用转函数式调用方法
    2024年5月8日10:34:19varlet库loading组件模版使用转函数式调用方法鉴于在H5中varlet.Snackbar在axios请求封装函数中总是会产生阻塞现象问题,而varlet.loading又不能函数式调用。//loading.vue<scriptlang="ts"setup>import{ref,onMounted}from'vue'import{useWi......
  • Mysql脚本——备份客户自建数据库
    #!/bin/bashDATE=$(date+%F_%H-%M-%S)HOST=127.0.0.1USER=rootPASS=Linux@123PORT=3306BACKUP_DIR=./db_backup#删选客户自建数据库(排除系统库)DB_LIST=$(mysql-u$USER-p$PASS-h$HOST-P$PORT-s-e"showdatabases;"2>/dev/null|egrep-v"Database|......
  • linux系统内置函数
    一、read-t限制时间,单位秒,到时间后不输入直接中断会话-q提示信息read-t10-p"请输入您的数据"message(接受数据的参数)echo$message二、basename获取文件(文件夹名称),获取路径的尾端名称,相当于file.getName()三、dirname获取文件的文件夹的路径(不要路径的尾端)四、......
  • mysql死锁优化
    查看连接showprocesslist--已开启10秒以上的活跃连接SELECTid,user,db,command,state,time,infoFROMinformation_schema.processlistwherecommand<>'sleep'andtime>10orderbytime;--已运行超过10s的执行计划SELECTid,user,db,command,state,timeFROMinfo......
  • 库函数和系统调用函数有什么区别
    一、概念  库函数调用是语言或应用程序的一部分,而系统调用是操作系统的一部分,跨平台技术的原理就是通过库函数实现的,库函数可以理解为是对系统调用的一层封装,但库函数不是必须包含系统调用。二、区别抽象级别:库函数:通常位于更高级别的抽象层。它们为程序员提供了更简洁、......
  • DeleteChar函数
    设计一程序实现功能,处理字符串A,处理规则是只要B字里面有的字母,不分大小写,一律从A字符串中删掉。char*delChar(char*A,constchar*B){intc;//记录A中相同的字符数且与B中字符相同的情况while(*B){if((*B<'A'||*B>'Z')&&(*B<'a'||*B>'z&......