什么要做python連接mysql,一般是解決什么問題的
做自動化測試時候,注冊了一個新用戶,產生了多余的數據,下次同一個賬號就無法注冊了,這種情況怎么辦呢?自動化測試都有數據准備和數據清理的操作,如果因此用例產生了多余數據,就需要清理數據,可以用Pyhthon連接Mysql直接刪除多余的數據就可以了。
Python3如何連接Mysql呢?PyMySQL是在Py3版本用於連接Mysql
python連接mysql的模塊安裝
在線安裝
pip install PyMySQL
在Pycharm---點擊--Terminal---輸入pip install PyMySQL等待完裝完畢即可,如圖所示
離線安裝
有時候在線安裝第三方模塊的時,會因為網絡原因總是裝不上,那怎么辦呢?那就手動安裝
- 下載所需要的模塊包
- 解壓該文件
-
將文件名改短,然后放入非C盤且放在根目錄
-
打開cmd---->E:---->cd xlrd---->python setup.py install
-
等待完裝完畢
-
導入模塊 import xlrd,運行如果沒報錯就說明安裝正常
連接MySql
import pymysql
# 打開數據庫連接
db = pymysql.connect("localhost", "root", "111223", "study_date")
# 使用 cursor() 方法創建一個游標對象 cursor
cursor = db.cursor()
# 使用 execute() 方法執行 SQL 查詢
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法獲取單條數據.
data = cursor.fetchone()
print("Database version : %s " % data)
# 關閉數據庫連接
db.close()
運行結果
數據庫基本操作
增加數據
insert 語句可以用來將一行或多行數據插到數據庫表中, 使用的一般形式如下:
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
其中 [ ] 內的內容是可選的, 例如, 要給study_date數據庫中的 studys 表插入一條記錄, 執行語句:
1 import pymysql
2
3 # 打開數據庫連接
4 db = pymysql.connect("localhost", "root", "111223", "study_date")
5 # 使用cursor()方法獲取操作游標
6 cursor = db.cursor()
7 insert_sql =
8 # 執行sql語句
9 cursor.execute("insert into studys(id, name, age) values(3, '騎着烏龜趕豬', 35)")
10 # 提交到數據庫執行
11 db.commit() cursor.execute("select * from studys")
12 # 查看表里所有數據
13 data = cursor.fetchall()
14 print(data) # 關閉數據庫連接 db.close()
運行結果
再運行一次上以代碼,運行后報錯,兩個重要錯誤信息
1、錯誤在哪一行
2、這個錯誤原因
為防止插入數據時出現異常,所以加上try...except
1 import pymysql
2
3 # 打開數據庫連接
4 db = pymysql.connect("localhost", "root", "111223", "study_date")
5
6 # 使用cursor()方法獲取操作游標
7 cursor = db.cursor()
8 insert_sql = "insert into studys(id, name, age) values(3, '騎着烏龜趕豬', 35)"
9 try:
10 # 執行sql語句
11 cursor.execute(insert_sql)
12 # 提交到數據庫執行
13 db.commit()
14 cursor.execute("select * from studys")
15 # 查看表里所有數據
16 data = cursor.fetchall()
17 print(data)
18 except:
19 print("數據插入失敗,請查檢try語句里的代碼")
20 # 關閉數據庫連接
21 # 如果想知道報了啥錯,可以主動拋出異常
22 # raise
23 db.close()
運行結果:
刪除數據
delete 語句用於刪除表中的數據
delete from 表名稱 where 刪除條件;
import pymysql
# 打開數據庫連接
db = pymysql.connect("localhost", "root", "111223", "study_date")
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
check_sql = 'select * from studys'
# SQL 刪除數據
del_sql = "delete from studys where id=3"
try:
# 執行sql語句
cursor.execute(del_sql)
# 提交到數據庫執行
db.commit()
cursor.execute(check_sql)
# 查看表里所有數據
data = cursor.fetchall()
print(data)
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()
運行結果
修改數據
update 語句可用來修改表中的數據
update 表名稱 set 列名稱=新值 where 更新條件;
import pymysql
# 打開數據庫連接
db = pymysql.connect("localhost", "root", "111223", "study_date")
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
check_sql = 'select * from studys'
# SQL 修改數據
updata_sql = "update studys set age=30 where id=2"
try:
# 執行sql語句
cursor.execute(updata_sql)
# 提交到數據庫執行
db.commit()
cursor.execute(check_sql)
# 查看表里所有數據
data = cursor.fetchall()
print(data)
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()
運行結果
查詢數據
查詢單條數據
語法:
fetchone()
例如要查詢 students 表中所有學生的名字和年齡, 輸入語句
select name, age from studys
fetchone()獲取一行數據
1 # 導入模塊
2 import pymysql
3
4 # 打開數據庫連接 數據庫地址
5 db = pymysql.connect("localhost", "root", "111223", "study_date")
6
7 # 使用 cursor() 方法創建一個游標對象 cursor
8 cursor = db.cursor()
9
10 # 使用 execute()方法執行 SQL 查詢
11 # 通配符,意思是查詢表里所有內容
12 cursor.execute("select * from studys")
13
14 # 使用 fetchone() 方法獲取一行數據.
15 data = cursor.fetchone()
16 print(data)
17
18 # 關閉數據庫連接
19 db.close()
運行結果:
查詢多條數據
fetchall()獲取所有數據
1 # 導入模塊,固定寫法
2 import pymysql
3
4 # 打開數據庫連接 數據庫地址
5 db = pymysql.connect("localhost", "root", "111223", "study_date")
6
7 # 使用 cursor() 方法創建一個游標對象 cursor
8 cursor = db.cursor()
9
10 # 使用 execute() 方法執行 SQL 查詢
11 cursor.execute("select * from studys")
12
13 # 使用 fetchall() 方法獲取所有數據.以元組形式返回
14 data = cursor.fetchall()
15 print(data)
16
17 # 關閉數據庫連接
18 db.close()
運行結果
如果對軟件測試、接口測試、自動化測試、技術同行、持續集成、面試經驗交流。感興趣可以進到893694563,群內會有不定期的分享測試資料。
如果文章對你有幫助,麻煩伸出發財小手點個贊,感謝您的支持,你的點贊是我持續更新的動力。