1. 程式人生 > >事務 視圖 索引

事務 視圖 索引

err error div 關鍵字 表數 表達式 記錄 操作數 sam

---恢復內容開始---

一.事務

1.事務:就是一堆操作的集合,他們同生共死。要麽執行成功,要麽執行失敗

事務:是單個邏輯工作單位執行的一系列操作,一個邏輯工作單位元必須有4個屬性 即原子性(Atomicity)一致性(Consistency) 隔離性(Isolation)持久性(Durability)特性通常簡稱為ACID

2.事務屬性

A:原子性 完整的,不可分割的

C: 一致性 事務執行完畢後,數據的狀態是一致的()

I: ISOLation 隔離性 兩個事務執行互不影響

D: 永久性 事務執行完後,對數據的影響是永久的。

3.事務操作的關鍵字
自動提交事務開關 set autocommit=1

開始事務 start transaction /begin

提交事務 commit

回滾事務 rollback

4.定義存儲過程的簡易的語法是

delimiter $$
create procedure usp_stulist()

begin
select * from student
end$$
delimiter;

5.事務 存儲過程 轉賬的例子

  
DELIMITER $$
CREATE PROCEDURE usp_transfer() 
    BEGIN  
   
    DECLARE t_error INTEGER DEFAULT 0;  
    
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error
=1; SET autocommit=0; START TRANSACTION; UPDATE bank SET balance=balance-100 WHERE cid=1; UPDATE bank SET balance =balance+100 WHERE cid=2; IF t_error > 0 THEN ROLLBACK; ELSE COMMIT; END IF; SET autocommit=1; END$$ DELIMITER ; CALL test_sp800()

二.視圖

1.視圖:就是一張虛擬表,本質上存儲的是一對sql集合

2.定義視圖語法:create view VW_stulist(VW_視圖的功能)as

3.視圖的使用 和檢索基本表一樣,直接通過select :select * from VW_stulist

4.刪除視圖

drop view 視圖名
drop table
drop database
drop index
drop constraint
歸根結底:drop 刪除是結構 delete 刪除數據

5.查看庫中的所有視圖

1.切換到系統數據庫: use information_schema

2. 查看並排序:select * from views \G;

  3.查看當前庫的所有視圖 :show tables status where comment=‘view‘

6.視圖註意事項

1)視圖可以查詢多表數據
2)視圖可以嵌套
3)update,insert,delete不能封裝成視圖內容,通過圖形化界面可以操作數據(操作視圖數據,影響的是基本表)。
4)刪除視圖數據的時候,有一定的限定,數據結果來源於多表的時候,不能刪除 

7.視圖的價值
結果更明顯。不用我們關註到底這個視圖的結果集是有幾張基本表互聯檢索出來的。
獲取數據更容易。安全性更高。

三.索引

1.索引:索引是一種有效組合數據的方式,為了快速的查找到指定記錄

2.作用:大大提高數據庫的檢索速度 改善數據的性能
3.MYSQL索引按存儲類型分類 B-樹索引: InnoDB MyISAM均支持 哈希索引
4.普通索引:基本索引 允許在定義索引的列插入重復值和空值
5.唯一索引:索引列數據不重復 允許有空值
6.主鍵索引:主鍵列中的每一個值是非空唯一的 一個主鍵將自動創建主鍵索引

7.復合索引:將多個列組合作為索引

8.全文索引:支持值得全文查找 允許重復值和空值

9.空間索引: 對空間數據類型的列建立的索引

10.創建一個索引
CREATE index 索引名
11.刪除索引
DROP INDEX index_name on table_name
刪除表時候 該表的索引同時被刪除

12.下列標準選擇建立索引的列
頻繁搜素的列
經常用作查詢的列
經常排序分組的列
經常用作連接列(主鍵/外鍵)
請不要使用下面的列創建索引
僅包含幾個不同值的列
表中僅包含幾行

13.查詢時減少使用* 返回全部列,不要返回不需要的列
索引應該盡量小,在字節數小的列上建立索引
where子句有多個條件表達式,包含索引列的表達式應置於其他表達式之前
避免在orderby子句中使用表達式
SHOW INDEX from 表名

14.查看數據庫中全部索引信息
USE MYSCHOOL
SHOW INDEX FROM `STUDENT\G`

15.事務是將一組SQL語句放在同一批次去執行
如果一個SQL語句出錯,則該批次內的所有SQL都將被取消執行

事務 視圖 索引