1. 程式人生 > >python 之操作mysql 數據庫實例

python 之操作mysql 數據庫實例

不能 insert rom har list limit 生效 commit 連接

對於python操作mysql 數據庫,具體的步驟應為:

1. 連接上mysql host 端口號 數據庫 賬號 密碼
2. 建立遊標
3. 執行sql(註意,如果是update,insert,delete 需要進行提交才能生效。)
4. 獲取結果
5. 關閉連接、關閉遊標

一、默認獲取的結果是元祖

 1 conn = pymysql.connect(host=localhost,user=root,passwd=123456,port=3306,db=sakila,charset=utf8)
 2 #charset 必須寫utf8, 不能寫utf-8; port 要寫int 類型,不能加上引號
3 cur = conn.cursor() # 建立遊標,遊標認為你是倉庫管理員 4 cur.execute(select * from user limit 10;) 5 res = cur.fetchone() # 只獲取一條結果,它的結果是一個一維元祖,第一次獲取到第一條 6 ##print(‘fetchone‘,cur.fetchone()) # 第二次獲取到的是第二行; 7 print(res) 8 print(fetchall,cur.fetchall())# 獲取第二條開始的所有數據,獲取sql語句執行的結果, 是個二維元祖,它把結果放到一個元祖裏,每一條數據也是一個元祖
9 print(res) 10 print(res[0][1]) 11 print(fetchone,cur.fetchone()) # #被獲取完了,所以獲取到的是None 12 # 如果確定只有一條數據的用fetchone, 超過一條數據的那就用fetchall

二、將獲取的結果轉字典,方便使用

1 conn = pymysql.connect(host=localhost,user=root,passwd=123456,port=3306,db=sakila,charset=utf8)
2 cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #
將元祖轉為字典 3 sql = "select * from user where name=‘aa‘" 4 cur.execute(sql) 5 print(cur.fetchone()) #獲取字典 6 res = cur.fetchall() 7 print(res) #list 裏存字典 8 cur.close()#關閉遊標 9 conn.close()#關閉連接

在python 中會經常用到mysql,因此可以寫了一個函數用於mysql的操作,要使用時調用以下即可。

 1 import pymysql
 2 def op_mysql(host,user,password,db,sql,port=3306,charset=utf8):
 3     conn = pymysql.connect(host=host,user=user,
 4                            password=password,
 5                            db=db,
 6                            port=port,
 7                            charset=charset)
 8     cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
 9     cur.execute(sql)
10     # select, update, delete, insert 長度都是6位
11     # SELECT
12     sql_start = sql[:6].upper() # sql 的前6位字符串,判斷它是什麽類型的sql語句
13     if sql_start == SELECT:
14         res = cur.fetchall()
15     else:
16         conn.commit()
17         res = ok
18     cur.close()
19     conn.close()
20     return res
21 sql = select * from user limit 5;
22 op_mysql(
23         host=localhost,
24         user=root,
25         password=123456,
26         port=3306,
27         db=sakila,
28         charset=utf8,
29         sql=sql)


python 之操作mysql 數據庫實例