pymysql 的操作

数据库连接对象的使用

import pymysql

1. 创建连接对象
    语法:
    连接对象 = pymysql.connect(
    host="连接地址 localhost, ip 地址",
    port=端口号,默认3306,
    user="用户名",
    password="密码",
    database="数据库名",
    charset="utf8"
    )

2. 使用连接对象
    a. 创建游标对象
        游标对象 = 连接对象.cursor(cursor=None)
        参数说明: 指定游标的类型
        `Cursor`: 默认
        `SSCursor`: 默认基础上采用生成器
        `DictCursor`: 字典类型游标
        `SSDictCursor`: 在字典采用生成器方式

        例如: cnn.cursor(cursor=pymysql.cursors.SSDictCursor)

    b. 切换数据库
        数据库连接对象.select_db(数据库名)

    c. 关闭连接
        连接对象.close()

    d. 事务操作的方法
        连接对象.begin(): 开启事务,默认开启
        连接对象.commit(): 提交事务
        连接对象.rollback(): 回滚事务

        注意: pymysql 鉴于安全考虑,所有的写(insert,delete,update)操作都必须使用事务

游标对象的使用

1. 游标对象用于执行sql语句
    语法:
        游标对象.execute(sql,args=None)
    传参数的方式说明:
        1. 如果是完整的sql语句, 就直接传第一个参数即可
            备注: 如果通过传入的形式拼接的sql语句,容易造成sql注入的风险.
            sql注入: 恶意用户构建特殊sql参数传入,从而非法获取数据.

        2. 如果sql语句是使用 %s 占位的时候,必须使用第二个参数args(实际的数据)
            例子: sql = "select * from student where name=%s and age=%s"
                  args =  ["张飞",51] #列表或者元组
                  游标对象.execute(sql,args)

    了解:
        游标对象.executemany(sql,args=[(数据1,数据2),(数据1,数据2),(数据1,数据2)])
        同一条sql执行多次

2. 游标对象获取数据
    游标对象.fetchall(): 获取所有
    游标对象.fetchone(): 获取下一条(每执行一次获取一条)
    游标对象.fetchmany(number): 获取指定条数据

3. 游标的关闭
    游标对象.close()

    备注: 建议每次使用完游标执行和获取数据之后立马关闭游标

    提供一个上下文管理器的语法, 自动关闭(任何打开的东西)
    with 连接对象.cursor() as cursor:
        # 使用游标cursor  执行和获取数据, 自动关闭游标

    文件操作
    with open("./data.txt","r",encoding="utf-8") as fp:
        fp.read()

pymysql—事务

事务: pymysql规定 所有的写操作必须使用事务

连接对象.begin()
连接对象.commit()
连接对象.rollback()

你可能感兴趣的:(python)