Python操作数据库知识 pymysql 模块

一、安装 pymysql 模块 

pip install pymysql # python 3.x 

二、利用pymysql操作mysql

# 导入模块
import pymysql

# 连接数据库
conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='root',db='数据库名')

# 获取到数据库的指针
cursor = conn.cursor()

# 改变返回数据的类型(可以改为字典、列表等)
# 在默认情况下cursor方法返回的是BaseCursor类型对象,BaseCursor类型对象在执行查询后每条记录的结果以列表(list)表示。
# 如果要返回字典(dict)表示的记录,就要设置cursorclass参数为pymysql.cursors.DictCursor类。
cursor = conn.cursor(cursor = pymysql.cursors.DictCursor)


sql = '需要执行的 SQL 语句'

# 执行sql语句,向数据库添加信息 返回对数据库的影响行数
ret = cursor.execute(sql)

# 字符串拼接
ret = cursor.execute('sql%s',(name))

# 获取数据库内容(跟指针的位置相关)
content = cursor.fetchone() # 获取一条内容
content = cursor.fetchall()  # 获取所有的内容
content = cursor.fetchmany(3) # 获取指定数值的内容

# 改变指针的位置(负数向上,正数向下)
cursor.scroll(-1,mode='relative') # 相对当前的位置移动
cursor.scroll(2,mode='absolute') # 相对绝对的位置移动

# 将要执行的 SQL 语句提交到数据库
conn.commit()

''' 关闭 '''
cursor.close()
conn.close()

三、pymysql 中对数据库的事务操作

import pymysql

conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='root',db='数据库')

cursor = conn.cursor()

try:

    insertSQL0 = 'INSERT INTO ACCOUNT2 (name,balance) VALUES ("oldboy",4000),("oldboy2",10000)'
    insertSQL1 = 'UPDATE account2 SET balance=balance-30 WHERE name="yuan"'
    insertSQL2 = 'UPDATE account2 SET balance=balance+30 WHERE name="xiaolv"'
    
    cursor.execute(insertSQL0)
    conn.commit()

    cursor.execute(insertSQL1)
    # 防止SQL注入
    '''
        cursor.execute('SELECT * FROM 表名 WHERE name=%s',('小明'))  无命名
        cursor.execute('SELECT * FROM 表名 WHERE name=%(us)',{us:'小明'})  命名
    '''
    raise Exception # 如果SQL语句执行失败,获取到错误
    cursor.execute(insertSQL2)

    cursor.close()
    conn.commit()

except Exception as e:

    conn.rollback() # 出现错误回滚到前一个 commit 处
    conn.commit()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值