一、函数

MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。

(一)数学函数

函数

功能

ABS(x)

求绝对值

PI()

返回圆周率

SQRT(x)

平方根函数

MOD(x,y)

求余函数

RAND()和RAND(x)

获取随机数的函数

ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)

四舍五入函数

SIGN(x)

符号函数

POW(x,y)、POWER(x,y)和EXP(x)

幂运算函数

LOG(x)和LOG10(x)

对数运算函数

(二)字符串函数

函数

功能

CHAR_LENGTH(s)

计算字符串s的字符数

LENGTH(s)

计算字符串s的长度

CONCAT(s1,s2,...)

将s1、s2等多个字符串合并成一个字符串

CONCAT_WS(x,s1,s2,...)

将s1、s2等多个字符串合并成一个字符串,但可将各字符串直接用参数x隔开

UPPER(s)和UCASE(s)

将字符串s的所有字母变成大写字母

LOWER(s)和LCASE(s)

将字符串s的所有字母变成小写字母

REPEAT(s,n)

将字符串s重复n次

STRCMP(s1,s2)

比较字符串s1和s2。如果s1大于s2,结果返回1;如果s1等于s2,结果返回0;如果s1小于s2,结果返回-1。

REVERSE(s)

将字符串s的顺序反过来

SUBSTRING(s,a,b)

从字符串s中的第a个字符开始取b个字符

(三)日期和时间函数

函数

功能

CURDATE()和CURRENT_DATE()

获取当前日期

CURTIME()和CURRENT_TIME()

获取当前时间

NOW()、CURRENT_TIMESTAMP()、LOCALTIME()和SYSDATE()

获取当前的日期和时间

UNIX_TIMESTAMP()

以UNIX时间戳的形式返回当前时间

UNIX_TIMESTAMP(d)

将时间d以UNIX时间戳的形式返回

FROM_UNIXTIME(d)

把UNIX时间戳的时间转换为普通格式的时间

MONTH(d)

返回日期d中的月份值,其取值范围是1~12

MONTHNAME(d)

返回日期d中的月份的英文名称

YEAR(d)

返回日期d中的年份值

QUARTER(d)

返回日期d是本年第几季度,值的范围是1~4

HOUR(t)

返回时间t中的小时值

MINUTE(t)

返回时间t中的分钟值

SECOND(t)

返回时间t中的秒钟值

(四)条件判断函数

函数

功能

IF(expr,v1,v2)

如果表达式expr成立,返回结果v1;否则,返回结果v2。

IFNULL(v1,v2)

如果v1的不为空,就显示v1的值;否则就显示v2的值。

(五)系统信息函数

函数

功能

VERSION()

返回数据库的版本号

CONNECTION_ID()

返回服务器的连接数,也就是到现在为止MySQL服务的连接次数

DATABASE()和SCHEMA()

返回当前数据库名

USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()和CURRENT_USER

返回当前用户的名称

LAST_INSERT_ID()

返回最后生成的AUTO_INCREMENT值

(六)加密函数

函数

功能

PASSWORD(str)

可以对字符串str进行加密

MD5(str)

可以对字符串str进行加密

DECODE(crypt_str,pswd_str)

可以使用字符串pswd_str来为crypt_str解密

二、自定义函数

(一)语法

Create function function_name(参数列表)returns返回值类型

(二)叙述

函数体、函数名,应合法的标识符,不应与系统关键字冲突。

一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库。

参数部分,由参数名和参数类型组成。

返回值类类型。注意,一定要有return返回值语句。

(三)举例

DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `ZZZ1`(PARA_VAR varchar(30))

RETURNS varchar(100) CHARSET latin1

BEGIN

DECLARE NAYIBU_FIR VARCHAR(30) DEFAULT 'THIS IS MY FIRST,';

SET NAYIBU_FIR = concat(NAYIBU_FIR,PARA_VAR);

RETURN NAYIBU_FIR;

END$$

(四)查看自定函数

show function status;

三、事务

应用中的一个业务逻辑,往往由多条语句组合完成。那么我们就可以简单地将事务理解为一组SQL语句的集合,要么这个集合全部成功集合,要么这个集合就全部失败退回到第一句之前的状态。

(一)语法

开启事务start transaction,可以简写为 begin

然后记录之后需要执行的一组sql

提交commit

如果所有的sql都执行成功,则提交,将sql的执行结果持久化到数据表内。

回滚rollback

如果存在失败的sql,则需要回滚,将sql的执行结果,退回到事务开始之时。

无论回滚还是提交,都会关闭事务!需要再次开启,才能使用。

还有一点需要注意,就是事务只针对当前连接。

(二)举例

使用第一个链接A

Start transaction;

Insert into students values('qreal',5);

结果成功,数据已经变成修改之后!但此时我们没有提交。再从其他连接B来查看,发现数据没有插入。此时如果连接A选择提交,也就是commit操作。则连接B的数据也会发生变化。而如果连接A选择回滚,也就是rollback操作。则连接A再次查询则发现数据还原。

(三)基本原理

