国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Mysql學習總結(45)——Mysql視圖和事務

2019-11-09 13:34:18
字體:
來源:轉載
供稿:網友

視圖

視圖: view, 是一種有結構(有行有列)但是沒結果(結構中不真實存放數據)的虛擬表, 虛擬表的結構來源不是自己定義, 而是從對應的基表中產生(視圖的數據來源).

創建視圖

基本語法

create view 視圖名字 as select語句; (as不可省略)

創建單表視圖: 基表只有一個

創建多表視圖: 基表來源至少兩個

MySQL之視圖、事務

查看視圖

查看視圖: 查看視圖的結構

視圖是一張虛擬表: 表, 表的所有查看方式都適用于視圖: show tables [like]/desc 視圖名字/show create table 視圖名;

MySQL之視圖、事務

視圖一旦創建: 系統會在視圖對應的數據庫文件夾下創建一個對應的結構文件: frm文件

MySQL之視圖、事務

使用視圖

使用視圖主要是為了查詢: 將視圖當做表一樣查詢即可.( 其實本質就是執行封裝的select語句.)

MySQL之視圖、事務

修改視圖

視圖本身不可修改, 但是視圖的來源是可以修改的.

修改視圖: 修改視圖本身的來源語句(select語句)

alter view 視圖名字 as 新的select語句;

MySQL之視圖、事務

MySQL之視圖、事務

刪除視圖

drop table/view 視圖名字;

MySQL之視圖、事務

視圖意義

1. 節省SQL語句: 將一條復雜的查詢語句使用視圖進行保存: 以后可以直接對視圖進行操作(你搜索了一個好的網站,收藏下,下次就不用搜索)

2. 數據安全: 視圖操作是主要針對查詢的, 如果對視圖結構進行處理(刪除), 不會影響基表數據(相對安全).

3. 視圖往往是在大項目中使用, 而且是多系統使用: 可以對外提供有用的數據, 但是隱藏關鍵(無用)的數據(數據安全)

4. 視圖可以對外提供友好型: 不同的視圖提供不同的數據, 對外好像專門設計

5. 視圖可以更好(容易)的進行權限控制

事務

場景:張三李四銀行賬戶均有5000人民幣,一日,張三給李四轉賬2000,但是張三剛打錢,銀行系統故障。結果是:張三賬戶少了2000,但是李四賬戶還是5000。

學完事務就可以解決這個問題了

事務: transaction, 一系列要發生的連續的操作(注意存儲引擎,InnoDB支持事務)

事務安全: 一種保護連續操作同時滿足(實現)的一種機制

事務安全的意義: 保證數據操作的完整性

事務操作

事務操作分為兩種: 自動事務(默認的), 手動事務

手動事務: 操作流程

1.開啟事務: 告訴系統以下所有的操作(寫)不要直接寫入到數據表, 先存放到事務日志——start transaction;

MySQL之視圖、事務

2.進行事務操作: 一系列操作

a)張三賬戶錢減少

b)李四賬戶錢增加

3.關閉事務: 選擇性的將日志文件中操作的結果保存到數據表(同步)或者說直接清空事務日志(原來操作全部清空)

a) 提交事務: 同步數據表(操作成功): commit;

MySQL之視圖、事務

MySQL之視圖、事務

commit后結果

b) 回滾事務: 直接清空日志表(操作失敗): rollback;

MySQL之視圖、事務

rollback操作

事務原理

事務操作原理: 事務開啟之后, 所有的操作都會臨時保存到事務日志, 事務日志只有在得到commit命令才會同步到數據表,其他任何情況都會清空(rollback, 斷電, 斷開連接)

MySQL之視圖、事務

commit之前

MySQL之視圖、事務

commit之前并沒有多9.99

MySQL之視圖、事務

commit之后

回滾點

回滾點: 在某個成功的操作完成之后, 后續的操作有可能成功有可能失敗, 但是不管成功還是失敗,前面操作都已經成功: 可以在當前成功的位置, 設置一個點: 可以供后續失敗操作返回到該位置, 而不是返回所有操作, 這個點稱之為回滾點.

設置回滾點語法: savepoint 回滾點名字;

回到回滾點語法: rollback to 回滾點名字;

事務特性

事務有四大特性: ACID

A: Atomic原子性, 事務的整個操作是一個整體, 不可分割,要么全部成功,要么全部失敗;

C: Consistency, 一致性, 事務操作的前后, 數據表中的數據沒有變化

I: Isolation, 隔離性, 事務操作是相互隔離不受影響

D: Durability, 持久性, 數據一旦提交, 不可改變,永久的改變數據表數據

鎖機制: innodb默認是行鎖, 但是如果在事務操作的過程中, 沒有使用到索引,那么系統會自動全表檢索數據, 自動升級為表鎖

行鎖: 只有當前行被鎖住, 別的用戶不能操作

表鎖: 整張表被鎖住, 別的用戶都不能操作

MySQL之視圖、事務


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 特克斯县| 汕头市| 女性| 民县| 偃师市| 高雄县| 合江县| 鄢陵县| 城步| 开化县| 璧山县| 宁武县| 始兴县| 普格县| 弥渡县| 曲阳县| 漾濞| 大姚县| 文昌市| 奎屯市| 新龙县| 沅江市| 兖州市| 舞钢市| 花莲县| 五大连池市| 芒康县| 龙井市| 耒阳市| 河池市| 武川县| 木兰县| 海门市| 桓台县| 英德市| 武城县| 乡宁县| 商城县| 柯坪县| 大田县| 济源市|