MySQL数据库-MySQL函数

1、MySQL内置函数

SELECT执行函数,后面跟要执行的函数

CHAR_LENGTH(str)函数:返回字符串的字符长度

-- CHAR_LENGTH(str)函数:返回字符串的字符长度

SELECT CHAR_LENGTH('欢迎光临');

LENGTH(str)函数:返回字符串的字节长度

-- LENGTH(str)函数:返回字符串的字节长度

SELECT LENGTH('欢迎光临');

CONCAT(str1,str2,...)函数:拼接字符串

-- CONCAT(str1,str2,...)函数:拼接字符串

SELECT CONCAT('你好','欢迎光临');

CONCAT_WS(链接符,str1,str2,...)函数:自定义链接符,拼接字符串

-- CONCAT_WS(链接符,str1,str2,...)函数:自定义链接符,拼接字符串

SELECT CONCAT_WS('_','你好','欢迎光临');

CONV(N,from_base,to_base)函数:进制转换

-- CONV(N,from_base,to_base)函数:进制转换

SELECT CONV('a',16,2); -- 表示将 a 由16进制转换为2进制字符串表示

FORMAT(X,D)函数:将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。

-- FORMAT(X,D)函数:将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。

SELECT FORMAT(12332.1,4); -- 结果为: '12,332.1000'

INSERT(原始字符串,替换起始位置,替换长度,替换的新字符串)函数:在str的指定位置插入字符串

-- INSERT(原始字符串,替换起始位置,替换长度,替换的新字符串)函数:在str的指定位置插入字符串

SELECT INSERT('欢迎光临官方网站',5,2,'我们'); -- 返回:欢迎光临我们网站

其他函数

 INSERT(str,pos,len,newstr)
在str的指定位置插入字符串
pos:要替换位置其实位置
len:替换的长度
newstr:新字符串
特别的:
如果pos超过原字符串长度,则返回原字符串
如果len超过原字符串长度,则由新字符串完全替换
INSTR(str,substr)
返回字符串 str 中子字符串的第一个出现位置。 LEFT(str,len)
返回字符串str 从开始的len位置的子序列字符。 LOWER(str)
变小写 UPPER(str)
变大写 LTRIM(str)
返回字符串 str ,其引导空格字符被删除。
RTRIM(str)
返回字符串 str ,结尾空格字符被删去。
SUBSTRING(str,pos,len)
获取字符串子序列 LOCATE(substr,str,pos)
获取子序列索引位置 REPEAT(str,count)
返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。
若 count <= 0,则返回一个空字符串。
若str 或 count 为 NULL,则返回 NULL 。
REPLACE(str,from_str,to_str)
返回字符串str 以及所有被字符串to_str替代的字符串from_str 。
REVERSE(str)
返回字符串 str ,顺序和字符顺序相反。
RIGHT(str,len)
从字符串str 开始,返回从后边开始len个字符组成的子序列 SPACE(N)
返回一个由N空格组成的字符串。 SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)
不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式为标准 SQL 语法。也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。在以下格式的函数中可以对pos 使用一个负值。 mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically' mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar' mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica' mysql> SELECT SUBSTRING('Sakila', -3);
-> 'ila' mysql> SELECT SUBSTRING('Sakila', -5, 3);
-> 'aki' mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
-> 'ki' TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str)
返回字符串 str , 其中所有remstr 前缀和/或后缀都已被删除。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH 。 remstr 为可选项,在未指定情况下,可删除空格。 mysql> SELECT TRIM(' bar ');
-> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx' mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar' mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'

文本函数

函数

用法

描述

CONCAT()

CONCAT(x,y,...)

创建形如xy的新字符串

LENGTH()

LENGTH(column)

返回列中储存的值的长度

LEFT()

LEFT(column,x)

从列的值中返回最左边的x个字符

RIGHT()

RIGHT(column,x)

从列的值中返回最右边的x个字符

TRIM()

TRIM(column)

从存储的值删除开头和结尾的空格

UPPER()

UPPER(column)

把存储的字符串全部大写

LOWER()

LOWER(column)

把存储的字符串全部小写

SUBSTRING()

