pymql簡單使用【入門crud】
pymysql是python3中的mysqldb(python2)
在使用這個庫之前,首先你得確保自己會使用基本的sql語句,對mysql資料庫具有一定的了解(基本即可)。
一、安裝
通過pip進行安裝:
pip install pymysql
二、通過資料庫視覺化程式/終端建資料庫和表
pymysql在使用之前,需要通過資料庫視覺化程式/終端建立資料庫
三、使用pymysql運算元據庫
連線資料庫:
我們通過一下必填引數連線資料庫:
# 連線mysql
conn = pymysql.connect(
host=
'127.0.0.1'
, user=
'自定義使用者名稱(root)'
, password=
"自定義密碼"
, database=
'資料庫名稱'
, port=
3306
, charset=
'utf8'
)
其中的host,user,password,port,database均為定位到資料庫所需要的引數,而charset用於指定該資料庫的編碼格式,需要與建立資料庫的時候(create database 資料庫名稱 charset=『***x』)保持一致(一般為utf8)
獲取游標物件:
連線成功後我們可以通過conn拿到其中的cursor物件,該物件即為執行sql語句以及拿到相關結果的操作物件,也就是直譯的游標物件。
# 建立游標物件
cursor = conn.cursor(
)
編寫sql語句並執行:
使用pymql需要自己手動進行sql語句的編寫,而sql語句的基本增刪改查語句中,只有查詢語句不會被資料庫造成影響,其他語句則均會對資料庫產生作用效果。
pymysql為了避免由於出現異常或者錯誤情況而導致資料庫出現狀況,所有對資料庫造成實際影響的語句,均需要通過con.commit()
方法來提交所有的變更。
另外pymysql在執行sql語句的方法cursor.execute()
方法中,可以多輸入乙個引數,這個引數可以是陣列(list)/元組(tuple)/字典(dict),pymysql會在內部對該引數進行處理,並自動將其處理為對應完整sql語句。
接下來的語句中也將分別使用陣列/元組/dict三種形式來演示相關的寫法,同時這三者是通用的。
注意一下語句,插入表為info,該錶具有id,name,age,gender四個屬性,可自信修改為自己所需要的屬性。
# 編寫sql語句
sql =
'select * from info'
# 表名請自行修改為自定義引數
# 純字串模式,單引數
cursor.execute(sql)
# 編寫增加的sql語句
sql =
"insert into info(name,age,gender) values (%s,%s,%s)"
# 使用陣列進行賦值插入,即第二個引數使用陣列形式
add_data =
['雲無月'
,4500
,'女'
]cursor.execute(sql, add_data)
# 編寫修改的sql語句
sql =
"update info set name=%s where name=%s"
# 第二個引數使用元組形式,實際上可以與上文陣列寫法完全一致(也可以直接自行拼接字串)
add_data =
('王牛蛙'
,'王辟邪'
)# 注意len返回的是修改的數目 也就是資料庫修改時的數字返回值
len= cursor.execute(sql, add_data)
# 注意,如果要使用dict(json)作為sql語句補位,那麼補位的位置寫法為%(key命)s
# 如下補位為id:
sql =
"delete from info where id =%(id)s"
add_data =
# 執行dict形式的補位
cursor.execute(sql, add_data)
釋放資源:
# 關閉游標
cursor.close(
)# 關閉連線
conn.close(
)
異常處理與回滾:
pymysql在連線的時候,就會對當前資料庫進行一次快照(保留未操作初始狀態),如果出現錯誤情況,可以通過conn.rollback()
方法進行回滾。
由於資料庫操作涉及到網路和其他裝置的操作,所以必須需要做好異常處理。
通常我們會進行如下格式的異常處理:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 導包
import pymysql
# 連線mysql
conn = pymysql.connect(
host=
'127.0.0.1'
, user=
'自定義使用者名稱(root)'
, password=
"自定義密碼"
, database=
'資料庫名稱'
, port=
3306
, charset=
'utf8'
)try
:# 建立游標物件
cursor = conn.cursor(
)# 編寫增加/刪除/修改的sql語句
# 編寫sql語句,進行相關操作...
# ...如:
sql =
"delete from info where id =%(id)s"
add_data =
# 執行編寫的sql語句
cursor.execute(sql, add_data)
# 提交修改
conn.commit(
)# 關閉,釋放資源
cursor.close(
)print
("任務完成"
)except exception as e:
# 回滾
conn.rollback(
)print
(e)finally
: conn.close(
)
Lucene入門操作 簡單的CRUD
lucene是乙個非常優秀的開源的全文搜尋引擎 架構 我們可以在它的上面開發出各種全文搜尋的應用來。直接上 建立索引庫 public void testcreateindex throws exception 第五步 關閉indexwriter物件。indexwriter.close 獲得index...
簡單操作crud
資料的操作 dml 建立資料 插入資料 insert into tbl name 字段列表 values 值列表 insert into exam student name,stu no values zhangsan php001 如果需要在插入時,為所有的字段設定值,那麼可以省略字段列表。要求是...
簡單操作crud
資料的操作 dml 建立資料 插入資料 insert into tbl name 字段列表 values 值列表 insert into exam student name,stu no values zhangsan php001 如果需要在插入時,為所有的字段設定值,那麼可以省略字段列表。要求是...