第二百八十五节,MySQL数据库-MySQL函数
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 |
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函数的更多相关文章
- 第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现,回填数据以及错误提示html
第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现 1,配置登录路由 from django.conf.urls import url, include # 导入dja ...
- 第二百八十六节,MySQL数据库-MySQL事务操作(回滚)
MySQL数据库-MySQL事务操作(回滚) 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 举例:有这样一张表 从表里可以看出张 ...
- 第二百八十四节,MySQL数据库-MySQL触发器
MySQL数据库-MySQL触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 1.创建触发器基本语法 ...
- 第二百七十五节,MySQL数据库安装和介绍
MySQL数据库安装 一.概述 1.什么是数据库 ? 答:数据的仓库,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 答:他们均是一种 ...
- 第二百八十九节,MySQL数据库-ORM之sqlalchemy模块操作数据库
MySQL数据库-ORM之sqlalchemy模块操作数据库 sqlalchemy第三方模块 sqlalchemysqlalchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API ...
- 第二百六十五节,xss脚本攻击介绍
xss脚本攻击介绍 Cross-Site Scripting(XSS)是一类出现在 web 应用程序上的安全弱点,攻击者可以通过 XSS 插入一 些代码,使得访问页面的其他用户都可以看到,XSS 通常 ...
- 第二百三十五节,Bootstrap栅格系统
Bootstrap栅格系统 学习要点: 1.移动设备优先 2.布局容器 3.栅格系统 本节课我们主要学习一下 Bootstrap 的栅格系统,提供了一套响应式.移动设备优先的流 式栅格系统. 一.移动 ...
- 第二百二十五节,jQuery EasyUI,PropertyGird(属性表格)组件
jQuery EasyUI,PropertyGird(属性表格)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 PropertyGird(属性表格)组件的 ...
- 第二百八十五天 how can I 坚持
今天好平凡啊. 晚上给徐斌打电话说忘带钥匙了,一块吃了个饭. 回到家,什么都不想做,好消沉. 玩了几局象棋,很多东西只是玩玩,但还是会认真,认真就会输,好惨. 最近在关注万科幸福里,可是.首付付不起啊 ...
随机推荐
- 封ip对爬虫的影响
今天要聊的是封ip对爬虫的影响.我认为封ip能拒绝一部分网络请求,减轻服务器的压力,但是如果要是建立一个好的ip池,封对爬虫的影响不大. 爬取国内一个拍卖公司的网站,刚开始用多进程下载,每分钟能爬取 ...
- Spring自带配置方式链接数据库(没有src新建文件,没有c3p0)
1.配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:/ ...
- Opening Default document on IIS (HTML With WebAPI)
Question: I've a deployed ASP.NET Web API with a website on the same folder that consume it. When I ...
- GCC实现多文件编译,静态库,动态库
一 代码 //add.h int add(int a, int b); //add.c int add(int a, int b) { return a+b; } //main.c #incl ...
- C#修改GIF大小同时保持GIF仍然可动和背景透明
/// <summary> /// 设置GIF大小 /// </summary> /// <param name="path">图片路径< ...
- angular学习笔记(十四)-$watch(4)
如果需要同时监测多个属性或者对象,并且执行的是同样的回调,可以有两种选择: 1. 监测这些属性连接起来之后的值: $scope.$watch('objOne.a+objTwo.b+...', watc ...
- Oracle PLSQL Demo - 31.执行动态SQL拿一个返回值
DECLARE v_sql ) := ''; v_count NUMBER; BEGIN v_sql := v_sql || 'select count(1) from scott.emp t'; E ...
- py自动化之环境配置
1,官网下载py,点击安装,配置环境变量 2,下载setuptools,用于安装pip (python setup.py install) 3,下载pip,用于安装selenium(pip insta ...
- 旋转加载loading和点点加载loadingdemo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- navicat编辑记录 (zhuan)
https://www.navicat.com.cn/manual/online_manual/cn/navicat/linux_manual/EditRecord.html ************ ...