py mysql pymysql資料庫模組

2021-10-18 12:55:02 字數 2791 閱讀 9921

[toc]

## 一 介紹

在python程式中運算元據庫要用到了pymysql模組,該模組本質就是乙個套接字客戶端軟體,使用前需要先安裝

pip3 install pymysql

## 二 **鏈結、執行sql、關閉**

# 1.匯入模組

import pymysql

user=input('使用者名稱: ').strip()

pwd=input('密碼: ').strip()

# 2.建立鏈結

conn=pymysql.connect(host='localhost',user='root',password='123',database='testdb',charset='utf8')

# 3.設定游標

cursor=conn.cursor() #結果集預設以元組顯示

#cursor=conn.cursor(cursor=pymysql.cursors.dictcursor) #字典結果集

# 4.執行sql語句[查詢]

sql='select * from userinfo where name=%s and password=%s'

res=cursor.execute(sql,[user,pwd]) #此寫法可解決sql注入問題。

print(res)

# 5.關閉游標和連線

cursor.close()

conn.close()

# 6.其他

if res:

print('登入成功')

else:

print('登入失敗')

## 三 **資料查詢:**

執行查詢後,預設返回的是查詢出的行數,如果要檢視查詢出的資料,需要用到下列4個函式來實現

1. fetchone(n) 顯示游標指向的那條資料,每查詢一次游標下移一次

2. fetchmany(n) 顯示到第n條資料

3. fetchall() 顯示所有查詢出的資料

4. scroll(n) 移動游標位置

import pymysql

conn=pymysql.connect(host='localhost',user='root',password='123',database='testdb',charset='utf8')

cursor=conn.cursor()

sql='select * from userinfo;'

#1. 獲取所有查詢出的資料

res=cursor.execute(sql)

res1=cursor.fetchall()

print('所有:',res1)

#2. 獲取單行資料

res=cursor.execute(sql) #檢視了資料後,結果集游標就變化了,所以每次都查詢執行sql

res2=cursor.fetchone()

res3=cursor.fetchone()

print('單行:',res2,res3)

#3. 獲取查詢出的前三行資料

res=cursor.execute(sql)

res4=cursor.fetchmany(3)

print('前三行:',res4)

#4.修改游標後獲取單行資料

res=cursor.execute(sql)

cursor.scroll(3,mode='absolute') # 相對絕對位置移動

# cursor.scroll(3,mode='relative') # 相對當前位置移動

res=cursor.execute(sql)

res5=cursor.fetchone()

print('游標:',res2,res3)

conn.commit()

cursor.close()

conn.close()

#執行結果

所有: ((1, 'luogang', 22), (2, 'luo', 23), (3, 'gang1', 23), (4, 'gang2', 23), (5, 'gang3', 23))

單行: (1, 'luogang', 22) (2, 'luo', 23)

前三行: ((1, 'luogang', 22), (2, 'luo', 23), (3, 'gang1', 23))

游標: (1, 'luogang', 22) (2, 'luo', 23)

## 四 **資料修改**

資料修改和資料查詢方法是一樣的,寫好sql然後用`cursor.execute()`執行sql,只返回影響的行數.

如果是插入語句,且有自增id,可以通過`lastrowid`方法顯示最後

import pymysql

conn=pymysql.connect(host='localhost',user='root',password='123',database='testdb',charset='utf8')

cursor=conn.cursor()

#1.插入語句

sql='insert into userinfo(name,age) values(%s,%s);'

res=cursor.execute(sql,("root",36))

print('插入:',res)

print('最後id:',cursor.lastrowid)

#2. 更新語句:略

conn.commit() #提交後才發現表中插入記錄成功

cursor.close()

conn.close()

#執行結果:

插入: 1

最後id: 7

Catalan數(卡特蘭數)

卡特蘭數 規定h 0 1,而h 1 1,h 2 2,h 3 5,h 4 14,h 5 42,h 6 132,h 7 429,h 8 1430,h 9 4862,h 10 16796,h 11 58786,h 12 208012,h 13 742900,h 14 2674440,h 15 969484...

卡特蘭數 Catalan數

卡特蘭數 規定h 0 1,而h 1 1,h 2 2,h 3 5,h 4 14,h 5 42,h 6 132,h 7 429,h 8 1430,h 9 4862,h 10 16796,h 11 58786,h 12 208012,h 13 742900,h 14 2674440,h 15 969484...

Catalan數(卡特蘭數)

2012 04 12 21 08 13 標籤 卡特蘭數 原始出處 作者資訊和本宣告。否則將追究法律責任。卡特蘭數 規定h 0 1,而h 1 1,h 2 2,h 3 5,h 4 14,h 5 42,h 6 132,h 7 429,h 8 1430,h 9 4862,h 10 16796,h 11 58...