1. 程式人生 > >【python3 自動化之mysql操作】python3下的mysql入門基礎

【python3 自動化之mysql操作】python3下的mysql入門基礎

1、所需資源:pycharm,python3.6,module:pymysql

2、pycharm配置mysql:

新新增一個mysql資料庫

ip:192.168.112.54    埠:3306    賬號:root   密碼:123456

接下來,建立資料庫表資訊:(程式碼改編,來自網路)

/*1、建立表*/

DROP TABLE IF EXISTS mysql.Student;
create table Student
(
  Sno   varchar(20),
  Sname varchar
(50), primary key (Sno) ) ENGINE = InnoDB DEFAULT CHARSET = utf8; DROP TABLE IF EXISTS mysql.Course; create table Course ( Cno varchar(20), Cname varchar(50), Tno varchar(20), primary key (Cno) ) ENGINE = InnoDB DEFAULT CHARSET = utf8; DROP TABLE IF EXISTS mysql.SC; create table SC ( Sno
varchar(20), Cno varchar(20), score int, primary key (Sno, Cno) ) ENGINE = InnoDB DEFAULT CHARSET = utf8; DROP TABLE IF EXISTS mysql.Teacher; create table Teacher ( Tno varchar(20), Tname varchar(50), primary key (Tno) ) ENGINE = InnoDB DEFAULT CHARSET = utf8; /*2、插入表資料*/ INSERT INTO
`Student` (Sno, Sname) VALUES ('001', '陳一'); INSERT INTO `Student` (Sno, Sname) VALUES ('002', '郭二'); INSERT INTO `Student` (Sno, Sname) VALUES ('003', '張三'); INSERT INTO `Student` (Sno, Sname) VALUES ('004', '李四'); INSERT INTO `Student` (Sno, Sname) VALUES ('005', '王五'); INSERT INTO `Teacher` (Tno, Tname) VALUES ('001', '張老師'); INSERT INTO `Teacher` (Tno, Tname) VALUES ('002', '王老師'); INSERT INTO `Teacher` (Tno, Tname) VALUES ('003', '錢老師'); INSERT INTO `Teacher` (Tno, Tname) VALUES ('004', '劉老師'); INSERT INTO `Teacher` (Tno, Tname) VALUES ('005', '胡老師'); INSERT INTO `Course` (Cno, Cname, Tno) VALUES ('001', '語文', '001'); INSERT INTO `Course` (Cno, Cname, Tno) VALUES ('002', '數學', '002'); INSERT INTO `Course` (Cno, Cname, Tno) VALUES ('003', '英語', '003'); INSERT INTO `Course` (Cno, Cname, Tno) VALUES ('004', '物理', '004'); INSERT INTO `Course` (Cno, Cname, Tno) VALUES ('005', '政治', '005'); INSERT INTO `SC` (Sno, Cno, score) VALUES ('001', '001', 50); INSERT INTO `SC` (Sno, Cno, score) VALUES ('001', '002', 60); INSERT INTO `SC` (Sno, Cno, score) VALUES ('001', '003', 70); INSERT INTO `SC` (Sno, Cno, score) VALUES ('001', '004', 80); INSERT INTO `SC` (Sno, Cno, score) VALUES ('001', '005', 90); INSERT INTO `SC` (Sno, Cno, score) VALUES ('002', '001', 90); INSERT INTO `SC` (Sno, Cno, score) VALUES ('002', '002', 80); INSERT INTO `SC` (Sno, Cno, score) VALUES ('002', '003', 70); INSERT INTO `SC` (Sno, Cno, score) VALUES ('002', '004', 60); INSERT INTO `SC` (Sno, Cno, score) VALUES ('002', '005', 50); INSERT INTO `SC` (Sno, Cno, score) VALUES ('003', '001', 81); INSERT INTO `SC` (Sno, Cno, score) VALUES ('003', '002', 82); INSERT INTO `SC` (Sno, Cno, score) VALUES ('003', '003', 83); INSERT INTO `SC` (Sno, Cno, score) VALUES ('003', '004', 84); INSERT INTO `SC` (Sno, Cno, score) VALUES ('003', '005', 85); INSERT INTO `SC` (Sno, Cno, score) VALUES ('004', '001', 71); INSERT INTO `SC` (Sno, Cno, score) VALUES ('004', '002', 72); INSERT INTO `SC` (Sno, Cno, score) VALUES ('004', '003', 73); INSERT INTO `SC` (Sno, Cno, score) VALUES ('004', '004', 74); INSERT INTO `SC` (Sno, Cno, score) VALUES ('004', '005', 75); INSERT INTO `SC` (Sno, Cno, score) VALUES ('005', '001', 75); INSERT INTO `SC` (Sno, Cno, score) VALUES ('005', '002', 74); INSERT INTO `SC` (Sno, Cno, score) VALUES ('005', '003', 73); INSERT INTO `SC` (Sno, Cno, score) VALUES ('005', '004', 72); INSERT INTO `SC` (Sno, Cno, score) VALUES ('005', '005', 71); /*執行sql檔案出錯,解決辦法:使用Notepad++開啟檔案,選擇 格式->無BOM的UTF8格式編碼*/ /*2、單表查詢_表資料*/ select * from Teacher; select * from Student; select * from Course; select * from SC; /*3、多表查詢_表資料*/ select s.Sname as "學生", t.Tname as "教師", c.Cname as "課程", sc.score as "分數" from Student s, SC sc, Course c, Teacher t where sc.Cno = c.Cno and sc.Sno = s.Sno and c.Tno = t.Tno order by s.Sname, t.Tname, c.Cname, sc.score;

輸出查詢結果【部分截圖】,能夠正常顯示,說明環境配置正常

 

緊接著:python程式碼去模擬手工操作資料庫

# coding:utf-8
import pymysql
'''
新新增一個mysql資料庫
ip:192.168.112.54    埠:3306    賬號:root   密碼:123456
'''
# 連線mysq資料庫
connection = pymysql.connect(host='192.168.112.54',
                             port=3306,
                             user='root',
                             password='123456',
                             db='mysql',
                             charset='utf8',
                             cursorclass=pymysql.cursors.DictCursor)
# 例項化——建立資料庫遊標
cursor = connection.cursor()
# 使用execute方法執行SQL語句
id = '001'
i = cursor.execute("select * from Student s where s.Sno = %s" % id)
print("記錄數:%d;" % i, "型別:", type(i))

# 使用 fetchone() 方法獲取一條資料
data = cursor.fetchone()
print("data:", data, "type:", type(data))
# fetchone()返回字典型別,通過字典訪問值
print("Student Number : %s " % data["Sno"])
# 使用 fetchall() 方法獲取多條資料
j = cursor.execute("select * from Teacher ")
print("記錄數:%d;" % j, "型別:", type(j))
datas = cursor.fetchall()
# 迴圈遍歷查詢字典值
for k in datas:
    print(k["Tname"])
print("datas:", datas, "type:", type(datas))
# fetchall()返回list型別,通過list訪問值
print(datas[0]["Tname"])
# 關閉資料庫連線
cursor.close()
connection.close()

 

輸出查詢結果【部分截圖】

資料庫修改等基本操作,請查閱mysql相關知識

-----------------------------------------------------------------------------

特別鳴謝以下大佬:

 

Anges黎夢      部落格地址:https://www.cnblogs.com/AngesZhu/

快捷通道:
想學自動化測試(介面自動化、selenium自動化、appium自動化等)請聯絡,上海悠悠
悠悠大佬部落格:
https://www.cnblogs.com/yoyoketang/
雷總部落格:
https://www.cnblogs.com/leiziv5/