(四)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入门 数据库规格化简介
什么是数据库的规格化呢,说白了就是为了去除数据库冗余.为了数据库更加容易管理而将大表按照逻辑划分为小表的过程. 什么是数据库的去规格化呢,就是规格化的反面.那么你可能就会问,既然上面说了数据库的规格化 ...
随机推荐
- python 之sqlalchemy many to many
# -*- coding: utf-8 -*- """ @author: zengchunyun """ from sqlalchemy i ...
- 移动手机端H5无缝间歇平滑向上滚动js代码
在没结合css3的transform实现平滑过渡前,我都是用的jquery的animate方法,此方法在PC端基本看不出来有稍微卡顿的现象,但是在性能不高的手机上使用该方法,就会有明显的卡顿现象,不够 ...
- 安装phonegap3.2
安装phonegap3.2,要用node.js,还要安装git
- cxf webservice简单应用
Server端 server部署到一个端口号为80的tomcat中 CXFController.java package com.lwj.controller; import java.io.IOEx ...
- 安卓初級教程(1):@Database(1)
package com.example.android.db01; import android.app.Activity; import android.content.ContentValues; ...
- 每天php函数 - 数组最后一个元素取出
复制代码代码如下: $array=array(1,2,3,4,5); echo $array[count($array)-1];//计算数组长度,然后获取数组最后一个元素,如果数组中最后一个元素 ...
- MVC中使用EF的技巧集
1.从数据库生成模型后,再次更新模型时,之前设置的验证规则会丢失. 解决方法:在Models文件夹中新建一个空白类,把它命名为shujuyanzh.cs(类名可以自定),然后把Models中自动生成的 ...
- sleep thread process
$str = 'w0'; for($w=0;$w<999999;$w++){ $sql = 'INSERT INTO w1 (wint,wchar) VALUES ('.$w.',"' ...
- ajax原理和跨域解决方法
ajax是异步的 JavaScript 和 XML.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 1--启动 ...
- jquety
.html() //能够获取元素里的内容包括标签: .text() //只能获取到元素里的内容 .val() //可以得到元素的value值 $(this).index() //得到点时间发生的 ...