mysql 必備核心知識之事務的詳細解析:
創建一個數據庫表:
添加數據并開啟事務。
添加數據并查詢。
登錄另一臺服務器發現查不到這個表中的數據。
這是因為事務開啟了,但是沒有提交,只是把數據存到了內存中,還沒有寫入磁盤里,所以其它服務器看不到數據。
提交事務。
這樣其它服務器也能查詢到數據了。
再重新開啟事務刪除一條數據。
因為沒有提交另一個服務器里還是能看到數據。
因為刪除的事務還沒有執行完,所以數據還是能讀出來的。
提交這個事務:
再差就查不到數據了。
開啟事務再提交一條數據。
沒有提交,另一臺服務器是查不到數據的。
當出現數據插入有誤時,可以使用rollback進行回滾。
如果數據庫里這個配置是on不開啟的。
我們不使用begin開啟事務。添加了一條數據。
在另一個服務器里也能看到。因為開啟了,事務會自動提交,如果為off。則是不自動啟動事務。
可以把這個配置設置為off。
刪除一條數據。
另一臺服務器里還能查到數據。
事務提交之后就不見了。
這種方法事務臨時生效,如果退出服務器重新登錄,就不起作用了。
詳細講解視圖的優缺點以及應用
查看數據庫引擎:
修改引擎類型。
MyISAM引擎對事務不支持,我們要是想使用事務要使用InnoDB引擎。
通過這個基表來創建視圖。
我們屏蔽掉時間和薪水,創建了一個視圖。
show tables的時候,我們的視圖也會被顯示出來。
我們也可也看到視圖是如何被創建出來的。
也可以查到視圖中的數據。
實際中創建視圖會是很復雜的,涉及到各種聯表。
修改基表中的數據,視圖中的數據也會跟著改變。
mysql 的觸發器介紹(使用不多,了解即可)
創員工表:
可以看到我們的表結構。
這個命令可以作為以自定義符號結束sql語句。
創建觸發器:
之前有員工表:
我們模擬的是員工遲到扣錢的場景。
查看觸發器:
向遲到表中插入一條數據:
我們發現豬八戒的錢確實減少了100;
刪除觸發器:
介紹什么是存儲過程(很少使用,后面的分庫分表幾乎不可使用,簡單了解即可)
創建一個簡單點的存儲過程:
我的表里只有一個數據,這里只是為了學習舉例,真正使用也不會是這么簡單的一條查詢語句去使用存儲過程。
查看存儲過程:
給變量賦值:
調用存儲過程:
刪除存儲過程:
我們再創建一個自定義聲明變量的:
調用: