国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python MySQLdb模塊

ccj659 / 814人閱讀

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

Python MySQLdb模塊 安裝
系統: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系統,則需要先安裝 mysql 服務。
使用

查數據示例(fetchall()獲取數據

import MySQLdb

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

# 設置游標
cur = conn.cursor()

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

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

插入或者更改數據

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);"
# 定義數據
params = ("00002", "GLA")
reCount = cur.execute(sql, params)        #為了防止SQL注入,可以使用該方法
conn.commit()   #提交

cur.close()
conn.close()

批量插入數據

import MySQLdb

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

# 要批量插入的數據
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()

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

import MySQLdb

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

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

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

print reCount1        # 輸出一個數字,是SQL影響的行數
for data in cur.fetchall():
    print data
cur.close()
conn.close()
# 結果==》
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讀取執行結果的方法有:

fetchall() 把所有的都讀出來

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

fetchone() 只返回第一條結果

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

對應的也會有指針的概念,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()方法獲取數據
data = cur.fetchone()
print data
data = cur.fetchone()
print data
data = cur.fetchone()
print data
# 結果==》
("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
# 結果==》
("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
# 結果==》
("00001", "hilife")
("00002", "GTL")
("00002", "GTL")

cur.lastrawid() 獲取自增id

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40889.html

相關文章

  • 【過時】MySQLdbPython 操作 MySQL 數據庫

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

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

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

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

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

    williamwen1986 評論0 收藏0

發表評論

0條評論

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