在本篇中,咱們使用python版本爲python3.7。在python3中,鏈接mysql數據庫咱們須要使用pymysql這個第三方庫。咱們能夠直接使用pip命令來安裝,安裝的命令爲:python
pip install PyMySQL
若是在你的環境中同時存在python2和python3兩個版本,那麼咱們須要安裝python3版本的時候就能夠使用mysql
pip3 install PyMySQL
在作好準備工做後,咱們就能夠開始使用pymysql這個第三方庫進行鏈接mysql了sql
1 import pymysql 2 3 '''鏈接數據庫,咱們直接調用connect這個函數,須要在該函數中傳入數據庫的鏈接信息,如 4 數據庫的IP地址、帳號、密碼和數據庫的名稱''' 5 conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='test')
1 import pymysql 2 3 '''鏈接數據庫,咱們直接調用connect這個函數,須要在該函數中傳入數據庫的鏈接信息,如 4 數據庫的IP地址、帳號、密碼和數據庫的名稱''' 5 def connMysql(): 6 try: 7 conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='test') 8 return conn 9 except: 10 return '鏈接失敗' 11 12 '''操做mysql往數據庫中插入一條數據''' 13 def insertOne(): 14 '''在成功鏈接mysql以後,咱們須要創建一個遊標,只有創建成功了遊標,才能夠對mysql進行操做''' 15 conn = connMysql() 16 cur = conn.cursor() 17 sql = 'INSERT INTO tab_user VALUES (%s, %s)' 18 params = (1, 'admin') 19 '''使用excute函數將須要查詢的sql和變量傳入''' 20 cur.execute(sql, params) 21 conn.commit() 22 '''在操做完數據庫以後,咱們須要關閉遊標和鏈接對象,不然鏈接池會被佔滿''' 23 cur.close() 24 conn.close() 25 26 '''操做mysql插入多條數據''' 27 def insertMany(): 28 conn = connMysql() 29 cur = conn.cursor() 30 sql = 'INSERT INTO tab_user VALUES (%s, %s)' 31 params = [(2, '張三'), (3, '李四')] 32 '''使用executemany函數將須要查詢的sql和變量傳入''' 33 cur.executemany(sql, params) 34 conn.commit() 35 '''在操做完數據庫以後,咱們須要關閉遊標和鏈接對象,不然鏈接池會被佔滿''' 36 cur.close() 37 conn.close()
1 import pymysql 2 3 '''鏈接數據庫,咱們直接調用connect這個函數,須要在該函數中傳入數據庫的鏈接信息,如 4 數據庫的IP地址、帳號、密碼和數據庫的名稱''' 5 def connMysql(): 6 try: 7 #conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='test') 8 conn = pymysql.connect(host='10.66.132.42', user='cdb_outerroot', passwd='@09ui%sbc09', db='gic_marketing') 9 return conn 10 except: 11 return '鏈接失敗' 12 13 '''查詢一條數據''' 14 def get_one(): 15 conn = connMysql() 16 cur = conn.cursor() 17 sql = "SELECT * FROM tab_user WHERE id = %s" 18 params = (2,) 19 cur.execute(sql, params) 20 '''查詢只有一條數據的時候使用fetchone()''' 21 result = cur.fetchone() 22 cur.close() 23 conn.close() 24 return result 25 26 '''查詢全部數據''' 27 def get_All(): 28 conn = connMysql() 29 cur = conn.cursor() 30 sql = "SELECT * FROM tab_gic_coup_card" 31 cur.execute(sql) 32 '''須要查詢全部數據的時候應該使用fetchall()''' 33 result = cur.fetchall() 34 #db = [item for item in result] 35 cur.close() 36 conn.close() 37 return result 38 39 '''查詢部分數據''' 40 def get_Many(): 41 conn = connMysql() 42 cur = conn.cursor() 43 sql = "SELECT * FROM tab_gic_coup_card WHERE card_name like %s" 44 params = ('%測試') 45 cur.execute(sql) 46 '''fetchmany()須要傳入變量來肯定查詢幾條數據,若是不傳入則默認只查詢一條''' 47 result = cur.fetchmany(2) 48 '''列表推倒式,在這裏就不作說明,也能夠不使用列表推倒式,直接return result''' 49 db = [item for item in result] 50 cur.close() 51 conn.close() 52 return db
修改和刪除就不在此說明,可參考「2.1 python鏈接mysql後執行插入語句「的代碼數據庫