使用pyMySql 連線mysql

raysuen發表於2018-04-03
安裝
pip3 install pymysql

常用函式:

execute()  執行語句並返回收影響的行數

import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
effect_row = cursor.execute("insert into t2 VALUES(1,'ray')")

# 執行SQL,並返回受影響行數
# effect_row = cursor.execute("update hosts set host = '1.1.1.2' where nid > %s", (1,))

# 執行SQL,並返回受影響行數
# effect_row = cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])


# 提交,不然無法儲存新建或者修改的資料
()

# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
truple_str='ray'
effect_row = cursor.execute("insert into t2 VALUES(3,%s)",truple_str)
print(effect_row)

truple_str='suen'
effect_row = cursor.execute("insert into t2 VALUES(4,%s)",truple_str)
print(effect_row)

# 提交,不然無法儲存新建或者修改的資料
()

# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
truple_str=('lalala',1)

cursor.execute('update t2 set t_name=%s where t_id=%s',truple_str)
# 提交,不然無法儲存新建或者修改的資料
()

# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
# truple_str=('lalala',1)

tid=1
cursor.execute('delete from t2 where t_id=%s',tid)
# 提交,不然無法儲存新建或者修改的資料
()

# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
executemany()執行條語句,以元組的形式傳入

import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
truple_str=[
    (5,'aaa'),
    (6,'bbb'),
    (7,'ccc'),
    (8,'ddd')
]

cursor.executemany("insert into t2 VALUES(%s,%s)",truple_str)
# 提交,不然無法儲存新建或者修改的資料
()

# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
fecheone()
fechemany()
fecheall()
注:在fetch資料時按照順序進行,可以使用cursor.scroll(num,mode)來移動遊標位置,如:
  • cursor.scroll(1,mode='relative')  # 相對當前位置移動,正數為向下移動,負數為向上移動
  • cursor.scroll(2,mode='absolute') # 相對絕對位置移動

import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
# truple_str=('lalala',1)

cursor.execute('select * from t2')


#fech 是去記憶體中獲取
res = cursor.fetchone()
print(res)

res = cursor.fetchmany(7)  #指定獲取的條目數
print(res)

res = cursor.fetchall()
print(res)


# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
# truple_str=('lalala',1)

cursor.execute('select * from t2')


#fech 是去記憶體中獲取
res = cursor.fetchone()
print(res)

res = cursor.fetchone()
print(res)

cursor.scroll(0,mode='absolute')
res = cursor.fetchall()
print(res)

cursor.scroll(-1,mode='relative')
res = cursor.fetchall()
print(res)


# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

# 執行SQL,並返回收影響行數
# truple_str=('lalala',1)

cursor.execute('select * from t2')


#fech 是去記憶體中獲取
while 1:
    res = cursor.fetchone()
    if res == None:
        break
    print(res)



# 關閉遊標
cursor.close()
# 關閉連線
conn.close()

cursor修改,改變獲取後的結果為字典集合

import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 執行SQL,並返回收影響行數
# truple_str=('lalala',1)

cursor.execute('select * from t2')


#fech 是去記憶體中獲取
while 1:
    res = cursor.fetchone()
    if res == None:
        break
    print(res)

# 關閉遊標
cursor.close()
# 關閉連線
conn.close()
lastrowid  獲取最後的自增序列號

import pymysql

# 建立連線
conn = pymysql.connect(host='127.0.0.1'port=3306user='root'passwd='123456'db='test',charset="utf8" )
# 建立遊標
cursor = conn.cursor()

cursor.executemany('insert into t3(t_name) VALUES (%s)',[('aaa07'),('aaa08'),('aaa09')])

()

tid=cursor.lastrowid
print(tid)

# 關閉遊標
cursor.close()
# 關閉連線
conn.close()




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28572479/viewspace-2152559/,如需轉載,請註明出處,否則將追究法律責任。

相關文章