• pymsql入门


    https://www.python.org/dev/peps/pep-0249/完整文档地址
    一丶pymsql的安装
    1.安装pip详见百度
    2.输入指令:pip install PyMySQL
    安装
    注意:sql注入问题详见百度
    #基本语句模板
    #导入模块
    import pymysql
    # 打开数据库连接
    conn = pymysql.connect(
    host,地址
    port,端口
    user,用户名
    password,密码
    database,数据库名
    charset编码)
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = conn.cursor()
    sql="输入sql语句"
    # 使用 execute()  方法执行 SQL 查询
    cursor.execute(sql)
    
    #提交到数据库执行
    cursor.commit()
    
    # 使用 fetchone() 方法获取单条数据.
    data = cursor.fetchone()
    
    # 取指定条数
    cursor.fetchmany(3)
    
    # # 取所有
    #cursor.fetchall()
    
    cursor.scroll(1,mode="absolute")#绝对移动,指哪里去那里
    
    cursor.scroll(1,mode="relative")#相对移动,相对于当前光标的位置
    print ("Database version : %s " % data)
    #关闭游标对象
    cursor.colse()
    # 关闭数据库连接
    conn.close()
    
    在增加或者更新或者删除操作中使用rollback()回滚操作来保护数据,并且会用到commit()方法将操作提交到数据库
    模板如下
    import pymysql
    # 打开数据库连接
    db = pymysql.connect("localhost","testuser","test123","TESTDB" )
    # 使用cursor()方法获取操作游标
    cursor = db.cursor()
    # SQL 语句
    sql = ""
    try:
       # 执行SQL语句
       cursor.execute(sql,可传入参数避免注入)
       # 提交修改
       db.commit()
    except:
       # 发生错误时回滚
       db.rollback()
    #关闭游标
    cursor.close()
    # 关闭连接
    db.close()
    基本模板
    执行事务
    事务机制可以确保数据一致性。
    事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
    原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
    一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
    隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
    持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
    Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。
    
    
    
    
    
    错误处理
    DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:
    异常 描述
    Warning    当有严重警告时触发,例如插入数据是被截断等等。必须是 StandardError 的子类。
    Error  警告以外所有其他错误类。必须是 StandardError 的子类。
    InterfaceError 当有数据库接口模块本身的错误(而不是数据库的错误)发生时触发。 必须是Error的子类。
    DatabaseError  和数据库有关的错误发生时触发。 必须是Error的子类。
    DataError  当有数据处理时的错误发生时触发,例如:除零错误,数据超范围等等。 必须是DatabaseError的子类。
    OperationalError   指非用户控制的,而是操作数据库时发生的错误。例如:连接意外断开、 数据库名未找到、事务处理失败、内存分配错误等等操作数据库是发生的错误。 必须是DatabaseError的子类。
    IntegrityError 完整性相关的错误,例如外键检查失败等。必须是DatabaseError子类。
    InternalError  数据库的内部错误,例如游标(cursor)失效了、事务同步失败等等。 必须是DatabaseError子类。
    ProgrammingError   程序错误,例如数据表(table)没找到或已存在、SQL语句语法错误、 参数数量错误等等。必须是DatabaseError的子类。
    NotSupportedError  不支持错误,指使用了数据库不支持的函数或API等。例如在连接对象上 使用.rollback()函数,然而数据库并不支持事务或者事务已关闭。 必须是DatabaseError的子类。
    事务处理原则和错误解答




  • 相关阅读:
    css
    博客目录
    macOS下psql客户端中文乱码问题
    PostgreSQL dblink的使用
    error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
    mac中环境变量配置
    PostgreSQL Copy 命令
    Linux下rz命令和sz命令使用方法
    Tmux 使用教程
    create_time和update_time自动填写
  • 原文地址:https://www.cnblogs.com/cangshuchirou/p/8952726.html
Copyright © 2020-2023  润新知