国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)

這篇具有很好參考價值的文章主要介紹了【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)

??引言

???♂?作者簡介:生魚同學,大數(shù)據(jù)科學與技術(shù)專業(yè)碩士在讀?????,曾獲得華為杯數(shù)學建模國家二等獎??,MathorCup 數(shù)學建模競賽國家二等獎??,亞太數(shù)學建模國家二等獎??。

??研究方向:復雜網(wǎng)絡科學

??興趣方向:利用python進行數(shù)據(jù)分析與機器學習,數(shù)學建模競賽經(jīng)驗交流,網(wǎng)絡爬蟲等。

事務是一組操作的集合,其會把所有的操作作為一個整體提交或者撤銷。

在本文中,我們將會對SQL中的事務進行介紹與演示,話不多說,我們開始吧。

??事務

??事務的概念

為了更好的了解事務的概念,我們看下面這個例子。

假設A要給B轉(zhuǎn)賬100元,此時我們需要進行如下三個操作:

  • 查詢A的賬戶余額
  • A賬戶余額-100
  • B賬戶余額+100

而這種操作必須一次性完成,如果整個操作中途出現(xiàn)了問題那么就應該立即回滾,停止所有的賬戶操作。

如果上述操作沒有停止,那么將會導致有不可與預知的錯誤。
【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)
SQL中也支持這種將很多操作集中在一起的方式就是事務,接下來我們看事務的操作。

??事務操作

??查看與設置事務提交方式

在SQL中默認事務時自動提交的,所以當我們編寫SQL的語句時,默認其就是一個事務。我們可以通過語句來查詢事務的提交方式并修改它,代碼如下:

SELECT @@AUTOCOMMIT;

【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)
可以看到,默認的提交方式為1,也就是自動提交。

特別的,我們可以對其進行修改為手動提交,代碼如下:

SET @@AUTOCOMMIT = 0;

【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)

??提交事務與回滾事務

在更改為手動提交事務后,我們就需要手動的通過命令來進行事務的提交與回滾,代碼如下:

# 提交事務
COMMIT;
# 回滾事務
ROLLBACK;

接下來,我們就進行事務提交與回滾的演示。首先我們建立一個賬戶余額表并為其添加兩條數(shù)據(jù),代碼如下:

CREATE TABLE MONEY(
NAME VARCHAR(10) NOT NULL,
MONEY INT DEFAULT 0
);

INSERT INTO MONEY (NAME,MONEY) VALUES('TOM',1000),('JANE',1000);

結(jié)果如下:
【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)
假設我們需要把TOM的余額修改為2000,此時我們在控制臺1進行下面的操作:

update money set money = 2000 where name = 'TOM';

在我們查詢表中的值的時候出現(xiàn)了下面的結(jié)果,可是我們真的修改成功了嗎?
【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)
這時我們打開控制臺2,繼續(xù)查詢上述相同的內(nèi)容結(jié)果如下:
【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)
顯然,我們剛才修改的結(jié)果還沒有真正上傳到數(shù)據(jù)庫,而是在控制臺1中執(zhí)行了。此時我們就需要COMMIT;來完成控制臺1的事務。

此時我們在控制臺1中COMMIT提交我們的事務,這就能夠在控制臺2查詢到我們的修改了。

【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)
另外,我們也可以不使用SET @@AUTOCOMMIT設定事務狀態(tài),可以使用下面的開啟事務代碼代替:

# 開啟事務
START TRANSACTION;
# 提交事務
COMMIT;
# 回滾事務
ROLLBACK;

下面我們就利用上述的代碼來示范一下事務回滾,假設還是上述相同的情況,這次我們希望需要把JANE的余額修改為2000。為了演示方便,我們將在兩個控制臺中演示上述操作:
【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)
可以看到,我們在左邊的控制臺1進行了更新操作,而控制臺2還沒有收到更新操作,這是因為我們在控制臺1中開啟了事務。與此同時,雞舍我們想要放棄上述的操作而取消事務的進行,可以使用ROLLBACK進行回滾,這樣不會對數(shù)據(jù)庫中的數(shù)據(jù)有任何影響。

【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)

??事務的特性

  • 原子性:事務是不可分割的最小操作單元,要么全部成功,要么全部失敗
  • 一致性:事務完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。
  • 隔離性:數(shù)據(jù)庫系統(tǒng)提供的隔離機制,保證事務在不受外部并發(fā)操作影響的獨立環(huán)境下運行
  • 持久性:事務一旦提交或回滾,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就是永久的。

