SQL 事务及实例演示
就是事务执行后,保证数据库的所有数据都从一个状态到另一个状态。用上面的例子,可以这样理解,你上半身进了火车、坐好了;你的
简介
事务,英文名称是transaction。是在对数据库进行管理操作过程中一个逻辑单位,由有限的操作序列构成。其实这个概念很好懂,简单理解就是:事务就是在使用数据库中的一个操作,由一些操作放到一起构成一个完整的事务。例如:坐火车。假如坐火车只有两个动作,买票,上车;这样的话坐火车就需要两个操作来完成,买票、上车,现在将买票、上车都定义到这个坐火车的操作里面。这样的话就方便了,想坐火车就直接调用坐火车操作就完成坐火车的操作了。这里的坐火车就是一个事务,这里还有一种情况就是买票成功了,但是没有赶上火车,这时候我就需要把票给退了,退票这个操作就称为回滚。
特性
那到底什么才是数据库事务呢?就产生了数据库事务的四个特性,,通过这四个特性我们更好的理解事务,也能够反过来来辨别什么样的操作是事务。
数据库事务的特性简单来说就是ACID。
A(Atomic)翻译为中文就是原子性
原子就是不可分割(在最初的时期是这么理解的)。所以可以理解到事务就是一个整体,一旦执行就是执行整个事务,要么就不执行。
C(Consistency)一致性
就是事务执行后,保证数据库的所有数据都从一个状态到另一个状态。用上面的例子,可以这样理解,你上半身进了火车、坐好了;你的脚也要上火车、放好了(有点慎得慌)。但是是这个道理。
I(Isolation)隔离行
就是事务之间在执行的时候互补干扰,这里会提到一个并发控制的概念。什么是并发控制呢?并发控制就是针对并发操作对数据操作异常的控制。举个例子,又是买火车票;小林和小李都去网上买票,还剩5张,他俩11:11同时去买同一张,这样两个事务同时访问这个火车票,同时将剩余张改为4.这时候实际上卖了2张,实际上剩了3张,而数据库中为4张,这就造成了数据的异常。怎么处理呢?有一个办法,就是当你处理这个对象的时候,将这个对象锁定(lock),当完成事务后解锁(unlock)。只有当对象的状态为unlock的状态时,才能够对这个对象进行访问。说了多了啊,简单扩展一下。嘿嘿
D(Durability),持久性
这个就更容易理解了。简单理解就是你的对数据库的操作一定是可以永久存在数据中的。
通过上述的讲解,我们简单了解了事务和事务的回滚以及事务的特性。下面我们通过另一个简单的小例子来从代码层面上感受一下事务,顺便熟悉泛型的使用。
环境:vs 2010 sql 2008
项目测试:通过事务来更新、添加数据
创建数据库代码
create database login
use login
create table login
(
username varchar(20),
userpwd varchar(20),
userlevel varchar(20),
)
界面
超级简单的界面,为了整体性,还是上传下,嘿嘿
客户端代码
private void btnExcuteSQLs_Click(object sender, EventArgs e)
{
List
string strone = "insert into login values('aaa','aaa','aaa')";
string strtwo = "update login set userlevel ='12' where username='cfl' ";
strsql.Add(strone);
strsql.Add(strtwo );
try
{
ExcuteSQLs(strsql);
}
catch (Exception ee )
{
MessageBox.Show(ee.Message);
throw new Exception(ee.Message );
//MessageBox.Show(ee.Message );
}
}
public void ExcuteSQLs(List
{
//建立连接数据库
SqlConnection conn = new SqlConnection("server=“ip”;database=login;uid=sa;pwd=123456;");
//打开数据库
conn.Open();
//建立执行数据操作命令对象
SqlCommand cmd = new SqlCommand();
//将数据库连接对象赋值给命令对象
cmd.Connection = conn;
//执行事务
SqlTransaction tx = conn.BeginTransaction();
//将事务赋值给命令对象
cmd.Transaction = tx;
try
{
//通过for循环遍历在泛型中的sql语句
for (int i = 0; i {
string strsql = SQLStringList[i].ToString();
//当字符串不为空,则执行
if (strsql.Length >1)
{
//传入将要执行的sql语句
cmd.CommandText = strsql;
//执行无参数化查询
cmd.ExecuteNonQuery();
}
}
//事务提交
tx.Commit();
}
catch (System .Data.SqlClient .SqlException e)
{
throw new Exception (e.Message );
}
}

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

Oracle 中,FOR LOOP 循環可動態創建游標, 步驟為:1. 定義游標類型;2. 創建循環;3. 動態創建游標;4. 執行游標;5. 關閉游標。示例:可循環創建游標,顯示前 10 名員工姓名和工資。

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

Oracle 日誌文件寫滿時,可採用以下解決方案:1)清理舊日誌文件;2)增加日誌文件大小;3)增加日誌文件組;4)設置自動日誌管理;5)重新初始化數據庫。在實施任何解決方案前,建議備份數據庫以防數據丟失。

可以通過 EXP 實用程序導出 Oracle 視圖:登錄 Oracle 數據庫。啟動 EXP 實用程序,指定視圖名稱和導出目錄。輸入導出參數,包括目標模式、文件格式和表空間。開始導出。使用 impdp 實用程序驗證導出。

在CentOS系統上搭建Hadoop分佈式文件系統(HDFS)需要多個步驟,本文提供一個簡要的配置指南。一、前期準備安裝JDK:在所有節點上安裝JavaDevelopmentKit(JDK),版本需與Hadoop兼容。可從Oracle官網下載安裝包。環境變量配置:編輯/etc/profile文件,設置Java和Hadoop的環境變量,使系統能夠找到JDK和Hadoop的安裝路徑。二、安全配置:SSH免密登錄生成SSH密鑰:在每個節點上使用ssh-keygen命令

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

MySQL適合Web應用和內容管理系統,因其開源、高性能和易用性而受歡迎。 1)與PostgreSQL相比,MySQL在簡單查詢和高並發讀操作上表現更好。 2)相較Oracle,MySQL因開源和低成本更受中小企業青睞。 3)對比MicrosoftSQLServer,MySQL更適合跨平台應用。 4)與MongoDB不同,MySQL更適用於結構化數據和事務處理。
