MySQL实例精讲单行函数以及字符数学日期流程控制

目录
  • 一、字符函数
    • 1、大小写控制函数
    • 2、字符控制函数
  • 二、数学函数
  • 三、日期函数
  • 四、其他函数
  • 五、流程控制函数

一、字符函数

1、大小写控制函数

UPPER():转换成大写

SELECT UPPER('Hello');

LOWER():转换成小写

SELECT LOWER('Hello');

2、字符控制函数

LENGTH():获取参数值的字节个数

SELECT LENGTH('叶绿体不忘呼吸aaaa');

CONCAT():拼接字符串

SELECT CONCAT('Hello','世界') AS result;

SUBSTR():截取(MySQL里索引是从1开始的,而不是0)

#从第4个开始截取,截取后面全部
SELECT SUBSTR('我相信光',4);

#从第1个开始截取,截取3个
SELECT SUBSTR('我相信光',1,3);

INSTR():返回子串在主串中第一次出现的索引,如果不存在,则返回0

SELECT INSTR('国足10月13日客战沙特','沙特') AS result;

TRIM():去除字符串前后某字符

SELECT TRIM('a' FROM 'aaaaa叶aa绿体aaaaa') AS result;

#去空格
SELECT TRIM('    叶aa绿体a    ') AS result;

LPAD():用指定的字符左填充指定长度,RPAD()则是右填充

SELECT LPAD('叶绿体',9,'a') AS result;

REPLACE():替换

SELECT REPLACE('a叶aaa绿体aaaa','a','B') AS result;

二、数学函数

ROUND():四舍五入

#默认保留一位小数
SELECT ROUND(1.62) AS result;

#保留两位小数
SELECT ROUND(1.627,2) AS result;

CEIL():向上取整,返回大于等于该数的最小整数

SELECT CEIL(1.002) AS result;

FLOOR():向下取整,返回小于等于该数的最大整数

SELECT FLOOR(1.002) AS result;

TRUNCATE():截断

SELECT TRUNCATE(1.699,1) AS result;

MOD():取余,等价于%

SELECT MOD(10,-3) AS result;

三、日期函数

①NOW():返回当前系统的日期和时间

SELECT NOW();

②CURDATE():返回当前系统日期,不包含时间

SELECT CURDATE();

③CURTIME():返回当前系统时间,不包括日期

SELECT CURTIME();

YREAR():获取指定日期字段的年

SELECT YEAR(NOW());

SELECT YEAR('2021-09-30') AS result;

MONTH():获取指定日期字段的月,MONTHNAME()则可以返回月份英文

SELECT MONTH('2021-09-30') AS result;

SELECT MONTHNAME('2021-09-30') AS result;

日,小时,分钟,秒钟都可以同上

STR_TO_DATE():将字符按照指定的格式转为日期

#相当于是解析:两个参数格式要匹配
SELECT STR_TO_DATE('9-30 2021','%m-%d %Y') AS result;

DATE_FORMAT():将日期转换成字符

#相当于是格式化
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日') AS result;

四、其他函数

#查看版本
SELECT VERSION();
#查看数据库
SELECT DATABASE();
#查看用户
SELECT USER();

五、流程控制函数

IF():判断,第一个参数是条件,第二个是true的返回,第三个是false的返回

SELECT IF(10>5,'大','小') AS result;

CASE()使用一:类似于Java中switch

CASE 要判断的
WHEN 常量1 THEN 语句1;或者要显示的值1
...
ELSE 语句;或者要显示的值
END

示例

#示例为要显示的值,不加‘;'
SELECT `last_name`,`salary`,`department_id`,
CASE `department_id`
WHEN 100 THEN `salary`*(1+0.8)
WHEN 90 THEN `salary`*(1+0.6)
WHEN 80 THEN `salary`*(1+0.4)
WHEN 70 THEN `salary`*(1+0.2)
ELSE `salary`
END AS 最终工资
FROM employees;

CASE()使用一:类似于Java中多重if

CASE
WHEN 条件1 THEN SELECT 语句1;或者要显示的值1
...
ELSE 语句;或者要显示的值
END

示例

#示例为要显示的值,不加‘;'
SELECT `last_name`,`salary`,
CASE
WHEN `salary`>20000 THEN 'A级别'
WHEN `salary`>15000 THEN 'B级别'
WHEN `salary`>10000 THEN 'C级别'
ELSE 'D级别'
END AS 等级
FROM employees;

到此这篇关于MySQL深度精讲单行函数以及字符数学日期流程控制的文章就介绍到这了,更多相关MySQL 单行函数 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-10-11

MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法

上一篇介绍了如何在 Oracle 生成随机数字.字符串.日期.验证码以及 UUID,今天我们继续讨论在 MySQL 中生成各种随机数据的方法.

Mysql 日期格式化及复杂日期区间查询

