[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...