/*
事务管理的原子性:
一致性:
一致性属性要保证如果从系统中删除一个员工,则所有和该员工相关的数据也要被删除
MYsql中,一致性主要由MYSQL的日志机制处理。
孤立性:
事务仅在自己的空间发生,孤立性保证了某个特定的食物在完全完成之前,其结果是看不见的
mysql使用页级锁定或者行级锁定来保证处理多个同时发生地事务安全,InnoDB表处理程序使用更好的行级锁定
持久性:
MySQL通过保存一条记录事务过程中系统变化的二进制事务日志文件来实现持久性
*/
/*
MySQL的InnoDB和BDB表类型生来就支持事务,也就是关于事务的命令只用于这两种表类型
MySQL中新表默认类型是MYISAM,
*/
CREATE TABLE table_name {field-definitions}TYPE = INNODB;
/*或者通过ALTER TABLE 命令修改表的类型 */
ALTER TABLE table_name TYPE = INNNODB;
/*MySQL提供了START TRANSACTION 命令来标记一个事务的开始
也可以使用BEGIN 或者BEGIN WORK 命令来初始化一个事务
*/
START TRANSACTION ;
/* 中间是SQL插入、删除、更新的语句
*/
ROLLBACK; --撤销所有的变化
COMMIT;--把整个事务保存在磁盘上
/*
事务在处理得过程中还没有保存在磁盘上,对于同一数据库的其他用户是不可见的。(但是可以设置孤立级)
*/
--MySQL使用了一个平面事务模型,第二个事务的开始时,自动提交第一事务
--下面MySQL命令运行时都会隐藏执行一个COMMIT命令
DROP DATABASE
DROP TABLE
CREATE INDEX
DROP INDEX
ALTER TABLE
RENAME TABLE
LOCK TABLES
UNLOCK TABLES
SET AUTOCOMMIT = 1;
/*控制事务行为
默认情况下,MySQL的SQL查询一旦被执行,就会自动向数据库提交结果。这就涉及到自动提交模式
也就是MySQL把每个查询语句作为一个事务来对待
当然,通过特定的AUTOCOMMIT变量进行修改,
*/
SET AUTOCOMMIT = 0 /*这样,表的更新将不会被保存,知道明确地发出一个COMMIT命令。
如果没有发布COMMIT,就终止了MySQL会话,数据库将自动执行ROLLBACK
*/
SET AUTOCOMMIT = 1 --MySQL将会自动发出一个COMMIT,同时保存所有开放的事务
/*事务孤立级
隔离在服务器上正在处理的不同的会话
*/
--四种孤立级
SERIALIZABLE(序列化)
REPEATABLE READ(可重复读)
READ COMMITTED (提交的读)
READ UNCOMMITTED(未提交的读)
--这些孤立级可以通过
TRANSACTION ISOLATION LEVEL
-- 变量来操作
分享到:
相关推荐
这篇教程“SQL课件--数据库全面学习”显然旨在提供一个全面的SQL学习资源,帮助初学者和有一定经验的开发者深入理解这一重要的数据库语言。下面将详细阐述SQL及与其相关的数据库原理与应用。 SQL的基本概念包括: 1...
4. 教学与学习:对于学习SQL的新手,SQL-Front提供了一个良好的实践环境,通过实际操作来理解SQL语句的执行逻辑和结果。 总的来说,SQL-Front 5.3是一款功能强大而又易于使用的SQL客户端工具,尤其适合那些需要频繁...
《SQL Server 2012数据库技术及应用》一书主要涵盖了数据库系统的基础知识和SQL Server 2012在实际应用中的各项技术。以下是基于提供的内容所涵盖的关键知识点: 1. **数据库系统认知**: - 数据库是用于存储、...
- 学习关系数据库设计,了解SQL Server 2000的技术应用。 - 学习编写简单的数据库应用程序,理解C/S(客户端/服务器)架构。 2. **设计环境**: - 硬件要求:处理器至少Intel Pentium 166 MHz,内存512M以上,...
总的来说,"SQL2005 数据库学习PPT"涵盖了SQL语言基础、数据库设计、管理、集成、报表和分析等多个方面,是全面学习SQL Server 2005的宝贵资源。通过深入学习,你可以掌握数据库开发、管理和优化的技能,为职业生涯...
本文旨在对SQL Server 2008这一重要版本进行知识梳理,从基础概念到具体应用,为数据库管理人员及学习者提供全面的参考资料。 数据库基础知识是理解和操作SQL Server 2008的前提。数据库系统由数据库、数据库管理...
4. **查询构建器**:对于不熟悉SQL的用户,SQL-Front提供了一个可视化的查询构建器,可以通过拖放字段和选择操作来生成查询,降低了SQL学习曲线。 5. **数据浏览和编辑**:用户可以直接在界面中查看和编辑数据库中...
《SQL与大型数据库:课程概览》 在IT领域,SQL(Structured Query Language)和大型数据库是不可或缺的基础知识。SQL是一种用于管理和处理关系型数据库的标准编程语言,而大型数据库则是存储海量数据并支持高并发...
"SQL语言-数据库课件"这个资源显然是为了帮助学习者深入理解和应用SQL。 SQL的主要功能包括数据查询、数据更新、数据插入以及数据删除。数据查询是其核心功能,通过SELECT语句可以从数据库中获取所需信息。例如,你...
通过上述实践,用户不仅能熟悉SQL-SERVER的使用环境,还能掌握数据库管理系统的基本操作,为进一步学习更高级的数据库管理和开发打下坚实基础。实验中的思考问题,如Access数据库的对象组成和SQL SERVER 2000的逻辑...
数据库 SQL备份和还原 , 数据库资料, MS SQL SERVER数据库置疑后恢复步骤 MSSQL中如何用SQL清除所有表的数据,SQL优化,配置SQL内存,利用触发器实现标识列连续,清理过大的日志文件
《SQL-Server数据库技术》是一门专为信息技术服务外包专业群设计的专业必修课程,旨在培养学生在数据库领域的知识积累和应用技能。课程内容涵盖了数据库的基本概念、设计原理、操作语句以及安全管理等方面,旨在使...
通过这两个实验,学习者将能够熟练掌握SQL-SERVER数据库管理系统的基础操作,为后续更复杂的数据库应用和开发奠定基础。同时,了解Access与SQL-SERVER的不同之处,有助于理解不同数据库系统的特点和适用场景。
Pubs数据库是一个典型的小型数据库,主要用于教学和学习SQL Server的基础操作,包括数据查询、表的创建、索引管理、视图、存储过程、触发器等。下面我们将深入探讨pubs数据库及其在SQL Server 2000中的应用。 1. **...
【郝斌老师-sql-server-2005数据库大纲】主要涵盖了数据库的基础概念、重要性、安装与卸载,以及数据库的学习方法。首先,我们来深入理解数据库的本质: 数据库,从狭义上讲,是存储数据的仓库,而广义上,它包括了...
5. pubs和northwind:示例数据库,供学习和演示用途。 数据库由数据库文件和事务日志文件组成。数据库文件存放数据和对象,而事务日志文件记录所有的事务操作,用于恢复和保证数据一致性。一个数据库至少需要一个...
以下将详细讲解如何使用C++通过ADO连接到SQL Server数据库,并基于提供的"ConnDatabase"源代码进行学习。 1. ADO简介:ADO是微软的组件对象模型(COM)接口,它提供了一种简单的方式来访问各种数据源,包括SQL ...
初步使用SQLSERVER2000需要学习基本的SQL语句和数据库操作。包括: * 创建数据库和表。 * 插入、更新和删除数据。 * 查询数据和执行存储过程。 在本文中,我们介绍了关系型数据库的基本概念、SQL语句的使用以及SQL...