??并發(fā)事務問題

  • 臟讀:個事務讀到另外一個事務還沒有提交的數(shù)據(jù) 。
  • 不可重復讀:一個事務先后讀取同一條記錄,但兩次讀取的數(shù)據(jù)不同,稱之為不可重復讀。
  • 幻讀:一個事務按照條件查詢數(shù)據(jù)時,沒有對應的數(shù)據(jù)行,但是在插入數(shù)據(jù)時,又發(fā)現(xiàn)這行數(shù)據(jù)已經(jīng)存在。

??事務隔離級別

為了處理上述的并發(fā)事務級別,我們可以對事務進行事務級別的更改,SQL中的事務隔離級別種類如下所示:

隔離級別 臟讀 不可重復讀 幻讀
Read uncommitted —— —— ——
Read committed —— —— 解決
Repeatable Read(默認) —— 解決 解決
Serializable 解決 解決 解決

我們可以下面的代碼查看事務隔離級別或者設置事務隔離級別:

# 查看事務隔離級別
SELECT @@TRANSACTION ISOLATION
# 設置事務隔離級別
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL  {READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE}

??總結(jié)

本次列舉了SQL中常用事務相關(guān)語句,在實際學習的過程中還需要多學習以及使用才能熟練掌握。

余下的SQL內(nèi)容我也將持續(xù)更新,如果感興趣的話不妨訂閱本專欄或者點個關(guān)注,我們下次再見。文章來源地址http://www.zghlxwxcb.cn/news/detail-422569.html