目录 前言 查询使用场景案例 时间区间查询 查询日期今天时间比较数据 常用的周期时间查询 mysql日期时间函数 1 得当前日期+时间(date + time)函数:now() 2 获得当前日期+时间(date + time)函数:sysdate() 3 获得当前时间戳函数:current_timestamp, current_timestamp() 4 获取当前日期(date)函数: curdate() mysql日期时间转换函数 1 日期时间转换字符串格式 2 字符串转换为日期时间 3 (日

MySQL数字类型自增的坑

在进行表结构设计时,数字类型是最为常见的类型之一,但要用好数字类型并不如想象得那么简单,比如: 怎么设计一个互联网海量并发业务的自增主键?用 INT 就够了? 怎么设计账户的余额?用 DECIMAL 类型就万无一失了吗? 以上全错! 数字类型看似简单,但在表结构架构设计中很容易出现上述"设计上思考不全面"的问题(特别是在海量并发的互联网场景下) 数字类型 整数类型 MySQL 数据库支持 SQL 标准支持的整型类型:INT.SMALLINT.此外,MySQL 数据库也支持诸如 TINY

MySQL中日期型单行函数代码详解

MySQL中日期型单行函数: CURDATE()或CURRENT_DATE() 返回当前日期(精确到日) 参考代码如下: SELECT CURDATE() FROM DUAL; SELECT CURRENT_DATE() FROM DUAL; -----------------------------------(分割线)------------------------------------ CURTIME() 或CURRENT_TIME() 返回当前时间(精确到秒) 参考代码如下: SELE

MySQL关于字符串中数字排序的问题分析

本文实例讲述了MySQL关于字符串中数字排序的问题.分享给大家供大家参考,具体如下: MySQL字符串相信大家都不陌生,在MySQL字符串排序时经常会遇到一些问题,比如下面要介绍的这个 今天解决了一个关于MySQL字符串排序的很奇怪的问题,在数据里面定义的是varchar类型,实际存放的是Int类型的数据,按一下查询语句进行排序: 将字段*1或者+0可以将MySQL字符串字段按数值排序 如: select * from table where 1 order by id*1 desc; 或者 s

C#基于正则表达式删除字符串中数字或非数字的方法

本文实例讲述了C#基于正则表达式删除字符串中数字或非数字的方法.分享给大家供大家参考,具体如下: /// 去掉字符串中的数字 public static string RemoveNumber(string key) { return Regex.Replace(key, @"\d", ""); } //去掉字符串中的非数字 public static string RemoveNotNumber(string key) { return Regex.Replace

php结合正则获取字符串中数字

php结合正则获取字符串中数字 <?php $patterns = "/\d+/"; //第一种 //$patterns = "/\d/"; //第二种 $strs="left:0px;top:202px;width:90px;height:30px"; preg_match_all($patterns,$strs,$arr); print_r($arr); /***************运行结果*********************

C#统计字符串中数字个数的方法

本文实例讲述了C#统计字符串中数字个数的方法.分享给大家供大家参考.具体实现方法如下: // DigitCounter.cs // 编译时使用:/target:library using System; // 声明与 Factorial.cs 中的命名空间相同的命名空间.这样仅允许将 // 类型添加到同一个命名空间中. namespace Functions { public class DigitCount { // NumberOfDigits 静态方法计算 // 传递的字符串中数字字符的数

php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创

本文实例讲述了php使用strpos判断字符串中数字类型子字符串出错的解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近的开发中在程序代码里有一个随机数是否在给定字符串里的判断,我用了如下的测试代码: $string='中奖号码:3'; $numtmp=mt_rand(1,10); if(strpos($string,$numtmp)!==false){ echo "恭喜中奖!中奖号码:".$numtmp; }else{ echo "谢谢!欢迎再来,中奖号码不是&q

Java通过正则表达式获取字符串中数字的方法示例

前言 本文通过一个小范例来学习java中通过正则表达式如何获得一个字符串中的数字,下面话不多说,来看看详细的介绍吧. 示例代码如下: import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { public static void main(String[] args) { String strInput = "3a7s10@5d2a6s17s56;33"; String reg

PHP字符串中抽取子串操作实例分析

本文实例讲述了PHP字符串中抽取子串操作.分享给大家供大家参考,具体如下: 问题 希望从字符串的某个特定位置开始抽取这个字符串的一部分.例如,对于输入到一个表单的用户名,想要得到这个用户名的前8个字符. 解决 使用substr()选择子串 $substring = substr($string,$start,$length); $username = substr($_GET['username'],0,8); 讨论 1.如果$strart和$length都是正数,substr()会返回字符串从

jquery 取字符串中数字的正则

核心代码: 复制代码 代码如下: var paddleft = $(".teacher-title").css("padding-left").replace(/[^0-9]/ig, ""); var num=parseInt(paddleft); 演示代码: jquery获取页面样式中的值 .teacher-title{padding-left:50px; width:200px;} 看看那 var paddleft = $(".te

java字符串遍历以及统计字符串中各类字符

本文实例为大家分享了java字符串遍历,以及java统计字符串中各类字符的具体代码,供大家参考,具体内容如下 1.需求:获取字符串中的每一个字符 分析: A:如何能够拿到每一个字符呢?   char charAt(int index) B:我怎么知道字符到底有多少个呢? int length() public class StringTest { public static void main(String[] args) { // 定义字符串 String s = "helloworld&qu

Mysql中实现提取字符串中的数字的自定义函数分享

因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代码如下: CREATE FUNCTION GetNum (Varstring varchar(50)) RETURNS varchar(30) BEGIN DECLARE v_length INT DEFAULT 0; DECLARE v_Tmp varchar(50) default ''; se