MySQL觸發器 ,視圖索引 , 事務

MySQL進階二

補充觸發器知識

# 刪除觸發器代碼
drop trigger 觸發器名;# 當一個學員發生轉班,班級對應的總數進行同步變化# 當一個學員發生轉班,班級對應的總數進行同步變化delimiter !!create trigger movestudent after update on stu1 for each ROWBEGIN#定義兩個變量declare numOld int; # 定義舊班級人數declare numNew int; # 定義新班級人數set numOld = (select stu_num from stu2 where class = old.class);select  numOld into @a;set numNew = (select stu_num from stu2 where class = new.class);select numNew into @b;update stu2 set stu_num = numOld - 1 where class = old.class;update stu2 set stu_num = numNew + 1 where class = new.class;end !!
delimiter;update stu1 set class = 2302 where name = "阿濤";select @a;
select @b;drop trigger movestudent;

1、視圖

視圖: 是一個虛擬表,內容就是由查詢結果定義
視圖不是真實的數據,只是一個數據映射
但是視圖的結構和真正的表結構是一樣視圖作用:
簡化高頻或者復雜的查詢語句
高并發: 數據庫也會有并發壓力
商品展示查詢就要用到視圖表
而且還可以起到一個權限視圖表只能查詢操作
# 創建視圖表
create view 視圖名稱 as select 已查詢語句;# 查詢當前數據庫所有的視圖
create view stu_2301 as 
select * from stu1 where class = 2301;# 刪除視圖表
drop view 視圖名稱;# 查詢當前數據庫所有視圖
# 格式
show full tables in 數據庫名稱 where table_type like "view";show full tables in demo924 where table_type like "view";

2、索引

