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. mark Pay http://git.oschina.net/littleCrazy/dianshangpingtai-zhifu/blob/master/OrderPayController

    @Controller @RequestMapping("/api/pay/") public class OrderPayController extends BaseContr ...

  2. Spark核心概念理解

    本文主要内容来自于<Hadoop权威指南>英文版中的Spark章节,能够说是个人的翻译版本号,涵盖了基本的Spark概念.假设想获得更好地阅读体验,能够訪问这里. 安装Spark 首先从s ...

  3. vim:将刚写的单词大写和单词的定义

    最近打算把caps lock映射成<esc>键,那按起来多爽,现在的有一个小问题,如何快捷的输入大写字母. 用这个键盘映射搞定. inoremap <c-u> <esc& ...

  4. [na]tftp从linux下载文件

    1,背景: 当我们ssh到一台linux上时候,从linux上下载一些文件,方案如下: 1.1通过sftp:通过win7 ftp客户端连接到linux去下载文件. 1.2通过tftp 2,问题 有些l ...

  5. DDOS与DDOS追踪的介绍

    我很早前研究anti-DDOS,其中就有追踪一块,可以在这里介绍一些,但是实际上只有很少技术被投入使用了,大多数都还是依然是实验室的东西,已经投入实用的我单独提出来. 追踪技术有: ·链级测试 (Li ...

  6. Activiti进行时——企业工作流生命周期贯通 (zhuan)

    http://www.jianshu.com/p/e6971e8a8dad ********************************************** 图1:一个典型的审批工作流程 ...

  7. 在eclipse中配置server和database

    配置server,以tomcat为例 点击下图的tag 如果没有,就去这里找: 然后右键:new->server,根据你安装的server选择版本,然后finish就行了 然后你右键那个serv ...

  8. Makefile 7——自动生成依赖关系 三颗星

    后面会介绍gcc获得源文件依赖的方法,gcc这个功能就是为make而存在的.我们采用gcc的-MM选项结合sed命令.使用sed进行替换的目的是为了在目标名前加上“objs/”前缀.gcc的-E选项, ...

  9. __attribute__((weak, alias())))

    参考gcc的reference: 弱符号: 若两个或两个以上全局符号(函数或变量名)名字一样,而其中之一声明为weak symbol(弱符号),则这些全局符号不会引发重定义错误.链接器会忽略弱符号,去 ...

  10. Yii CDbCriteria常用用法

    $criteria = new CDbCriteria;$criteria->compare('name',$this->name,true,'OR'); //like部分匹配//$cri ...