事務和python操作數據庫


聯合分組

# 數據來源:單標emp

# 聯合分組:按多個字段綜合結果進行分組

# 按 area與port組合后的結果進行分組,只有組合后的結果還一致,才認為是一組
select group_concat(name),area,port from emp group by area,port;

子查詢

insert into 表 select 子查詢 # 增
delete from 表 條件是select子查詢(表不能與delete表相同) # 刪
select 字段 from 表 條件是select子查詢 # 查
update 表 set 字段=值 條件是select子查詢(表不能與update表相同) # 改

all與any:區間修飾條件

語法規則

where id in (1, 2, 3) -->id是1或2或3
where id not in (1, 2, 3) --> id不是1,2,3
where salary < all(3, 6, 9) --> salary必須小於所有情況(小於最小)
where salary > all(3, 6, 9) --> salary必須大於所有情況(大於最大)
where salary < any(3, 6, 9) --> salary只要小於一種情況(小於最大)
where salary > any(3, 6, 9) --> salary只要大於一種情況(大於最小)

視圖

'''
1. 視圖是存在內存中的臨時表
2. 視圖的創建依賴select語句,所以就是select語句操作的結果形成的表
3. 視圖支持對數據的增刪改查
4. 視圖不允許對視圖表的字段做修改
5. 視圖不僅支持創建,也支持更新與刪除
'''

# 語法
# 創建視圖
mysql> create view 視圖名[(別名們)] as select 語句;

# 創建或替換視圖
mysql> create or replace 視圖名[(別名們)] as select 語句;
mysql> alter 視圖名[(別名們)] as select 語句;

# 刪除視圖
mysql> drop view 視圖名;

視圖的增刪改

# 視圖的增刪改操作可以直接映射給真實表(本質就是對真實表進行操作)
# 操作視圖,會影響真實表,反之也會影響

視圖

# 事務:通常一些業務需要多條sql參與,參與的sql會形成一個執行整體,這個整體就叫做事務。
# 事務 - 就是保護多條執行的sql語句

'''
事務的四大特性
1.原子性:事務是一組不可分割的單位,要么同時成功,要么同時不成功
2.一致性:事務前后的數據完整性應該保持一致(數據庫的完整性:如果數據庫在某一時間點下,所有的數據都符合所有的約束,則稱數據庫為完整的狀態)
3.隔離性:事務的隔離性是指多個用戶並發訪問數據時,一個用戶的事務不能被其他用戶的事務所干擾,多個並發事務之間數據要相互隔離
4.持久性:持久性是指一個事務一旦被提交,它對數據的改變就是永久性的,接下來即使數據庫發生故障也不應該對其有任務影響
'''

# 開啟事務
begin;

# 提交事務
commit;

# 事務回滾
rollback;

pymysql:python操作mysql

import pymysql

# pymysql連接數據庫的必要參數:主機、端口、用戶名、密碼、數據庫
# pymysql不能提供創建數據庫的服務,需要提前創建數據庫

'''
1.建立數據庫連接對象conn
2.通過conn創建操作sql的游標對象
3.編寫sql交給cursor執行
4.如果是查詢,通過cursor對象獲取結果
5.操作完畢,關閉端口操作與連接
'''

索引

# 索引就是鍵 - key

'''
1.鍵是添加給數據庫表的字段的
2.給表創建鍵后,該表不僅會形成表結構、表數據,還有鍵的B+結構圖
3.鍵的結構圖是需要維護的,在數據完成增、刪、改操作時,只有影響到有鍵的字段,結構圖都要維護一次,所以創建鍵以后一定會降低增、刪、改的效率
4.鍵可以極大的加快查詢速度
5.建立鍵的方式:主鍵、外鍵、唯一鍵、index
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM