赣州做网站的公司,青提wifi小程序开发教程,房屋装修公司,灰色项目源码文章目录 前言MySQL 正则表达式MySQL 事务事务控制语句事务处理方法PHP中使用事务实例 后言 前言 hello world欢迎来到前端的新世界 #x1f61c;当前文章系列专栏#xff1a;Mysql #x1f431;#x1f453;博主在前端领域还有很多知识和技术需要掌握#xff0c;正在不… 文章目录 前言MySQL 正则表达式MySQL 事务事务控制语句事务处理方法PHP中使用事务实例 后言 前言 hello world欢迎来到前端的新世界 当前文章系列专栏Mysql 博主在前端领域还有很多知识和技术需要掌握正在不断努力填补技术短板。(如果出现错误感谢大家指出) 感谢大家支持您的观看就是作者创作的动力 MySQL 正则表达式
在前面的章节我们已经了解到MySQL可以通过 LIKE …% 来进行模糊匹配。
MySQL 同样也支持其他正则表达式的匹配 MySQL中使用 REGEXP 操作符来进行正则表达式匹配。
如果您了解PHP或Perl那么操作起来就非常简单因为MySQL的正则表达式匹配与这些脚本的类似。
下表中的正则模式可应用于 REGEXP 操作符中。 实例 了解以上的正则需求后我们就可以根据自己的需求来编写带有正则表达式的SQL语句。以下我们将列出几个小实例(表名person_tbl )来加深我们的理解
查找name字段中以’st’为开头的所有数据
mysql SELECT name FROM person_tbl WHERE name REGEXP ^st;查找name字段中以’ok’为结尾的所有数据
mysql SELECT name FROM person_tbl WHERE name REGEXP ok$;查找name字段中包含’mar’字符串的所有数据
mysql SELECT name FROM person_tbl WHERE name REGEXP mar;查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据
mysql SELECT name FROM person_tbl WHERE name REGEXP ^[aeiou]|ok$;MySQL 事务
MySQL 事务主要用于处理操作量大复杂度高的数据。比如说在人员管理系统中你删除一个人员你即需要删除人员的基本资料也要删除和该人员相关的信息如信箱文章等等这样这些数据库操作语句就构成一个事务
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性保证成批的SQL语句要么全部执行要么全部不执行。事务用来管理 insert , update , delete 语句。
一般来说事务是必须满足4个条件ACID Atomicity原子性或不可分割性、Consistency一致性、Isolation隔离性或独立性、Durability持久性
原子性一组事务要么成功要么撤回即事务在执行过程中出错会回滚到事务开始前的状态。一致性 一个事务不论是开始前还是结束后数据库的完整性都没有被破坏。因此写入的数据必须完全符合所有预设规则资料精确度、串联性以及后续数据库能够自发完成预定工作。隔离性数据库允许多个事务并发的同时对其数据进行读写修改等操作隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离可分为Read uncommitted读未提交、Read committed读提交、Repeatable read可重复读、Serializable串行化。持久性事务在处理结束后对数据做出的修改是永久的无法丢失。
事务控制语句
1显式的开始一个事务
start transaction或
begin2, 做保存点一个事务中可以有多个保存点
savepoint 保存点名称3, 提交事务并使数据库中进行的所有修改成为永久性的
commit
或
commit work4回滚结束用户的事务并撤销正在进行的所有未提交的修改
rollback
或
rollback work5.删除一个事务的保存点若没有指定保存点执行该语句操作会抛错。
release savepoint 保存点名称6.将事务滚回标记点
rollback to 标记点7.设置事务的隔离级别。InnoDB 存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIZABLE。
set transaction事务处理方法 用 begin rollback commit 来实现事务处理。 用 set 来改变 MySQL 的自动提交模式。 set autocommit 0 禁止自动提交。set autocommit 1 开启自动提交。
PHP中使用事务实例
?php
$handlermysql_connect(localhost,root,password);
mysql_select_db(task);
mysql_query(SET AUTOCOMMIT0);//设置为不自动提交因为MYSQL默认立即执行 mysql_query(BEGIN);//开始事务定义
if(!mysql_query(insert into trans (id) values(2)))
{
mysql_query(ROOLBACK);//判断当执行失败时回滚
}
if(!mysql_query(insert into trans (id) values(4)))
{
mysql_query(ROOLBACK);//判断执行失败回滚
}
mysql_query(COMMIT);//执行事务
mysql_close($handler);
?后言 创作不易要是本文章对广大读者有那么一点点帮助 不妨三连支持一下您的鼓励就是博主创作的动力