SUBSTRING(column, start, length)

从column中返回开始start的length个字符(索引从0开始)

MD5()

MD5(column)

把储存的字符串用MD5加密

SHA()

SHA(column)

把存储的字符串用SHA加密

数字函数

函数

用法

描述

ABS()

ABS(x)

返回x的绝对值

CEILING()

CEILING(x)

返回x的值的最大整数

FLOOR()

FLOOR(x)

返回x的整数

ROUND()

ROUND(x)

返回x的四舍五入整数

MOD()

MOD(x)

返回x的余数

RNAD()

RNAD()

返回0-1.0之间随机数

FORMAT()

FORMAT(x,y)

返回一个格式化后的小数

SIGN()

SIGN(x)

返回一个值,正数(+1),0,负数(-1)

SQRT()

SQRT(x)

返回x的平方根

日期和时间函数

函数

用法

描述

HOUR()

HOUR(column)

只返回储存日期的小时值

MINUTE()

MINUTE(column)

只返回储存日期的分钟值

SECOND()

SECOND(column)

只返回储存日期的秒值

DAYNAME()

DAYNAME(column)

返回日期值中天的名称

DAYOFMONTH()

DAYOFMONTH(column)

返回日期值中当月第几天

MONTHNAME()

MONTHNAME(column)

返回日期值中月份的名称

MONTH()

MONTH(column)

返回日期值中月份的数字值

YEAR()

YEAR(column)

返回日期值中年份的数字值

CURDATE()

CURDATE()

返回当前日期

CURTIME()

CURTIME()

返回当前时间

NOW()

NOW()

返回当前时间和日期

格式化日期和时间(DATE_FORMAT()和TIME_FORMAT())

名词

用法

示例

%e

一月中的某天

1~31

%d

一月中的某天,两位

01~31

%D

带后缀的天

1st~31st

%W

周日名称

Sunday~Saturday

%a

简写的周日名称

Sun-Sat

%c

月份编号

1~12

%m

月份编号,两位

01~12

%M

月份名称

January~December

%b

简写的月份名称

Jan~Dec

%Y

年份

2002

%y

年份,两位

02

%l

小时

1~12

%h

小时,两位

01~12

%k

小时,24小时制

0~23

%H

小时,24小制度,两位

00~23

%i

分钟

00~59

%S

00~59

%r

时间

8:17:02 PM

%T

时间,24小时制

20:17:02 PM

%p

上午或下午

AM或PM

更多函数:中文猛击这里 OR 官方猛击这里

2、自定义函数

create function 创建函数

-- create function 创建函数

-- create function 函数名称 (形式参数名称,形式参数类型)
-- returns int 返回整数类型
-- BEGIN 函数内容开始
-- 函数内容
-- END 函数内容结束 delimiter $$
DROP function if EXISTS f1; -- 判断这个函数如果存在删除 create function f1( -- 创建函数,接收两个整数类型参数
i1 int,
i2 int)
returns int -- 返回整数类型
BEGIN
declare num int; -- 定义num变量,整数类型
set num = i1 + i2; -- 将传值相加后,赋值给num变量
return(num); -- 返回num变量
END $$
delimiter ;

函数以创建

执行自定义函数

-- 执行自定义函数

SELECT f1(5,6); -- 返回11

将函数放在查询语句里,将函数返回结果与查询语句返回结果组合

-- 执行自定义函数

SELECT f1(5,6),id,yhm,xb,nl FROM usr; 

将函数放在查询语句里,函数的参数如果是写的某个字段,那么这个字段的值将传入函数里执行

-- 执行自定义函数

SELECT f1(5,nl),id,yhm,xb,nl FROM usr; -- 函数的参数如果是写的nl字段,那么这个字段的值将传入函数里执行

删除函数

drop function 删除函数,后面跟要删除的函数名称

-- drop function 删除函数,后面跟要删除的函数名称

drop function f1;

pymysql模块,执行函数

注意:函数与存储过程的区别

存储过程是:CREATE PROCEDURE 创建的

函数时:create function 创建的

存储过程是:CALL  执行的

函数时:SELECT 执行的

函数里:不支持SQL语句【重点】

