python通過什么方式操作數據庫?
- python解決一切問題幾乎都是通過庫的方式,包括內置庫和第三方庫。
- 目前絕大部分中小企業使用的都是mysql數據庫,因為開源免費,屌絲企業,能省則省。
- python中通過pymsql庫提供對mysql數據庫操作的支持
環境安裝
主要操作
- 建立數據庫連接:db=pymsql.connect(host="localhost",port=3306,user="usernmae",password='pwd',database=" ",charset="utf8")
- 創建游標:cu=db.cursor(cursor=pymsql.cursors.Dictcursor) #加上參數指示以字典方式展示查找的數據,默認返回的數據類型是元組
- 執行sql語句:effect=cu.execute() #執行一條sql語句----->effect返回的是sql執行成功后受影響的行數
- 如果是操作數據庫中的數據,還得做一個提交操作,否則修改不會生效:db.commit()
- 取出select語句執行后查找到的內容:
- res=cu.fetchone():返回一條數據,是一個元祖類型
- res=cu.fetchmany(n):取出前n條,返回一個二維元組類型
- res=cu.fetchall():取出所有查找到的數據,返回一個二維元組類型
- scroll回滾操作:cu.scroll(0,mode="absolute")/cu.scroll(0,mode="relative") #第一個參數表示移動的步長,第二個參數是表示移動模式,相對移動或絕對移動
- 獲取插入數據后子增列最后的值:lastid=cu.lastrowid #是個屬性,不是方法
代碼示例
1 import pymysql
2 import time
3
4 #創建數據庫連接
5 conn=pymysql.connect(host='localhost',port=3306,user='nanfy',
6 password="abc123!",db="db1",charset="utf8") #port是int型
7
8 #創建游標
9 cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
10
11 # effect=cursor.execute("select * from score")
12 # print(effect)
13
14 # res=cursor.fetchone()
15 # print(res)
16
17
18 #插入一條數據后,獲取插入后自增列最大值
19 effect1=cursor.execute("insert into student(sname,gender,class_id) values (%s,%s,%s),(%s,%s,%s)",
20
21
22 ("南風","男",2,"北風",'女',1))
23 print(effect1)
24 conn.commit()
25
26 #獲取自增列最后插入的值
27 print(cursor.lastrowid)