亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Python MySQLdb模塊

ccj659 / 874人閱讀

摘要:模塊安裝系統(tǒng)報錯安裝如果是系統(tǒng),則需要先安裝服務(wù)。使用字典形式返回數(shù)據(jù)執(zhí)行命令,并不會直接打印可以使用來讀取。

Python MySQLdb模塊 安裝
系統(tǒng):Ubuntu 14.04
MySQLdb
$ pip install Mysql-python
-> 報錯:EnvironmentError: mysql_config not found (安裝libmysqlclient-dev)
$ apt-get install libmysqlclient-dev
$ pip install Mysql-python

如果是MAC系統(tǒng),則需要先安裝 mysql 服務(wù)。
使用

查數(shù)據(jù)示例(fetchall()獲取數(shù)據(jù)

import MySQLdb

# 建立連接
conn = MySQLdb.connect(host="127.0.0.1", user="sate", db="dbtest", passwd="password")

# 設(shè)置游標(biāo)
cur = conn.cursor()

# 執(zhí)行SQL命令,并不會直接返回查詢結(jié)果,而是返回SQL語句影響的行數(shù)
reCount = cur.execute("select * from Products;")
print reCount        # 輸出一個數(shù)字,是SQL影響的行數(shù)

# 使用 fetchall()方法獲取數(shù)據(jù),循環(huán)輸出結(jié)果,以元祖的方式輸出
for data in cur.fetchall():
    print data
    
# 關(guān)閉連接
cur.close()
conn.close()
# 結(jié)果==》
5
("00001", "hilife")
("00002", "GTL")
("00003", "GLA")
("000004", "TYA")
("000005", "TUH")

插入或者更改數(shù)據(jù)

import MySQLdb

conn = MySQLdb.connect(host="127.0.0.1", user="sate", db="dbtest", passwd="password")
cur = conn.cursor()

# 定義SQL語句
sql = "insert into Products(prod_id, prod_name) values(%s, %s);"
# 定義數(shù)據(jù)
params = ("00002", "GLA")
reCount = cur.execute(sql, params)        #為了防止SQL注入,可以使用該方法
conn.commit()   #提交

cur.close()
conn.close()

批量插入數(shù)據(jù)

import MySQLdb

conn = MySQLdb.connect(host="127.0.0.1", user="sate", db="dbtest", passwd="password")
cur = conn.cursor()

# 要批量插入的數(shù)據(jù)
li = [
    ("000004", "TYA"),
    ("000005", "TUH")
]
sql = "insert into Products(prod_id, prod_name) values(%s, %s);"
# 批量使用executemany
reCount = cur.executemany(sql, li)        #為了防止SQL注入,可以使用該方法
conn.commit()   #提交

cur.close()
conn.close()

之前查看數(shù)據(jù)時,返回是元祖形式,有時看起來并不明顯,我們可以選擇用字典的方式,將列名一起輸出。

import MySQLdb

conn = MySQLdb.connect(host="127.0.0.1", user="zheng", db="satezheng", passwd="satezheng")

# 使用字典形式返回數(shù)據(jù)
cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)

# 執(zhí)行命令,并不會直接打印,可以使用fetchall來讀取。
reCount1 = cur.execute("select * from Products")

print reCount1        # 輸出一個數(shù)字,是SQL影響的行數(shù)
for data in cur.fetchall():
    print data
cur.close()
conn.close()
# 結(jié)果==》
5
{"prod_name": "hilife", "prod_id": "00001"}
{"prod_name": "GLA", "prod_id": "00002"}
{"prod_name": "GTL", "prod_id": "00003"}
{"prod_name": "TYA", "prod_id": "000004"}
{"prod_name": "TUH", "prod_id": "000005"}

cursor讀取執(zhí)行結(jié)果的方法有:

fetchall() 把所有的都讀出來

fetchmany(n) 輸出指定數(shù)量n的行

fetchone() 只返回第一條結(jié)果

fetchone() 一次只返回一條結(jié)果,下次返回第二條,和文件的readlines類似

對應(yīng)的也會有指針的概念,scroll()可以指定讀取的位置

cur.scroll(0, mode="absolute")    # 絕對指針, 0 就是指針的位置
cur.scroll(-1, mode="relative")    # 相對指針, -1 指針位置向前移一位(指針位置-1)
import MySQLdb

conn = MySQLdb.connect(host="127.0.0.1", user="zheng", db="satezheng", passwd="satezheng")
cur = conn.cursor()

reCount = cur.execute("select * from Products;")

# 使用 fetchone()方法獲取數(shù)據(jù)
data = cur.fetchone()
print data
data = cur.fetchone()
print data
data = cur.fetchone()
print data
# 結(jié)果==》
("00001", "hilife")
("00002", "GTL")
("00003", "GLA")

# 使用絕對指針時
...
data = cur.fetchone()
print data
data = cur.fetchone()
print data
cur.scroll(0, mode="absolute")    # 將指針指向 0
data = cur.fetchone()
print data
# 結(jié)果==》
("00001", "hilife")
("00002", "GTL")
("00001", "hilife")

# 使用相對指針
data = cur.fetchone()
print data
data = cur.fetchone()
print data
cur.scroll(-1, mode="relative")    # 指針位置減1
data = cur.fetchone()
print data
# 結(jié)果==》
("00001", "hilife")
("00002", "GTL")
("00002", "GTL")

cur.lastrawid() 獲取自增id

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/40889.html

相關(guān)文章

  • 【過時】MySQLdbPython 操作 MySQL 數(shù)據(jù)庫

    摘要:模塊提供的是類似于接口的,而模塊在基礎(chǔ)上又做了進一步封裝,使之符合的數(shù)據(jù)庫規(guī)范。的數(shù)據(jù)庫規(guī)范建議了種不同的方式來構(gòu)造,只支持其中的一種,代碼類似于的格式化操作。提交修改,回滾。異常發(fā)生時,調(diào)用進行回滾。 NOTE(2017-11-18): MySQLdb 不支持 Python 3,而 Python 3 是主流,所以就沒有學(xué)習(xí)的必要了。 環(huán)境:MySQL 5.6.27, Ubuntu 1...

    mj 評論0 收藏0
  • Mac下安裝MySQL-python

    摘要:使用安裝報錯信息中有這兩行,沒有命令先找下這個命令在哪里,查到是下命令。解決方法添加一個軟鏈接,將命令放到環(huán)境變量下然后再執(zhí)行安裝命令看到安裝提示有個警告,安裝的版本是檢測安裝是否成功使用方法來檢測模塊是否安裝。 使用easy_install安裝 sudo easy_install MySQL-python 報錯信息中有這兩行,沒有mysql_config命令 sh: mysql_co...

    xingqiba 評論0 收藏0
  • Python 連接 MySQL

    摘要:一普通連接方法使用模塊普通方式連接。返回結(jié)果表示影響的行數(shù)。查詢時不需要操作,插入更新刪除時需要提交。模塊點此下載類繼承自,表示一個新的連接池。如果需要新的連接池,按照如下格式新增即可。一個連接池可同時提供多個實例對象。 一、普通 MySQL 連接方法 ??使用模塊 MySQLdb 普通方式連接。 #!/usr/bin/env python # _*_ coding:utf-8 _*_...

    williamwen1986 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<