存储过程里:支持SQL语句【重点】

第二百八十五节,MySQL数据库-MySQL函数的更多相关文章

  1. 第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现,回填数据以及错误提示html

    第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现 1,配置登录路由 from django.conf.urls import url, include # 导入dja ...

  2. 第二百八十六节,MySQL数据库-MySQL事务操作(回滚)

    MySQL数据库-MySQL事务操作(回滚) 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 举例:有这样一张表 从表里可以看出张 ...

  3. 第二百八十四节,MySQL数据库-MySQL触发器

    MySQL数据库-MySQL触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 1.创建触发器基本语法 ...

  4. 第二百七十五节,MySQL数据库安装和介绍

    MySQL数据库安装 一.概述 1.什么是数据库 ? 答:数据的仓库,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 答:他们均是一种 ...

  5. 第二百八十九节,MySQL数据库-ORM之sqlalchemy模块操作数据库

    MySQL数据库-ORM之sqlalchemy模块操作数据库 sqlalchemy第三方模块 sqlalchemysqlalchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API ...

  6. 第二百六十五节,xss脚本攻击介绍

    xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...

  7. 第二百三十五节,Bootstrap栅格系统

    Bootstrap栅格系统 学习要点: 1.移动设备优先 2.布局容器 3.栅格系统 本节课我们主要学习一下 Bootstrap 的栅格系统,提供了一套响应式.移动设备优先的流 式栅格系统. 一.移动 ...

  8. 第二百二十五节,jQuery EasyUI,PropertyGird(属性表格)组件

    jQuery EasyUI,PropertyGird(属性表格)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 PropertyGird(属性表格)组件的 ...

  9. 第二百八十五天 how can I 坚持

    今天好平凡啊. 晚上给徐斌打电话说忘带钥匙了,一块吃了个饭. 回到家,什么都不想做,好消沉. 玩了几局象棋,很多东西只是玩玩,但还是会认真,认真就会输,好惨. 最近在关注万科幸福里,可是.首付付不起啊 ...

随机推荐

  1. Python isalnum() 方法

    描述 Python isalnum() 方法检测字符串是否由字母和数字组成. 语法 isalnum()方法语法: S.isalnum() 参数 无. 返回值 如果字符串至少有一个字符并且所有字符都是字 ...

  2. js cookie库

    顺手摘下来 /** * @desc 设置Cookie * @param {String} name * @param {String} value * @param {Number} expires ...

  3. Response.ContentType 详细列表-请求的内容类型详细记录

    Response.ContentType 详细列表-请求的内容类型详细记录 作者:王春天一.应用实例: Response.Clear(); Response.ContentType = "t ...

  4. 实例讲解Nginx下的rewrite规则(转)

    一.正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配二.文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* ...

  5. django找不到模板(TemplateDoesNotExist at)的异常处理案例

    一.django的渲染模板时报如下错: TemplateDoesNotExist at 二.定位问题: 1.由上面报的错.一开始以为是找不到模板(自己路径写的不对).后来发现我的路径写的是正确的. 2 ...

  6. 常用IP核

    前言 记录自己用到的模块,随时补充. 主要分类: 一.常用模块 1-FIFO FIFO分为两种,一是输入输出时钟相同(Common clock)的 fifo ;二是输入输出时钟不相同(Independ ...

  7. 【Android】8.4 让主题自适应不同的Android版本

    分类:C#.Android.VS2015: 创建日期:2016-02-17 一.简介 默认情况下,高版本提供的主题不能在低版本的Android系统上运行.但是,通过自定义主题,可以让你的系统自适应各自 ...

  8. 编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示。如:ABCABCABC…… 依次递归

    import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.uti ...

  9. maven(1)------使用myeclipse构建maven项目

    maven官网:http://maven.apache.org/ 依据官网的说法,Maven是一个采用纯Java编写的开源项目管理工具,基于一个称为项目对象模型(POM)的概念,可以管理项目的生命周期 ...

  10. angular学习笔记(二十四)-$http(2)-设置http请求头

    1. angular默认的请求头: 其中,Accept 和 X-Requested-With是$http自带的默认配置 Accept:application/json,text/plain       ...