【python3 自動化之mysql操作】python3下的mysql入門基礎
阿新 • • 發佈:2018-11-17
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 ( Snovarchar(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/