事物就是一組dml語句組成,這些語句在邏輯上存在相關性,這一組dml語句要麼全部成功,要麼全部失敗,是乙個整體。mysql提供一種機制,保證我們達到這樣的效果,事務還規定不同的客戶端看到的資料是不相同的。
基本使用:
開始乙個事務:start transaction;
事務的隔離級別
當我們有多個客戶端同時運算元據庫的某張表,如何進行隔離操作?mysql提供了隔離級別。
當mysql 表被多個執行緒或者客戶端開啟各自事務運算元據庫中的資料時,mysql提供了一種機制,可以讓不同的事務在運算元據時,具有隔離性,可能會引發以下問題。
髒讀:乙個客戶端(事務)會讀取到另外乙個客戶端(事務)沒有提交的修改資料。
不可重複讀:同乙個查詢在同乙個事務中多次進行,由於其他提交事務所做的修改或刪除,每次返回不同的結果集,此時發生不可重複讀。
幻讀:同乙個查詢在同乙個事務中多次進行,由於其他提交事務所做的插入操作,每次返回不同的結果集,此時發生幻讀。
因為這裡不好用文字解釋,上課畫圖加敲命令操作account表進行演示。
3.事務的acid特性
1.原子性:指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。
2.一致性:事務必須使資料從乙個一致性狀態變到另外乙個一致性狀態。
3.隔離性:事務的隔離性是多個使用者併發訪問資料庫時,資料庫為每乙個使用者開啟的事務,不能被其他事務的運算元據所干擾,多個併發事務之間要相互隔離。
4.永續性:永續性是指乙個事務一旦被提交,它對資料庫中的修改就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響。
列表內容
檢視是乙個虛擬表,其內容由查詢定義。同真實的表一樣,檢視包含以系列帶有名稱的列和行資料。檢視的資料變化會影響到檢視。
建立檢視: create view 檢視名 as select 語句
刪除檢視:drop view 檢視名
檢視和表的區別:
表要占用磁碟空間,檢視不需要。
檢視不能新增索引
使用檢視可以簡化查詢
檢視可以提高安全性
mysql使用者管理
如果我們只能使用root使用者,這樣存在安全隱患,這時,就需要使用mysql的使用者管理。
mysql中的使用者,都儲存在系統資料庫mysql的user表中。
select host, user,password from mysql.user;
host:表示這個使用者可以從哪個主機登入,如果是localhost,表示只能從本機登入。
user:使用者名稱
password:使用者密碼,加密後的
以及使用者擁有的許可權。
建立使用者:語法:create user 『使用者名稱』 @』登入主機/ip』 identified 『密碼』;
刪除使用者:drop user 『使用者名稱』 @『主機名』
修改使用者密碼:set password=password(『新的密碼』);
set password for 『使用者名稱』@『主機名』=password(『新的密碼』);
給使用者授權:grant 許可權列表 on 庫.物件名 to 『使用者名稱』@『登入位置』 [identified by 『密碼』]
說明:許可權列表,多個許可權用逗號分開
grant select on…
grant select, delete, create on…
grant all [privileges] on …表示賦予該使用者在該物件上的所有許可權。
.:代表本系統中的所有資料庫的所有物件(表,檢視,儲存過程等)
庫.*:表示某個資料庫中的所有資料物件(表,檢視,儲存過程等)
identified by 可以省略,也可以寫
如果使用者存在,賦予許可權的同時修改密碼
如果該使用者不存在,就是建立使用者
如果發現賦許可權後,沒有生效,執行如下指令:flush privileges;
**許可權:
revoke 許可權列表 on 庫.物件名 from 『使用者名稱』 @ 『登入位置』;
第四節 條件語句
if語句 if v 100else if v 50elseif語句不需要括號 用法高階 const filename abc.txt if contents,error ioutil.readfile filename error nilelse注意 contents和error變數都是在if 塊中...
第四章第一小節 表示式樹的構造
利用棧來構造表示式樹,注輸入的表示式為字尾表示式 stack.h中的內容 樹的結構,函式已在stack.c中實現 typedef struct treenode tptrnode typedef tptrnode tree struct treenode 鍊錶實現棧 typedef tptrnode...
第四章 SQL 對映語句檔案
mybatis 真正強大的地主就是在對映語句,這也是魔力所在。就所有功能來說,sql 對映 xml 檔案相 對來說比較簡單。當然,如果你比較了檔案與 jdbc 你就會發現,對映 xml 檔案節省了 95 的 mybatis 為 sql 而建,但卻又給你極大的空間。sql 對映 xml 檔案僅僅只有一...