1.安裝pymysql:pip install pymysql (在命令行窗口中執行)
2.卸載pymysql:pip uninstall pymysql (在命令行窗口中執行)
數據庫的連接
需要注意的是port是不用引號括起來 charset是utf8不是utf-8
# 獲取數據庫連接對象
connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='2732195202', db='book', charset='utf8')
# 獲取一個游標
driver = connection.cursor()
# 執行一條sql
driver.execute("select version()")
# 獲取執行sql的返回值
resultData=driver.fetchall()
print(resultData)
# 關閉數據庫
connection.close()
創建數據庫表
import pymysql
#獲取數據庫連接對象
connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='2732195202', db='book', charset='utf8')
#獲取一個游標
driver=connection.cursor()
# 如果該數據庫存在就刪除
driver.execute("drop table if exists t_emp ")
# 定義sql語句
sql=""" CREATE TABLE `t_emp` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`department` varchar(20) DEFAULT NULL COMMENT '部門',
`salary` decimal(10,2) DEFAULT NULL COMMENT '工資',
`age` int(11) DEFAULT NULL COMMENT '年齡',
`sex` varchar(4) DEFAULT NULL COMMENT '性別',
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
"""
# 執行sql
driver.execute(sql)
# 關閉數據連接
connection.close()
向數據庫中添加數據
1.需要注意的是規范sql,該寫的字段都寫上,不使用默認對應
2.提交事務的對象是數據庫連接對象,而不是游標對象
3.pycharm連接mysql數據時,如果連接驅動是高版本,需要加上時區,jdbc:mysql://localhost/book?serverTimezone=GMT%2B8
4.如果主鍵是自動遞增,則不能手動指定值,不能寫該字段,讓其自增長
# 獲取數據庫連接對象
connection=pymysql.connect(host='localhost',port=3306,user='root',passwd='2732195202',db='book',charset='utf8')
# 獲取一個游標
driver=connection.cursor()
# 定義sql語句
sql=""" insert into t_emp(name,department,salary,age,sex)
values("tom","開發部",8000,25,"男"), ("tom","開發部",8000,25,"男")
"""
# 嘗試捕捉錯誤
try:
# 執行SQL,并返回收影響行數
result=driver.execute(sql)
# 提交事務
connection.commit()
print("sql(insert)->error")
except:
# 如果發生錯誤 則回滾事務
print("sql(insert)->error")
driver.rollback()
# 關閉數據庫連接
connection.close()
修改表中的數據
注意點:在操作數據庫之前,需要確認是否獲取連接數據庫成功,并且選中了數庫
2.卸載第三方庫:pip uninstall pymysql
#獲取數據庫連接對象 autocommit=True:設置數據庫自動提交
connection=pymysql.connect(host="localhost",port=3306,user='root',passwd='2732195202',db='book',charset='utf8',autocommit=True)
# 獲取游標對象
driver=connection.cursor()
# 定義sql
sql="update t_emp set salary=%s,name=%s where id=%s;"
# 如果sql錯誤就執行回滾操作,成功就提交
try:
# 執行sql,并且返回影響的行數
result=driver.execute(sql,[6000,"admin",19])
connection.commit()
print("sql(update)->success")
except:
print("sql(update)->error")
connection.rollback()
# 關閉數據庫連接對象
connection.close()
查詢數據
1.項目中的.py文件不能和python庫中的文件進行沖突,否則會出現異常
# 獲取數據庫連接對象
connection=pymysql.connect(host='localhost',port=3306,user='root',passwd='2732195202',db='book',charset='utf8')
# 獲取一個游標對象
driver=connection.cursor()
#定義sql
sql="select id, name, department, salary, age, sex from t_emp where id>%s and sex=%s"
# 只能獲取一次,獲取多次的時候會獲取到null 如果是多個參數,需要傳遞一個元組
try:
driver.execute(sql,(1,"女"))
# 獲取所有的查詢結果 返回一個元組
resultAll=driver.fetchall()
print("resultAll:", resultAll)
# 獲取2條數據
resultTwo=driver.fetchmany(2)
print("resultTwo:", resultTwo)
# 獲取一條數據
resultOne=driver.fetchone()
print("resultThree:", resultOne)
print("sql(select)->success")
except:
connection.rollback()
print("sql(select)->error")
# 關閉數據庫連接
connection.close()
刪除表中的記錄
import pymysql
# 獲取數據庫連接對象
connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='2732195202', db='book', charset='utf8')
# 獲取一個游標
driver = connection.cursor()
# 定義sql
sql="delete from t_emp where id=%s"
try:
# 執行一條sql
driver.execute(sql, (21))
# 提交事務
connection.commit()
print("sql(delete)->success")
except Exception as e:
# 回滾事務
connection.rollback()
print("sql(delete)->error")
print(e)
#關閉數據庫連接
connection.close()
事務操作

提交事務: connection.commit()
回滾事務: connection.rollback()
總結
到此這篇關于pymsql實現增刪改查(python)的文章就介紹到這了,更多相關pymsql增刪改查內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 利用python中pymysql操作MySQL數據庫的新手指南
- Python接口自動化淺析pymysql數據庫操作流程
- python使用pymysql模塊操作MySQL
- python 基于PYMYSQL使用MYSQL數據庫
- python pymysql庫的常用操作
- Python pymysql模塊安裝并操作過程解析
- python數據庫操作mysql:pymysql、sqlalchemy常見用法詳解
- 在python中使用pymysql往mysql數據庫中插入(insert)數據實例
- Python使用pymysql模塊操作mysql增刪改查實例分析
- python之pymysql模塊簡單應用示例代碼
- wxpython+pymysql實現用戶登陸功能
- 在Python中使用MySQL--PyMySQL的基本使用方法
- Python 中使用 PyMySQL模塊操作數據庫的方法
- 使用python連接mysql數據庫之pymysql模塊的使用
- Python pymysql操作MySQL詳細