到了這里,關(guān)于【建議收藏】數(shù)據(jù)庫 SQL 入門——事務(內(nèi)附演示)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 序列號及序列號生成器(號段模式,數(shù)據(jù)庫模式)詳細介紹(建議收藏)

    現(xiàn)如今,數(shù)據(jù)的唯一性和可追溯性變得越來越重要。從簡單的數(shù)據(jù)庫主鍵到復雜的分布式系統(tǒng),唯一標識符在各種場景中都發(fā)揮著關(guān)鍵作用。序列號,作為一種廣泛應用的唯一標識符,為我們提供了確保數(shù)據(jù)完整性和一致性的基礎。在這個背景下,高效、可靠的序列號生成器

    2024年02月03日
    瀏覽(93)
  • SQL筆記(1)——MySQL創(chuàng)建數(shù)據(jù)庫(收藏吃灰版)

    SQL筆記(1)——MySQL創(chuàng)建數(shù)據(jù)庫(收藏吃灰版)

    本文詳細記錄MySQL創(chuàng)建一個數(shù)據(jù)庫的過程,不只是構(gòu)建步驟,更多的是每一步涉及到的知識點。一般創(chuàng)建數(shù)據(jù)庫有兩種方式,一種是命令,另外一種就是通過數(shù)據(jù)庫管理工具,本文主要記錄通過命令的方式創(chuàng)建; 后面的學習也都是基于這個數(shù)據(jù)庫進行的; 創(chuàng)建一個大學生成績

    2024年02月08日
    瀏覽(23)
  • Sql Server 數(shù)據(jù)庫事務與鎖,同一事務更新又查詢鎖?期望大家來解惑

    Sql Server 數(shù)據(jù)庫事務與鎖,同一事務更新又查詢鎖?期望大家來解惑

    我有一個People表,有三行數(shù)據(jù): 如果我們沒詳細了解數(shù)據(jù)庫事務執(zhí)行加鎖的過程中,會不會有這樣一個疑問:如下的這段 SQL 開啟了事務,并且在事務中進行了更新和查詢操作。 我們知道sql server數(shù)據(jù)庫的默認事務級別是READ COMMITTED(已提交的讀取),我們再看一下已提交讀事

    2024年02月01日
    瀏覽(24)
  • Sql Server 數(shù)據(jù)庫事務與鎖,同一事務更新又查詢鎖的變化,期望大家來解惑!

    Sql Server 數(shù)據(jù)庫事務與鎖,同一事務更新又查詢鎖的變化,期望大家來解惑!

    我有一個People表,有三行數(shù)據(jù): 如果我們沒詳細了解數(shù)據(jù)庫事務執(zhí)行加鎖的過程中,會不會有這樣一個疑問:如下的這段 SQL 開啟了事務,并且在事務中進行了更新和查詢操作。 我們知道sql server數(shù)據(jù)庫的默認事務級別是READ COMMITTED(已提交的讀?。?,我們再看一下已提交讀事

    2024年02月01日
    瀏覽(65)
  • C# 從代碼入門 Mysql 數(shù)據(jù)庫事務

    C# 從代碼入門 Mysql 數(shù)據(jù)庫事務

    在業(yè)務開發(fā)中,使用數(shù)據(jù)庫事務是必不可少的。而開發(fā)中往往會使用各種 ORM 執(zhí)行數(shù)據(jù)庫操作,簡化代碼復雜度,不過,由于各種 ORM 的封裝特性,開發(fā)者的使用方式也不一樣,開發(fā)者想要了解 ORM 對事務做了什么處理是比較難的。因此,本文介紹數(shù)據(jù)庫事務基礎、Ado.net 事務

    2024年02月04日
    瀏覽(20)
  • 【SQL Server】數(shù)據(jù)庫開發(fā)指南(八)高級數(shù)據(jù)處理技術(shù) MS-SQL 事務、異常和游標的深入研究

    【SQL Server】數(shù)據(jù)庫開發(fā)指南(八)高級數(shù)據(jù)處理技術(shù) MS-SQL 事務、異常和游標的深入研究

    本系列博文還在更新中,收錄在專欄:#MS-SQL Server 專欄中。 本系列文章列表如下: 【SQL Server】 Linux 運維下對 SQL Server 進行安裝、升級、回滾、卸載操作 【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設計的核心概念和基本步驟 【SQL Server】數(shù)據(jù)庫開發(fā)指南(二)MSSQL數(shù)據(jù)庫開發(fā)對

    2024年02月07日
    瀏覽(104)
  • 【七天入門數(shù)據(jù)庫】第七天 MySQL的事務管理

    【七天入門數(shù)據(jù)庫】第一天 MySQL的安裝部署 【七天入門數(shù)據(jù)庫】第二天 數(shù)據(jù)庫理論基礎 【七天入門數(shù)據(jù)庫】第三天 MySQL的庫表操作 【七天入門數(shù)據(jù)庫】第四天 數(shù)據(jù)操作語言DML 【七天入門數(shù)據(jù)庫】第五天 MySQL的備份恢復 【七天入門數(shù)據(jù)庫】第六天 MySQL的視圖與索引 【七天

    2024年02月15日
    瀏覽(90)
  • 輕松入門MySQL:深入學習數(shù)據(jù)庫表管理,創(chuàng)建、修改、約束、建議與性能優(yōu)化(3)

    在項目中,正確設置數(shù)據(jù)表的限定條件是數(shù)據(jù)存儲過程中的關(guān)鍵一步。我們頻繁需要創(chuàng)建和修改表以管理各種業(yè)務數(shù)據(jù)。讓我們深入學習創(chuàng)建和修改數(shù)據(jù)表的方法,以產(chǎn)品信息表( product_info )為例。 創(chuàng)建數(shù)據(jù)表 首先,讓我們了解產(chǎn)品信息表的結(jié)構(gòu): product_id product_name cate

    2024年02月20日
    瀏覽(18)
  • 異地訪問Oracle數(shù)據(jù)庫的解決方案:利用內(nèi)網(wǎng)穿透實現(xiàn)PL/SQL遠程連接的建議與步驟

    異地訪問Oracle數(shù)據(jù)庫的解決方案:利用內(nèi)網(wǎng)穿透實現(xiàn)PL/SQL遠程連接的建議與步驟

    ? 小月糖糖主頁 在強者的眼中,沒有最好,只有更好。 移動開發(fā)領域優(yōu)質(zhì)創(chuàng)作者,阿里云專家博主 Oracle,是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng),它在數(shù)據(jù)庫領域一直處于領先地位。可以說Oracle數(shù)據(jù)庫系統(tǒng)是世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便

    2024年02月11日
    瀏覽(21)
  • 數(shù)據(jù)庫入門-----SQL基礎知識

    數(shù)據(jù)庫入門-----SQL基礎知識

    目錄 ??前言: ??SQL概述通用語法: ???DDL: ??操作數(shù)據(jù)庫: ??數(shù)據(jù)類型: ???操作表: ??DML: 語法規(guī)則: 案例演示: ??DQL: 語法規(guī)則: 案例演示: # 基礎查詢: ?# 條件查詢: ?#聚合函數(shù): ?# 分組查詢: ?#排序查詢: ?#分頁查詢: ?執(zhí)行順序: ??DCL: 語法規(guī)則:

    2024年04月10日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包