在python中,我們可以通過mysqldb
這一介面卡連線並運算元據庫。
其中有兩個主要的物件connection
和cursor
,分別用來與資料庫連線和通訊。
下面給出乙個與資料庫連線的例項:
conn = mysqldb.connect(
host='127.0.0.1', # 主機名 127.0.0.1 為本機ip
port=3306, # 埠
user='root', # 使用者名稱
passwd='***', # 資料庫密碼
db="test", # 資料庫名
charset='utf8'
# 字符集
)
conn有幾個比較重要的方法:
cursor最重要的方法是execute()
和fetch*()
,其中execute用來執行sql語句,fetch用來查詢結果:
fetch*方法其實類似於c語言的的檔案操作,有乙個指標指向當前的位置,fetchone()得到第一條結果,此時指標便會指向第二條結果,此時fetchall()便得到除了第一條以外的所有結果。
cursor = conn.cursor() # 建立游標
sql = "select * from user"
cursor.execute(sql) # 執行sql語句
print cursor.rowcount
# 上一條sql語句處理或影響的行數
rs = cursor.fetchone() # fetchone為查詢一條結果
print rs
rs = cursor.fetchmany(3) # fetchmany(n) 為查詢n條
print rs
rs = cursor.fetchall() # fetchall 為查詢剩餘所有
print rs
cursor.close() # 關閉游標和連線
conn.close()
此時靈活運用以上的兩個物件,便可以對資料庫進行各種操作。
conn = mysqldb.connect(...)
cursor = conn.cursor()
#插入語句
sql_insert = "insert into user(userid, username) values (10, 'name10')"
# 更新語句
sql_update = "update user set username='name11' where userid=1"
# 刪除語句
sql_delete = "delete from user where useid<3"
try:
# 一組操作,同時進行,出錯時取消所有操作
cursor.execute(sql_insert)
print cursor.rowcount
cursor.execute(sql_update)
print cursor.rowcount
cursor.execute(sql_delete)
print cursor.rowcount
# 若有異常 輸出異常 將事物取消
except exception as e:
print e
conn.rallback()
# 提交事物, 使變化在資料庫中生效
conn.commit()
cursor.close()
conn.close()
python之資料庫操作 sqlite
關於sqlite 不像常見的客戶端 伺服器結構範例,sqlite引擎不是個程式與之通訊的獨立程序,而是連線到程式中成為它的乙個主要部分。所以主要的通訊協議是在程式語言內的直接api呼叫。這在消耗總量 延遲時間和整體簡單性上有積極的作用。整個資料庫 定義 表 索引和資料本身 都在宿主主機上儲存在乙個單...
資料庫之Python操作MySQL
python操作mysql一共有兩種方式,第一種是用原生模組pymysql和mysqldb,這兩種模組在py2中都支援,但是在py3中只支援pymysql,但是pymysql可以通過pymysql.install as mysqldb 的方式構造成和mysqldb一樣的使用 第二種方式是orm框架 ...
qt學習之資料庫操作
qt下運算元據庫的簡單介紹 自己的環境 windows10 64位 mysql 8.0.13 qt 5.12 1,準備工作 將mysql安裝路徑下的libmysql.dll,新增到qt安裝目錄d qt 5.12.3 msvc2017 64 bin 根據自己的而定 下,在.pro檔案中新增 qt sq...