提交,就会将结果持久化,不提交就不会。如果我们不开启事务,只执行一条sql,马上就会持久化数据,可以看出,普通的执行就是立即提交。这是因为MySQL默认对sql语句的执行是自动提交的。也就是说,开启事务,实际上就是关闭了自动提交的功能,改成了commit手动提交!

我们可以通过简单的对是否自动提交加以设置,完成开启事务的目的!

自动提交的特征是保存在服务的一个autocommit的变量内。可以进行修改:

Set autocommit = 0;

还需要注意一点,就是事务类似于外键约束,只被innodb引擎支持。

(四)事务的特点

事务的特点ACID。也就是原子性、一致性、隔离性和持久性。

原子性:事务是不可分割的。

一致性:保证数据在事务的执行周期内,是一致的!

隔离型:多个事务之间的干扰关系!隔离级别!

持久性:事务一旦被提交,就不可能再被回滚!

mysql 函数事务_MySQL:函数和事务相关推荐

  1. mysql函数大全最小,MySQL函数一览_MySQL函数全部汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...

  2. mysql中的事务_mysql中的事务,你理解嘛?

    事务又叫做TCL,全称是transaction control language,意思是事务控制语言.这篇文章还是属于我的mysql基础文章,在前面我们介绍了下面这些基础知识: 1.数据库的增查改删操 ...

  3. mysql xa 事务_MySQL的XA事务问题分析

    mysql5.7以后的版本支持了xa prepare事务的持久化,这使得基于mysql xa的分布式事务方案变的可行.但mysql目前的XA实现在极端故障场景下是会出现事务丢失或innodb数据与bi ...

  4. mysql函数示例_mysql函数备忘单和示例

    mysql函数示例 There are a ton of functions provided by MySQL and most of them are used extensively. I wi ...

  5. mysql xid原理_MySQL数据库分布式事务XA实现原理分析

    [IT168 技术]MySQL XA原理 MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布 ...

  6. mysql function加速_MySQL - 函数(FUNCTION)

    about MySQL提供了丰富的内置函数自定义函数. 而我们也对这些函数有所了解,比如聚合函数. 本篇再来了解一些内置函数和自定义函数的编写. 写在前面的话:默认情况下,函数名称和其后的括号之间必须 ...

  7. mysql 活跃事务_MySQL日志与事务

    整体架构 事务的基本概念 事务就是一组原子性的sql查询,或者是一个独立的工作单元 事务内的语句,要么全部执行成功,要么全部执行失败 ACID标识原子性(atomicity).一致性(consiste ...

  8. mysql开启事务_MySQL入门之事务(上)

    事务 事务介绍 事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功 数据库开启事务命令 start transaction 开启事务 (等同于set autoco ...

  9. mysql xa 演示_mysql的XA事务恢复过程详解

    mysql数据库开机报错: InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequenc ...

  10. mysql函数使用_mysql函数应用

    昨天测试时发现大佬暴力修改了数据库的某些字段,导致无法人员注册,按理说屏蔽关键信息应该是只将身份证的几位改为*就好. 为了继续测试,自力更生,寻求正确的sql语句修改,学习到一些方便的函数 conca ...

最新文章

  1. Python组合数据类型之序列类型
  2. ClickHouse系列教程
  3. GitHub优秀开源项目收集
  4. springboot使用webjars引入jquery
  5. 光纤传感器实验模块_准分布式光纤光栅传感器(光纤光栅串)的概念
  6. IOS开发之MD5加密和钥匙串的使用-oc
  7. easy-ui的datagrid
  8. launchpad乐器_请把《明日之子》里徐洋称为哆啦A洋,还有什么乐器是你不会的?...
  9. [Python3] 面向对象编程
  10. 吞吐量、响应时间和 CPU 利用率之间的关系
  11. vue中的事件修饰符.self、.capture和.passive
  12. 界门纲目科属种的英文——学生物的基础
  13. 大神带你秒懂Modbus通信协议
  14. 模仿微信九宫格图片展示控件
  15. 015 Django 云笔记项目(可以略过)
  16. 广州红海云计算股份有限公司获全球软件最高级别CMMI5认证
  17. 配置静态NAT和配置动态NAT
  18. 华为鸿蒙和美的,美的与华为鸿蒙合作,为智能家居领域带来更深度的场景与服务...
  19. DTOJ 1486:分数(score)
  20. 我只是一名创业者,不是成功者

热门文章

  1. CWP中的排序算法:C语言
  2. 欧拉和格拉斯曼解释平行宇宙
  3. java集合的扩容研究
  4. mysql 备份表_Mysql 表的备份与恢复
  5. 计算机应用技术爱岗敬业,高职专业人才培养方案(计算机应用技术).doc
  6. Unity3d暴风魔镜发布ios问题记录
  7. Leecode刷题热题HOT100(4)——寻找两个正序数组的中位数
  8. OpenShift 4 - Fedora CoreOS (2) - 准备 Fedora CoreOS 安装环境的三个工具
  9. 在MySQL中使用游标和for循环
  10. 边缘设备上的实时AI人员检测:以实时模式检测视频中的人员