美文网首页
pymysql 操作

pymysql 操作

作者: 清水秋香 | 来源:发表于2020-03-19 14:21 被阅读0次
  • Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
  • fetchall():接收全部的返回结果行.
  • rowcount: 这是一个只读属性,并返回执行 execute()方法后影响的行数。
import pymysql

#打开数据库连接
connection = pymysql.connect(host='127.0.0.1',user='root',passwd='wgz123',port=3306,db='classes')
#获取操作游标
try:
    with connection.cursor() as cursor:
        sql = '''
            insert into chaxun values('1993','1','1.4')
        '''
        cursor.execute(sql)
    connection.commit()
    with connection.cursor() as cursor:
        sql = """
            delete from chaxun where amount = '1.2';
        """
        cursor.execute(sql)
    connection.commit()

    with connection.cursor() as cursor:
        sql = '''
            update chaxun set year='1995' where amount = '1.3';
        '''
        cursor.execute(sql)
    connection.commit()

    with connection.cursor() as cursor:
        sql = '''
            select * from chaxun;
        '''
        cursor.execute(sql)
        print(cursor.fetchmany())
        print(cursor.fetchone())
        print(cursor.fetchall())
    with connection.cursor() as cursor:
        sql = '''
        create table if not exists test(
            id int auto_increment,
            name char(255),
            age int not null,
            primary key(id)
        )
        '''
        cursor.execute(sql)
    connection.commit()

except Exception as e:
    connection.rollback()
    raise e
finally:
    connection.close()
  • 之所以要使用 try 代码块,是因为真实场景当中,你执行的 sql 可能有四五条甚至七 八条 其中包括向多张表、甚至多个库插入复杂的组合数据,数据之间存在外键关系或其他逻 辑关系(比如学生表和成绩表),一旦某条 sql 报错而其他 sql 不报错(报错的 sql 没 有插入数据进去,其他的 sql 没报错,成功插入了数据),就会造成大量脏数据,引 发 bug,带来大量的数据修复工作,所以我们用 try 捕获异常,一旦任意 sql 报错即 刻回滚操作

相关文章

网友评论

      本文标题:pymysql 操作

      本文链接:https://www.haomeiwen.com/subject/woqlyhtx.html