pymysql實現增刪改查的操作指南(python)
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()# 執行一條sqldriver.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; '''# 執行sqldriver.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()# 定義sqlsql='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()#定義sqlsql='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()# 定義sqlsql='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增刪改查內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: