python数据库基本操作—pymysql

  • PyMySQL是在python3.x版本中用于连接MySQL服务器的一个库,python2中使用的是mysqldb
  • PyMySQL遵循python数据库API v2.0 规范,包含了pure-python MySQL客户端库。

1.基础操作

利用PyMySQL库来进行操作之前,需要保证MySQL数据库已经启动,且你可以拿到该数据库的用户名和密码,有权限进行操作,否则就会报错。基本操作如下:

import pymysql
#连接数据库(主机号,用户,密码,数据库,编码)
db=pymysql.connect(host="localhost",user="root",password="root",databsase="数据库名",charset="utf8")
#创建一个游标对象
cursor=db.cursor()

#创建需要执行的sql语句
sql= """
CREATE TABLE USER1 (
id INT auto_increment PRIMARY KEY ,
name CHAR(10) NOT NULL UNIQUE,
age TINYINT NOT NULL
)ENGINE=innodb DEFAULT CHARSET=utf8;
"""

#使用execute()方法执行sql查询
cursor.execute(sql)
#关闭光标对象
cursor.close()
#关闭数据库连接
db.close()

2.异常处理时的回滚操作

以上代码只需要对sql语言进行更改,就可以实现利用Python对数据库进行常规操作,比如增删改查等等,套路都是一样的。但是有时候我们在对数据库进行操作的时候,会发生一些异常错误,事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态。

try:
    cursor.execute(sql)
    #提交到数据库执行
    db.commit()
except Exception as e:
    #发生异常则回滚
    db.rollback()

3.增删改查

上面说到只需要更改sql语言就可以进行增删改查,具体操作如下:

  • 添加一条数据
sql ='insert into userinfo (user,pwd) values (%s,%s);'
name = '小明'
pwd = '123456789'
cursor.execute(sql, [name, pwd])
db.commit()
cursor.close()
db.close()
  • 添加多条数据
sql='insert into userinfo (user,pwd) valus (%s,%s);'
data=[('jack','1234'),('jency','2345')]
# 拼接并执行sql语句
cursor.executemany(sql, data)
db.commit()
cursor.close()
db.close()
  • 获取最新一条记录的id
sql ='insert into userinfo (user,pwd) values (%s,%s);'
name = '小明'
pwd = '123456789'
cursor.execute(sql, [name, pwd])
last_id=cursor.lastrowid
db.commit()
cursor.close()
db.close()
  • 删除记录
sql='delete from userinfo where user=%s;'
name = 'june'
cursor.execute(sql, [name])
db.commit()
cursor.close()
db.close()
  • 更改数据
sql='update userinfo set pwd=%s where user=%s;'
cursor.execute(sql, ['6666','june'])
db.commit()
cursor.close()
db.close()
  • 查询数据
#查询n条数据
sql = 'select user,pwd from userinfo;'
cursor.execute(sql)
# 取到查询结果
ret1 = cursor.fetchone()  # 取一条
ret2 = cursor.fetchmany(n)  # 取n条

注意:前面的数据库连接建立已经游标对象建立均省略,从sql开始写的

猜你喜欢

转载自blog.csdn.net/weixin_44460780/article/details/101351146