python通过什么方式操作数据库?

  • python解决一切问题几乎都是通过库的方式,包括内置库和第三方库。
  • 目前绝大部分中小企业使用的都是mysql数据库,因为开源免费,屌丝企业,能省则省。
  • python中通过pymsql库提供对mysql数据库操作的支持

环境安装

  • pip install pymysql

主要操作

  • 建立数据库连接: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)
02-13 10:08
查看更多