Python3 MySQL 資料庫操作
什麼是 PyMySQL?
PyMySQL 是在 Python3.x 版本中用於連線 MySQL 伺服器的一個庫,Python2中則使用mysqldb。
PyMySQL 遵循 Python 資料庫 API v2.0 規範,幷包含了 pure-Python MySQL 客戶端庫。
PyMySQL 安裝
在使用 PyMySQL 之前,我們需要確保 PyMySQL 已安裝。
PyMySQL 下載地址:https://github.com/PyMySQL/PyMySQL。
如果還未安裝,我們可以使用以下命令安裝最新版的 PyMySQL:
pip install PyMySQL
程式碼連結:
https://github.com/TracyMcgrady6/pymsql_Operation
我的部落格連結:
http://mcgrady.cn/2017/11/07/Python3%20MySQL%20%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%9E%E6%8E%A5/
資料庫連線
- 您已經建立了資料庫 database_name.
- 在TESTDB資料庫中您已經建立了表 EMPLOYEE
- EMPLOYEE表欄位為 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
- 連線資料庫TESTDB使用的使用者名稱為 "username" ,密碼為 "password"。當然可以自己更改
例項:
connect.py
# coding:utf-8
import pymysql
# 開啟資料庫連線
db = pymysql.connect(host='localhost', port=3306,
user='username', passwd='password', db='database_name', charset='utf8')
# 使用 cursor() 方法建立一個遊標物件 cursor
cursor = db.cursor()
# 使用 execute() 方法執行 SQL 查詢
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法獲取單條資料.
data = cursor.fetchone()
print("Database version : %s " % data)
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()
輸出結果:
Database version : 5.5.20-log
建立資料庫表
例項
create_table.py
# coding:utf-8
import pymysql
# 開啟資料庫連線
db = pymysql.connect(host='localhost', port=3306,
user='username', passwd='password', db='database_name', charset='utf8')
# 使用 cursor() 方法建立一個遊標物件 cursor
cursor = db.cursor()
# 使用 execute() 方法執行 SQL,如果表存在則刪除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 使用預處理語句建立表
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()
資料庫查詢
例項
query.py
# coding:utf-8
import pymysql
# 開啟資料庫連線
db = pymysql.connect(host='localhost', port=3306,
user='username', passwd='password', db='database_name', charset='utf8')
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 查詢語句
sql1 = "SELECT * FROM EMPLOYEE WHERE NAME = 'xiaoming'"
# SQL 查詢語句
sql2 = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % 1000
try:
# 執行SQL語句
cursor.execute(sql1)
# results是個元組物件
results = cursor.fetchone()
# 先判斷是否為空
if results is None:
print("查詢為空")
else:
print(results)
# 執行SQL語句
cursor.execute(sql2)
# 獲取所有記錄列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 列印結果
print("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % (fname, lname, age, sex, income))
except:
print("Error: unable to fetch data")
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()
資料庫插入
例項
insert.py
# coding:utf-8
import pymysql
# 開啟資料庫連線
db = pymysql.connect(host='localhost', port=3306,
user='username', passwd='password', db='database_name', charset='utf8')
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL兩種插入格式
sql = "INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)"
sql2 = "INSERT INTO EMPLOYEE(FIRST_NAME, AGE, SEX) VALUES (%s,%s,%s)" % ('Mac', 20, 'boy')
try:
# 執行sql語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()
資料庫批量插入
有一個很cooooooooooool的功能就是批量操作executemany,可以進行多行插入
先寫sql語句。要注意的是裡面的引數,不管什麼型別,統一使用%s作為佔位符
例如,向user表(username,salt,pwd)插入資料
sql = 'INSERT INTO 表名 VALUES(%s,%s,%s)'
對應的param是一個tuple或者list
param = ((username1, salt1, pwd1), (username2, salt2, pwd2), (username3, salt3, pwd3))
這樣就包含了三條資料,通過executemany插入
n=cursor.executemany(sql,param)
例項
insert_batch.py
# coding:utf-8
import pymysql
# 開啟資料庫連線
db = pymysql.connect(host='localhost', port=3306,
user='username', passwd='password', db='database_name', charset='utf8')
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 插入語句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, AGE, SEX) VALUES (%s,%s,%s)"
# 一個tuple或者list
T = (('xiaoming', 31, 'boy'), ('hong', 22, 'girl'), ('wang', 90, 'man'))
try:
# 執行sql語句
cursor.executemany(sql, T)
# 提交到資料庫執行
db.commit()
except :
# 如果發生錯誤則回滾
db.rollback()
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()
資料庫修改更新
例項
# coding:utf-8
import pymysql
# 開啟資料庫連線
db = pymysql.connect(host='localhost', port=3306,
user='username', passwd='password', db='database_name', charset='utf8')
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 更新語句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % 'M'
try:
# 執行SQL語句
cursor.execute(sql)
# 提交到資料庫執行
db.commit()
except:
# 發生錯誤時回滾
db.rollback()
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()
資料庫刪除
例項
# coding:utf-8
import pymysql
# 開啟資料庫連線
db = pymysql.connect(host='localhost', port=3306,
user='username', passwd='password', db='database_name', charset='utf8')
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 刪除語句
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % 20
try:
# 執行SQL語句
cursor.execute(sql)
# 提交修改
db.commit()
except:
# 發生錯誤時回滾
db.rollback()
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()
相關文章
- MySQL 資料庫操作MySql資料庫
- Python3資料庫操作基本類Python資料庫
- Mysql資料庫操作命令MySql資料庫
- PHP操作MySQL資料庫PHPMySql資料庫
- MySQL資料庫常用操作MySql資料庫
- 【Java】操作mysql資料庫JavaMySql資料庫
- MySQL資料庫基本操作MySql資料庫
- shell 操作mysql資料庫MySql資料庫
- 【Mysql】改資料庫庫名操作MySql資料庫
- mysql資料庫基本操作(六)MySql資料庫
- mysql資料庫基本操作(三)MySql資料庫
- mysql資料庫基本操作(四)MySql資料庫
- mysql資料庫基本操作(五)MySql資料庫
- 02、MySQL—資料庫基本操作MySql資料庫
- python資料庫(mysql)操作Python資料庫MySql
- python 操作mysql資料庫PythonMySql資料庫
- Python Mysql 資料庫操作PythonMySql資料庫
- python操作mysql資料庫PythonMySql資料庫
- 使用OTL操作MySQL資料庫MySql資料庫
- python3使用PyMysql連線mysql資料庫PythonMySql資料庫
- Python3結構化資料庫操作包pymysqlPython資料庫MySql
- Mysql資料庫基礎操作命令MySql資料庫
- Python之 操作 MySQL 資料庫PythonMySql資料庫
- MySQL資料庫操作、儲存引擎MySql資料庫儲存引擎
- MySQL系列:資料庫基本操作(1)MySql資料庫
- MySQL資料庫常用操作和技巧MySql資料庫
- MySQL(一) 資料表資料庫的基本操作MySql資料庫
- SQLALchemy操作MySQL關係型資料庫MySql資料庫
- mysqlclient操作MySQL關係型資料庫MySqlclient資料庫
- Go語言中mysql資料庫操作(一)GoMySql資料庫
- 2.資料庫Mysql--------基本操作資料庫MySql
- 01-python操作Mysql資料庫PythonMySql資料庫
- win7 cmd 操作mysql資料庫Win7MySql資料庫
- MYSQL資料庫常用操作命令節選MySql資料庫
- MySQL終端管理資料庫操作指南MySql資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- MySQL學習筆記-使用Navicat操作MySQL資料庫MySql筆記資料庫
- 使用mysql-connector-python操作MYSQL資料庫MySqlPython資料庫