1. 程式人生 > 資料庫 >SQL實戰15.查詢employees表所有emp_no為奇數

SQL實戰15.查詢employees表所有emp_no為奇數

什麼是事務

要麼都成功,要麼都失敗

事務原則:ACID原則   原子性,一致性,隔離性,永續性   (髒讀,幻讀...)

原子性(Atomicity)

要麼都成功,要麼都失敗

一致性(Consistency)

事務前後的資料完整性要保證一致。

永續性(Durability)   --事務提交

事務一旦提交則不可逆,被持久化到資料庫中!

隔離性

事務的隔離性是多個使用者併發訪問資料庫時,資料庫為每一個使用者開啟的事務,不能被其他事務操作資料所幹事務之間要相互隔離。

 

事務

mysql是預設開啟事務自動提交的
SET autocommit =0  --關閉
SET autocommit=1   開啟(預設的)
手動處理事務
SET autocommit =0   關閉自動提交
事務開啟
START TRANSACTION    標記一個事務的開始,從這個之後的sql都在同一事務內
INSERT xx
INSERT xx
-- 提交:持久化  (成功!)
COMMIT
--回滾
ROLLBACK
--事務結束
SET autocommit=1    --開啟事務自動提交
--瞭解
SAVEPOINT  儲存點名    --設定一個事務的儲存點
ROLLBACK TO SAVEPOINT   儲存點名   --回滾到儲存點
RELEASE SAVEPOINT 儲存點名   --撤銷儲存點

模擬轉賬: 事務

CREATE TABLE `account`(
`id` int(3) not null AUTO_INCREMENT,
`name` varchar(30) not null,
`money` decimal(9,2) not null,
PRIMARY key (`id`)
)engine =innodb DEFAULT CHARSET =utf8

insert into account(name,money)
values("A",2000.00),("B",10000.00)

set autocommit =0;  --關閉自動提交事務
start transaction  --開啟一個事務

update account set money=money-500 where name="A"    -- A 減500
update account set money=money+500 where name="B"    -- B加500

commit ;  -- 提交事務
rollback;  -- 回滾事務

set autocommit=1;  -- 恢復預設值

索引

 

MySQL 官方索引的定義:索引(index)是幫助MySQL高校獲取資料的資料結構,提取句子主幹,就可以得到索引的本質,索引是資料結構。

1.索引分類

  • 主鍵索引(PRIMARY KEY)

          唯一的標識,主鍵不可重複,只能有一個列作為主鍵

 

  • 唯一索引(UNIQUE KEY)

          避免重複的列出現,唯一索引可以重複,多個列都可以標識位,唯一索引

 

  • 常規索引(KEY/INDEX)

          預設的,index,key 關鍵字類設定。

 

  • 全文索引(FULLTEXT)

         在特定的資料庫引擎下才有,MyISAM

         快速定位

image.png