之前用的Python2,連接MySQL用的是MySQLdb。現在換成python3.x了,由於 MySQLdb 模塊還不支持 Python3.x,所以 Python3.x 如果想連接MySQL需要安裝 PyMySQL模塊,以下將介紹PyMySQL的安裝及常用操作。
一、安裝
pip install PyMySQL
二、常用操作
-
查詢數據
import pymysql # 連接數據庫 conn = pymysql.connect( host='127.0.0.1', user='root', passwd='root', port=3306, db='test', charset='utf8' ) # 創建一個遊標 cursor = conn.cursor() # 查詢數據 sql = "select * from user" cursor.execute(sql) # 執行sql # 查詢所有數據,返回結果默認以元組形式,所以可以進行迭代處理 for i in cursor.fetchall(): print(i) print('共查詢到:', cursor.rowcount, '條數據。') # 獲取第一行數據 result_1 = cursor.fetchone() print(result_1) # 獲取前n行數據 result_3 = cursor.fetchmany(3) print(result_3) cursor.close() # 關閉遊標 conn.close() # 關閉連接
-
插入數據
執行完插入語句後一定要執行
.commit()
進行提交事務,可以插入多條後統一提交,否則操作無效
import pymysql # 連接數據庫 conn = pymysql.connect( host='127.0.0.1', user='root', passwd='root', port=3306, db='test', charset='utf8' ) # 創建一個遊標 cursor = conn.cursor() # 插入數據 # 數據直接寫在sql後面 sql = "insert into username(id,name) values(%s, %s)" # 注意是%s,不是s% cursor.execute(sql, [3, '王五']) # 列表格式數據 cursor.execute(sql, (4, '馬六')) # 元組格式數據 # 數據單獨賦給一個對象 sql = "insert into username values(%s,%s)" data = (5, '老七') cursor.execute(sql, data) #sql和data之間以","隔開 sql = "insert into username values(%s,'%s')" data = (6, '小八') cursor.execute(sql % data) #sql和data之間以"%"隔開,此時它的sql中注意要給中文字符對應的佔位符加上引號,即"%s",不然會報錯:unsupported format character conn.commit() # 提交,不然無法保存插入或者修改的數據(這個一定不要忘記加上) cursor.close() # 關閉遊標 conn.close() # 關閉連接
-
修改數據
執行完修改語句後一定要執行
.commit()
進行提交事務,可以修改多條後統一提交,否則操作無效
import pymysql # 連接數據庫 conn = pymysql.connect( host='127.0.0.1', user='root', passwd='root', port=3306, db='test', charset='utf8' ) # 創建一個遊標 cursor = conn.cursor() # 修改數據 sql = "update username set name='%s' where id=%s" #注意%s什麼時候加引號,什麼時候不加 data = ('改名了', 1) cursor.execute(sql % data) sql = "update username set name=%s where id=%s" data = ('也改名了', 2) cursor.execute(sql, data) conn.commit() # 提交,不然無法保存插入或者修改的數據 cursor.close() # 關閉遊標 conn.close() # 關閉連接
-
刪除數據
執行完刪除語句後一定要執行
.commit()
進行提交事務,可以刪除多條後統一提交,否則操作無效
import pymysql # 連接數據庫 conn = pymysql.connect( host='127.0.0.1', user='root', passwd='root', port=3306, db='test', charset='utf8' ) # 創建一個遊標 cursor = conn.cursor() # 刪除數據 sql = "delete from username where id=%s" data = (2) cursor.execute(sql, data) conn.commit() # 提交,不然刪除操作不生效 cursor.close() # 關閉遊標 conn.close() # 關閉連接