Python:用pymysql连接MySQL数据库


python 的 pymysql 库连接 MySQL数据库,要先手动用 pip install 安装 pymysql 库。

注:以下增删改查操作都是对数据库中基本表 reader 的操作,属性有rno(学号),rpassword(密 码),rname(姓名),rsex(性别),rage(年龄)。

一、连接数据库

def connectdb():
    print("连接SQL服务器")
    db = pymysql.connect("localhost", "zxw", "1719122486", "library_manage")
    print("连接上了!")
    return db

第一个参数我的是本地连接,用“localhost”;第二个参数是用户名;第三个参数是用户密码;第四个参数是所连数据库的名字。


二、插入数据

def insertdb(db, db_data):
    """ 插入数据 """
    cursor = db.cursor()	# 游标
    sql = """insert into reader(rno, rpassword, rname, rsex, rage)
            VALUES('%s', '%s', '%s', '%s', '%s')""" % (
        db_data[0], db_data[1], db_data[2], db_data[3], db_data[4])
    try:
        cursor.execute(sql)		# 执行sql语句
        db.commit()		# 执行成功,提交
    except Exception:
        db.rollback()	# 发生错误,回滚

执行:

db = connectdb()	# 调用连接数据库的函数
db_data = ['10003', '123', '吴军', '男', 21]	# 要插入的数据
insertdb(db, db_data)

三、删除数据

def deletedb(db, rno=''):
    """ 删除数据 """
    cursor = db.cursor()
    sql = "delete from reader where rno = '%s'" % rno
    try:
        cursor.execute(sql)
        db.commit()    # 执行成功,提交
    except Exception:
        db.rollback()  # 发生错误回滚

执行:

db = connectdb()	# 调用连接数据库的函数
deletedb(db, rno='10003')	# 删除学号为'10003'的读者

四、修改数据

def updatedb(db, db_data):
    """ 修改数据 """
    cursor = db.cursor()
    sql = "update reader set rpassword = '%s', rname = '%s', rsex = '%s', \
            rage = '%s' where rno = '%s'" % (
        db_data[1], db_data[2], db_data[3], db_data[4], db_data[0])
    try:
        cursor.execute(sql)
        db.commit()
    except Exception:
        db.rollback()

执行:

db = connectdb()	# 调用连接数据库的函数
db_data = ['10003', '456', '吴军', '男', 25]	# 要修改的数据
updatedb(db, db_data)

五、查询数据

  1. 普通查询:
def querydb(db, rname=''):
    """ 查询读者 """
    cursor = db.cursor()
    sql = "select * from reader where rname = '%s'" % (rname)
    data = {}
    val = []
    i = 0
    try:
        cursor.execute(sql)
        results = cursor.fetchall()     # 获取全部行
        for row in results:
            val = list(row)     # 获取的每行是一个元组,转换成列表
            data[i] = val       # 用字典存储每个元组
            i += 1
        return data		# 返回查询结果
    except Exception:
        db.rollback()  # 发生错误,回滚

执行:

db = connectdb()	# 调用连接数据库的函数
data = querydb(db, rname='张三')		# 查询所有姓名为'张三'的读者信息
  1. 模糊查询
def querydbdb(db, rname=''):
    """ 查询读者 """
    cursor = db.cursor()
    sql = "select * from reader where rname like '%%%%%s%%%%' " % (rname)
    data = {}
    val = []
    i = 0
    try:
        cursor.execute(sql)
        results = cursor.fetchall()		# 获取全部行
        for row in results:
            val = list(row)		# 获取的每行是一个元组,转换成列表
            data[i] = val		# 用字典存储每个元组
            i += 1
        return data		# 返回查询结果
    except Exception:
        db.rollback()  # 发生错误,回滚

执行:

db = connectdb()	# 调用连接数据库的函数
data = querydb(db, rname='张')		# 查询所有姓'张'的读者的信息

六、断开数据库连接

def closedb(db):
    """ 断开数据库连接 """
    db.close()

执行:

db = connectdb()	# 调用连接数据库的函数
closedb(db)		# 断开数据库连接
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值