(四)SQL入门 数据库的操作与事务管理
数据库的操作,有三个最基本的语句,insert插入,update修改,delete删除。
不同的数据库厂商的实现可能不同,所以就不说具体的语法怎么写的了。说语法也没有意义,到处都可以复制粘贴,记得听某个视频,里面说,当程序员很简单,就是Ctrl+C,Ctrl+V。
知道了数据库操作的三个基本操作,下面说说一个新的名词。事务。
什么是事务呢?之前我在绵阳去新的地方上班的时候,那个时候,那个时候,我还不知道什么是事务,现在上班的地方有个同事毕业半年多了,已经转正了,貌似也不知道。这个名称呢,听上去会有种高大上,或者很深奥的感觉给人,其实不是,事务很好理解。事务就是人们想把一个或几个操作合在一起,把它在计算机里实现成了“一个操作”,那么对于这个整体的操作,只有两种结果,要么操作成功,要么操作失败,不会存在成功了一半,比如A B C三个操作,被定义成了一个事务操作 D,那么完成D,其实就完成了ABC三个操作,但是又有区别,区别在于把部分成功也划分到不成功里去了。
关于事务的管理呢,主要涉及到三个单词,Commit提交,Rollback返回,SavePoint保存点。当人们想往数据库里进行添加数据、或修改数据、或删除数据、或这几个操作进行不同的组合的时候,数据的操作其实并没有直接将数据库里的数据进行修改了,而是将数据的要修改的行为保存在了数据库里有个被称为临时回退区的地方,在这个地方,这些行为将有两个不同的选择,要么被提交、要么被返回。如果提交了,那么这些行为会真正的修改了数据库里的数据,如果回退了,也就是返回了,那么数据库里的数据将不会被修改,而且临时回退区里那个准备去修改的行为也会被释放掉,也就是临时回退区会被清空,当然,提交后,临时回退区也会被清空的。这个SavePoint保存带你的作用呢,就是将事务里的很多操作进行分组,这样更加利于管理,当你需要返回到某个事务点的时候,就可以时候RollBack to SavePoint,这样无需返回整个事务。
如果数据库事务没有进行管理的话,将会存在一个很大的风险,就是当有大量的数据进行插入、修改、删除的时候,临时回退区里充满了跃跃欲试的行为,这些行为如果没有得到及时的处理,也就是要么提交,要么返回的处理的时候,临时回退区就会不断的填充、不断的填充,知道某个时候,导致临时回退区的内存完全被占用完,这个时候,数据库就崩溃了。
(四)SQL入门 数据库的操作与事务管理的更多相关文章
- MySQL基础学习——SQL对数据库进行操作、对数据库的表进行操作
1.SQL对数据库进行操作: 创建数据库: 语法: create database 数据库名称 [character set 字符集 collate 字符集校对规则];字符集校对规则即所用字符集的数据 ...
- 纯C++ 连接SQL Server2005 数据库读写操作的小例子
一个测试c++链接 sql server 数据库的例子// 数据库说明// 数据库用户为 sa , 密码为 空// 数据库为 MyDB// 表为 UserInfo// 表字段为 Name . Pass ...
- SQL Server数据库远程操作
SQL Server数据库远程操作中,在使用openrowset/opendatasource前首先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServ ...
- Spring Boot学习——数据库操作及事务管理
本文讲解使用Spring-Data-Jpa操作数据库. JPA定义了一系列对象持久化的标准. 一.在项目中使用Spring-Data-Jpa 1. 配置文件application.properties ...
- Redis数据库之KEY的操作与事务管理
目的 了解并掌握各种数据类型的命令操作方式,以及各种数据类型值的操作方式.同时,主要培养对KEY的操作命令运用的能力.重点掌握对KEY信息的管理.事务常规管理和事务回滚操作. KEYS命令的练习,对K ...
- 四、spring的JDBC模板和事务管理
Spring的JDBC模板 Spring是JavaEE开发的一站式框架,对各种持久化技术都提供了简单的模板 ORM持久化技术 模板类 JDBC org.springframework.jdbc.cor ...
- SQL入门之集合操作
尽管可以在与数据库交互时一次只处理一行数据,但实际上关系数据库通常处理的都是数据的集合.在数学上常用的集合操作为:并(union),交(intersect),差(except).对于集合运算必须满足下 ...
- (五)SQL入门 数据库查询
什么是查询?查询就是Select语句对数据库的探究. 查询是一种目的,一种需求,一种期望.是Select语句去实现的.Select语句不是只是指select语句,而是多个子句一起使用得组合. sele ...
- (三)SQL入门 数据库规格化简介
什么是数据库的规格化呢,说白了就是为了去除数据库冗余.为了数据库更加容易管理而将大表按照逻辑划分为小表的过程. 什么是数据库的去规格化呢,就是规格化的反面.那么你可能就会问,既然上面说了数据库的规格化 ...
随机推荐
- MongoDB基本使用
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示 ...
- Python实战:扫描key完整性
之前在国际版本中,需要支持中英文切换功能,在如此繁多的源文件里要查找源文件里的key是语言资源包是否对应. 正好运用在之前学的python,写了个工具,支持自定义替换标签,批量处理源文件.现在看来,效 ...
- React独立组件间通信联动
React是现在主流的高效的前端框架,其官方文档 http://reactjs.cn/react/docs/getting-started.html 在介绍组件间通信时只给出了父子组件间通信的方法,而 ...
- MySQL Replication需要注意的问题
MySQL Replication 大家都非常熟悉了,我也不会写怎么搭建以及复制的原理,网上相关文章非常多,大家可以自己去搜寻.我在这里就是想总结一下mysql主从复制需要注意的地方.有人说主从复制很 ...
- 重学ps_1
1,选取 打开图片->点击选取工具->ctrl+c->ctrl+n->ctrl+v 2,去除图片背景 打开你要去除背景的图片->在图层面板中->双击图层把图层改为0 ...
- DB Connection String
SQL: Data Source=APGZDB04;Initial Catalog=ChinaEDI;Persist Security Info=True;User ID=edi_ac;Passwor ...
- 总结-php
strtr('li.a-o_lo.n_g-jun', '-_.', '+/=') 好高级啊 在tomcat里使用php用quercus PHP in java http://quercus.cau ...
- Blog 公用部分结构与class定义
/*博客文章公用部分class与结构 common*/ /* 1.title-block //标题块 ├── border-danger //危险红 ├── border-info //普通蓝 └── ...
- HTML表单
表单的主要作用在于在网页上提供一个图形用户界面,以采集和提交用户输入的数据.使用输入控件:1.文本框<input type="text">:2.口令输入框input t ...
- cookie的session_id解释
HTTP协议(http://www.w3.org/Protocols/)是“一次性单向”协议. 服务端不能主动连接客户端,只能被动等待并答复客户端请求.客户端连接服务端,发出一个HTTP Reques ...