索引:index 就是目錄一般如果你的表查詢很多,一般可以用索引進行查詢目的:優化我們的查詢速度1.主鍵索引  (primary key)
2.普通索引
3.唯一索引
# 在創建表到時候就要創建索引
# 格式
create table 表名(字段名 數據類型,字段名 數據類型,# 普通索引index 索引名稱(字段名),# 唯一索引unique 索引名稱(字段名));# 以后五次格式報錯同學,罰抄10遍格式樣式# 能創建表后插入索引create index 索引名稱 on 表名(字段名);
create unique 索引名稱 on 表名(字段名);# ---------------------------
create table t12(name char(5),index  name_index(name));insert into t12 values 
("守護"),
("禿頭"),
("11166", );# 查詢索引
select * from t12 where name = "禿頭";

3、存儲引擎

其實儲存引擎就是mysql如何儲存這個數據的InnoDB 流行儲存引擎
SHOW ENGINES;

6、事務(重點)

it 必須學習事務處理 : 是用來維護數據庫的完整性,保證sql語句要么就全部執行,要么全部不執行事務處理: select,insert, update, delete 語句事務一旦提交,就不會發生丟失的現象
事務要滿足四個條件:原子性, 一致性, 隔離性, 持久性原子性:一組事務, 所有sql語句要么就全部進行成功,要全部不執行, 之前執行的全部執行回滾一致性:事務b撤回的數據應該來自事務A,總共兩者的總數是一致的隔離性:各自的事務都是獨立運行,一個事務處理后的結果如果影響到其他事務的時候, 其他事務需要先撤回持久性:事務的持久性(也就永久性)是指一旦事務提交成功了,對數據修久性。事務隔離級別:
1.讀取未提交事務A和事務B, 事務A沒有提交數據,事務B讀取到,但是不是持久性的,可以回滾的,這里事務b讀取的數據叫"臟數據"。2.讀取已提交
事務A和事務B 事務A要提交后數據,事務B才能讀取到
一句話就是我們讀取的數據都是數據庫真實數據
但是這個隔離導致不可重復讀取就是同一個事務,只能讀取一次這種不會用3.可重復讀取
事務A 和 事務B , 事務A提交的數據,事務b可以重復讀取
這種隔離是sql默認隔離級別4.串行化
事務A和事務B,事務A操作數據庫的是,事務b只能排隊等待
這種隔離級別很少使用,吞吐量太低,用戶體驗差
/*
事務還可以分兩個大類: 隱性事務和顯性事務隱性事務很簡單: 就是insert ,delete, update 都是隱性事務。都是默認提交顯性事務: 可以看出事務過程的,有明顯的開始與結束標志,*/# 開始顯性事務
begin;insert into t12 values("放屁蹦出詩");commit;select * from t12;# 開始顯性事務
begin;insert into t12 values("放屁蹦出詩");select * from t12;rollback;commit;

7、pymysql(重點)

使用python 執行mysql的sql語句進行增刪改查
pip install pymysql
import pymysql# 開始建立數據庫對象
db = pymysql.connect(# host 地址,我們主機地址localhost,或者IP地址127.0.0.1host="localhost",# 數據庫用戶名user="root",# 密碼password="root",# 數據庫字符編碼charset="utf8",# 你要用的數據庫名稱database="demo924")# 創建游標對象(理解為指針),代表該鏈接的數據庫
# cursor專門創建游標
cur = db.cursor()# 這里不需要分號,sql語句不區分大寫
sql = "DeSc stu1"# 需要執行sql語句
cur.execute(sql)# 查詢返回結果fetchall(), fetchone(), fetchany()
# 返回一個嵌套元組
print(cur.fetchall())# 如何設置顯性事務
# 插入多個數據sql = "insert into stu1(name,class,sex) values (%s, %s ,%s) "values = [("xxx6", '2301', "女"),("xxx7", '2303', "女"),("xxx8", '2302', "男")]# 使用多條數據進行結合方法executemany(sql語句, 數據)
cur.executemany(sql, values)db.commit()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13003.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13003.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13003.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

力扣HOT100 - 152. 乘積最大子數組

解題思路&#xff1a; 方法一&#xff1a;暴力 class Solution {public int maxProduct(int[] nums) {int max Integer.MIN_VALUE;int s 1;for (int i 0; i < nums.length; i) {s 1;for (int j i ; j < nums.length; j) {s * nums[j];max Math.max(max, s);}}ret…

出國旅游常用英語,柯橋成人英語培訓

Where can I catch a taxi?哪里我可以叫到出租車&#xff1f; The taxi zone is right on the left corner over there.出租車站臺就在左邊轉角處。 Are you free?您有空嗎&#xff1f; Sure. Where are you going?當然。您要去哪里&#xff1f; Drive me back to Santa …

手工創建 kamailio database tables

有些場景可能kamdbctl create不好使&#xff0c;可能需要手工創建 kamailio database tables&#xff0c;可參考下面的命令序列&#xff1a; USE mysql # 刪除之前創建的用戶 SELECT user,host FROM user; DROP USER kamailio%; FLUSH PRIVILEGES; # 刪除之前創建的數據庫 DROP…

#Docker | Ngrok# 使用Ngrok和Docker進行內網穿透

一、注冊 Ngrok官網注冊&#xff0c;可以使用gmail或者outlook郵箱&#xff0c; 正常填寫后你會收到一封電子郵件&#xff0c;點擊郵件中鏈接即注冊成功 二、獲取密鑰 登錄&#xff0c;點擊Your Authtoken&#xff0c;最上面copy左邊就是你得密鑰 三、使用內網穿透啟動docker…

c++20---std::erase----std::erase_if

問題&#xff1a;如何刪除滿足條件的所有元素。 erase #include <iostream> #include <algorithm> #include <vector>int main(){std::vector<int> vec{1,2,3,1,1,1,1,1};std::erase(vec,1);for(int v:vec) std::cout<<v<<" "…

與禹老師學前端vue3學習匯總

24.5.15&#xff1a; 創建Vue3工程 1.確定自己電腦有沒有nodejs環境&#xff0c;在cmd中輸入node&#xff0c;如果出現Node.js的版本號說明已經有這個環境了&#xff0c;否則搜索Node.js安裝 2.先在D盤創建一個文件夾Vue3_Study&#xff0c;然后在這個空文件夾中右鍵選擇終端…

IPv6監測指標有哪些?如何才算真正完成IPv6的升級改造?

我國始終高度重視IPv6的發展建設&#xff0c;將IPv6視作未來互聯網發展的方向之一&#xff0c;自2017年《推進互聯網協議第六版&#xff08;IPv6&#xff09;規模部署行動計劃》印發以來&#xff0c;又多次發布IPv6相關的政策法規&#xff0c;以推進IPv6的規模化部署。在政策引…

首次曝光!我喂了半年主食凍干,喵狀態真滴頂~

科學養貓理念的推廣&#xff0c;使得主食凍干喂養越來越受到養貓者的歡迎。主食凍干不僅符合貓咪的自然飲食習慣&#xff0c;還能提供豐富的營養&#xff0c;有助于保持貓咪的口腔和消化系統健康。我家喂了半年主食凍干&#xff0c;貓咪的狀態是真的不一樣了&#xff01; 然而…

五豐黎紅引領新營銷模式:布局一物一碼數字化營銷,提高調味品銷量和復購率

調味品行業的銷售渠道主要有餐飲、家庭消費和食品加工&#xff0c;按銷售額的占比約為6&#xff1a;3&#xff1a;1&#xff0c;餐飲行業是調味品行業的供需主力。在餐飲行業中&#xff0c;“大廚”這一角色具有十分重要的地位。因此&#xff0c;借助大廚的力量成為了許多調味品…

TDL - field

hotline Desktop help TS M&O 1)to release app on Linux by commands, etc test development inventor

科林算法_4 基礎算法

一、排序 void swap(vector<int>& a, int x, int y) {if (x y)return;a[x] a[x] ^ a[y];a[y] a[x] ^ a[y];a[x] a[x] ^ a[y]; } 1.1 冒泡排序BubbleSort 核心思想&#xff1a;相鄰的兩個元素進行大小比較&#xff0c;若前者比后者大&#xff0c;則進行交換 每…

回文數[簡單]

優質博文&#xff1a;IT-BLOG-CN 一、題目 給你一個整數x&#xff0c;如果x是一個回文整數&#xff0c;返回true&#xff1b;否則返回false。回文數是指正序&#xff08;從左向右&#xff09;和倒序&#xff08;從右向左&#xff09;讀都是一樣的整數。例如&#xff0c;121是…

時間字符串處理 moment.js

文章來自我的blog moment.js 簡介 Moment.js 是一個開源的JavaScript庫&#xff0c;專為簡化日期和時間的處理而設計。它提供了一套豐富的API&#xff0c;允許開發者輕松地解析、驗證、操作、格式化日期和時間。自從2011年發布以來&#xff0c;Moment.js 因其易用性、靈活性和…

@Transactional(rollbackFor = Exception.class)注解放到private修飾的類上報錯

背景 有兩個方法中&#xff0c;更新數部分是相同的&#xff0c;打算把這一部分那重來&#xff0c;做一個公用的私有方法。 考慮數據一致性&#xff0c;原本每個方法都使用了Transactional(rollbackFor Exception.class)注解&#xff0c;保證失敗回滾&#xff0c;創建私有方法…

vj題單 激光炸彈 二維前綴和

題目鏈接&#xff1a;P2280 [HNOI2003] 激光炸彈 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 筆者答案&#xff1a; #include<stdio.h> int s[5005][5005]; int main () {int n,m;scanf("%d %d",&n,&m);int i,j;int x,y,v;int max;for(i 1;i &l…

洛谷P1364 醫院設置

P1364 醫院設置 題目描述 設有一棵二叉樹&#xff0c;如圖&#xff1a; 其中&#xff0c;圈中的數字表示結點中居民的人口。圈邊上數字表示結點編號&#xff0c;現在要求在某個結點上建立一個醫院&#xff0c;使所有居民所走的路程之和為最小&#xff0c;同時約定&#xff0c…

單元測試—BMI腳本設計

BMI例題如下&#xff1a; BMI中國計算標準&#xff1a;體質指數&#xff08;BMI&#xff09;體重&#xff08;kg&#xff09;身高^2&#xff08;m&#xff09; 例如&#xff1a;一個人的身高為1.75米,體重為68千克&#xff0c;他的BMI68/(1.75^2)22.2&#xff08;千克/米^2&a…

每日5題Day3 - LeetCode 11 - 15

每一步向前都是向自己的夢想更近一步&#xff0c;堅持不懈&#xff0c;勇往直前&#xff01; 第一題&#xff1a;11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxArea(int[] height) {//這道題比較特殊&#xff0c;因為兩邊是任意…

04、SpringBoot 源碼分析 - SpringApplication啟動流程四

SpringBoot 源碼分析 - SpringApplication啟動流程四 初始化基本流程SimpleApplicationEventMulticaster的multicastEvent廣播事件resolveDefaultEventType獲取ResolvableType實例ResolvableType的forInstance創建ResolvableType實例 開始廣播AbstractApplicationEventMulticas…

脈沖水路清洗機,全自動脈沖技術清除管道堵塞

邦注脈沖水路清洗機是一種高效的清洗設備&#xff0c;它利用全自動脈沖技術來清除管道內的堵塞和污垢。以下是對該設備的一些詳細描述&#xff1a; 全自動脈沖技術&#xff1a;脈沖水路清洗機采用了全自動脈沖技術&#xff0c;這是一種先進的清洗方法。該技術通過產生高強度的…