五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > Python操作MySQL(創(chuàng)建/連接/查詢/插入/修改/刪除)的方法

Python操作MySQL(創(chuàng)建/連接/查詢/插入/修改/刪除)的方法

文章來源:365jz.com     點擊數(shù):695    更新時間:2018-01-27 11:44   參與評論

Python操作MySQL

1.導入MySQLdb數(shù)據(jù)庫模塊

在導入MySQLdb之前,需要安裝MySQLdb模塊。使用pip安裝,命令如下:

pip install MySQL-python

安裝成功后,導入MySQLdb模塊:

import MySQLdb

2.打開數(shù)據(jù)庫

sqlite3模塊使用connect方法打開數(shù)據(jù)庫,方法參數(shù)可以為主機ip(host)、用戶名(user)、密碼(passwd)、數(shù)據(jù)庫名稱(db)、端口(port)和編碼(charset)。

con = MySQLdb.connect(host='localhost',user='root',passwd='',db='test', port=3306, charset='utf8')

3.數(shù)據(jù)庫連接對象

上面通過connect方法返回的con對象,即是數(shù)據(jù)庫連接對象,它提供了以下方法:

·cursor()方法用來創(chuàng)建一個游標對象。

·commit()方法用來事務(wù)提交。

·rollback()方法用來事務(wù)回滾。

·close()方法用來關(guān)閉一個數(shù)據(jù)庫連接。

4.游標對象的使用

對數(shù)據(jù)庫的查詢需要使用到游標對象,首先通過cursor()方法創(chuàng)建一個游標對象:

cur = con.cursor()

游標對象有以下方法支持數(shù)據(jù)庫的操作:

·execute()用來執(zhí)行SQL語句。

·executemany()用來執(zhí)行多條SQL語句。

·close()用來關(guān)閉游標。

·fetchone()用來從結(jié)果中取一條記錄,并將游標指向下一條記錄。

·fetchmany()用來從結(jié)果中取多條記錄。

·fetchall()用來從結(jié)果中取出所有記錄。

·scroll()用于游標滾動。

5.建表

首先使用游標對象創(chuàng)建一個person表,包含id、name、age等3

列,代碼如下:

cur.execute(' CREATE TABLE person (id int not null auto_increment primary key,name varchar(20),age int)')

6.插入數(shù)據(jù)

向person表中插入兩條數(shù)據(jù)。插入數(shù)據(jù)一般有兩種做法,第一種做法是直接構(gòu)造一個插入的SQL語句,代碼如下:

data="'qiye',20"
cur.execute(' INSERT INTO person (name,age) VALUES (%s)'%data)

但是這種做法非常不安全,容易導致SQL注入。另一種做法使用占位符“%s”的方式來規(guī)避這個問題,代碼如下:

cur.execute(' INSERT INTO person (name,age) VALUES (%s,%s)',('qiye',20))

還可以使用executemany()執(zhí)行多條SQL語句,使用executemany()方法比循環(huán)使用execute()方法執(zhí)行多條SQL語句效率高很多。

cur.executemany(' INSERT INTO person (name,age) VALUES (%s,%s)',[('marry',20),('jack',20)])

這兩種方法插入數(shù)據(jù)都不會立即生效,需要使用數(shù)據(jù)庫對象con

進行提交操作:

con.commit()

如果出現(xiàn)錯誤,還可以使用回滾操作:

con.rollback()

7.查詢數(shù)據(jù)

查詢person表中的所有數(shù)據(jù),代碼如下:

cur.execute('SELECT * FROM person')

要提取查詢數(shù)據(jù),游標對象提供了fetchall()和fetchone()方法。fetchall()方法獲取所有數(shù)據(jù),返回一個二維的列表。

fetchone()方法獲取其中的一個結(jié)果,返回一個元組。使用方法如

下:

cur.execute('SELECT * FROM person')
res = cur.fetchall()
for line in res:
print line
cur.execute('SELECT * FROM person')
res = cur.fetchone()
print res

8.修改和刪除數(shù)據(jù)

cur.execute('UPDATE person SET name=%s WHERE id=%s',('rose',1))
cur.execute('DELETE FROM person WHERE id=%s',(0,))
con.commit()
con.close()

 

如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點擊進入論壇

發(fā)表評論 (695人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號