pymysql是外部模塊需引入
連接mysql數據庫中的某個庫
import pymysql #導入pymysql模塊 db=pymysql.connect(host='127.0.0.1',user='root',password='123',database='class') # 獲取庫 .connect 建立連接 host=數據庫ip user=用戶名 password=密碼 database=數據庫
創建表
import pymysql #導入pymysql模塊 db=pymysql.connect(host='127.0.0.1',user='root',password='123',database='class') # 獲取庫 .connect 建立連接 host=數據庫ip user=用戶名 password=密碼 database=數據庫 cur=db.cursor() # 使用cursor()方法獲取 操作游標 # 游標:游標的設計是一種數據緩沖區的思想,用來存放sql語句執行結果。 # 游標是在先從數據表中檢索除數據之后才能繼續靈活操作的技術。類似於指針,指向數據結構堆棧中的指針,用來pop出所指向的數據,並且只能每次取一個。 cur.execute('drop table if exists employee') # 使用execute()方法執行sql語句 刪除表employee 如果它存在 sql=input('>>>') # 寫入創建表的sql語句 cur.execute(sql) # 使用execute()方法執行sql語句 db.close() # 關閉數據庫連接
修改(增/刪/改)表中數據
import pymysql #導入pymysql模塊 db=pymysql.connect(host='127.0.0.1',user='root',password='123',database='class') # 獲取庫 .connect 建立連接 host=數據庫ip user=用戶名 password=密碼 database=數據庫 cur=db.cursor(cursor=pymysql.cursors.DictCursor) # 使用cursor()方法獲取 操作游標
# cursor=pymysql.cursors.DictCursor 是將獲取信息以字典形式存儲 # 游標:游標的設計是一種數據緩沖區的思想,用來存放sql語句執行結果。 # 游標是在先從數據表中檢索除數據之后才能繼續靈活操作的技術。類似於指針,指向數據結構堆棧中的指針,用來pop出所指向的數據,並且只能每次取一個。 sql=input('>>>') # 寫入sql語句 try: cur.execute(sql) # 執行sql語句並存在於游標 db.commit() # 提交到數據庫執行 except: db.rollback() # 若發生錯誤則回滾 db.close() # 關閉數據庫連接
查詢表中數據
獲取所有 fetchall( ) ps:(因占用內存 故不常用)
import pymysql #導入pymysql模塊 db=pymysql.connect(host='127.0.0.1',user='root',password='123',database='class') # 獲取庫 .connect 建立連接 host=數據庫ip user=用戶名 password=密碼 database=數據庫 cur=db.cursor(cursor=pymysql.cursors.DictCursor) # 使用cursor()方法獲取 操作游標 # 游標:游標的設計是一種數據緩沖區的思想,用來存放sql語句執行結果。 # 游標是在先從數據表中檢索除數據之后才能繼續靈活操作的技術。類似於指針,指向數據結構堆棧中的指針,用來pop出所指向的數據,並且只能每次取一個。 sql=input('>>>') # 寫入創建表的sql語句 try: cur.execute(sql) # 執行sql語句並存在於游標 results=cur.fetchall() # 獲取所有的記錄列表 for row in results: nid=row[0] age=row[1] sex=row[2] print(f'id={nid},age={age},sex={sex}') except: print('Error:unable to fetch data') db.close() # 關閉數據庫連接
獲取下一條信息 fetchone( )
import pymysql #導入pymysql模塊 db=pymysql.connect(host='127.0.0.1',user='root',password='123',database='class') # 獲取庫 .connect 建立連接 host=數據庫ip user=用戶名 password=密碼 database=數據庫 cur=db.cursor(cursor=pymysql.cursors.DictCursor) # 使用cursor()方法獲取 操作游標 # 游標:游標的設計是一種數據緩沖區的思想,用來存放sql語句執行結果。 # 游標是在先從數據表中檢索除數據之后才能繼續靈活操作的技術。類似於指針,指向數據結構堆棧中的指針,用來pop出所指向的數據,並且只能每次取一個。 sql=input('>>>') # 寫入創建表的sql語句 try: cur.execute(sql) # 執行sql語句並存在於游標 results=cur.fetchone() # 獲取一條記錄 print(results) except: print('Error:unable to fetch data') db.close() # 關閉數據庫連接
獲取多條數據 fetchmany( ) ps:(常用於分頁)
import pymysql #導入pymysql模塊 db=pymysql.connect(host='127.0.0.1',user='root',password='123',database='class') # 獲取庫 .connect 建立連接 host=數據庫ip user=用戶名 password=密碼 database=數據庫 cur=db.cursor(cursor=pymysql.cursors.DictCursor) # 使用cursor()方法獲取 操作游標 # 游標:游標的設計是一種數據緩沖區的思想,用來存放sql語句執行結果。 # 游標是在先從數據表中檢索除數據之后才能繼續靈活操作的技術。類似於指針,指向數據結構堆棧中的指針,用來pop出所指向的數據,並且只能每次取一個。 sql=input('>>>') # 寫入創建表的sql語句 # cur.execute(sql) # # 使用execute()方法執行sql語句 try: cur.execute(sql) # 執行sql語句並存在於游標 results=cur.fetchmany(int) # 獲取int條記錄 超過數據總量無影響 print(results) except: print('Error:unable to fetch data') db.close() # 關閉數據庫連接
