• Python DB-API


    一、DB-API

    1.1、Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。

    1.2、Python DB-API的使用流程:

    • 引入API模块
    • 获取与数据库的连接
    • 执行sql语句和存储过程
    • 关闭数据库连接

    1.3、Python操作mysql

    Python3以后不支持MySQLdb了,用的是pymysql,这两个模块的功能是一模一样的,而2.x用的是MySQLdb模块

    1.4、示例1:

    import pymysql

    class TestMysql(object):

    def __init__(self): # 这个类的构造器的作用是定义连接,封装后每次调用的时候不用重新连接,提高系统的资源利用和代码执行效率
    self.dbConfig = {
    "host": "192.168.48.136",
    "port": 3306,
    "user": "xiang",
    "passwd": "xiang",
    "db": "test"
    }
    conn = pymysql.connect(**self.dbConfig)
    self.a = conn

    def select(self):
    print("select")

    def update(self):
    print("update")


    if __name__ == '__main__':
    conn = TestMysql()

     1.5、示例2:

    import pymysql

    class Check(object):
    def __init__(self):
    self.config = {
    "host": "172.16.94.85",
    "port": 3306,
    "user": "sqlalchemy",
    "passwd": "sqlalchemy",
    "db": "sqlalchemy"
    }
    self.conn = pymysql.connect(**self.config) #创建连接

    def select(self):
    cur = self.conn.cursor()  #创建游标
    sql = "select * from student;"
    cur.execute(sql)   #执行sql
    result = cur.fetchall()
    return result


    if __name__ == '__main__':
    check = Check()
    print(check.select())

    二、Mysql的事物

    2.1、一般来说,事物是必须满足四个条件(ACID):Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)

    • 事物的原子性:一组事物,要么成功,要么撤回
    • 稳定性:有非法数据(外键约束之类),事物撤回
    • 隔离性:事物独立运行,一个事物处理后的结果,影响了其他事物,那么其他事物会撤回,事物的100%隔离,需要牺牲速度
    • 可靠性:软硬件奔溃后,InnoDB数据表驱动会利用日志文件重构修改,可靠性和高速度不可兼得,innodb flush log at trx commit选项,决定什么时候把事物保存到日志里

    2.2、事务处理

    在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。

    MYSQL 事务处理主要有两种方法:

    ①、用 BEGIN, ROLLBACK, COMMIT来实现

    BEGIN 开始一个事务
    ROLLBACK 事务回滚
    COMMIT 事务确认
    

    ②、直接用 SET 来改变 MySQL 的自动提交模式:

    SET AUTOCOMMIT=0 禁止自动提交
    SET AUTOCOMMIT=1 开启自动提交
    
    查看Mysql 是否开启了事务(默认自动开启的)
    mysql> show variables like 'auto%';

     2.3、mysql常用操作:

    • 创建用户以及授权:grant all on 库名.表名 to 'user1' identified by 'passwd';
    • 查看授权情况:show grants;
    • 查看表的行数:select count(*) from mysql.user;
    • 查看表的内容:select * from mysql.db;
    • 查询表相关:select db from mysql.db; select db,user from mysql.db; select * from mysql.db where host like '192.168.%';
    • 插入表数据:insert into db1.t1 values (1, 'abc');
    • 更新表数据:update db1.t1 set name='aaa' where id=1;
    • 清空表内容:truncate table db1.t1;
    • 删除表:drop table db1.t1;
    • 删除库:drop database db1;
  • 相关阅读:
    正则表达式
    Newtonsoft.Json
    MVC之参数验证(三)
    MVC之参数验证(二)
    MVC之参数验证(一)
    MVC之模型绑定
    导致存储过程重新编译的原因
    IFormattable,ICustomFormatter, IFormatProvider接口
    oracle将id串转换为名字串
    oracle查看表空间大小及使用情况
  • 原文地址:https://www.cnblogs.com/Jweiqing/p/9000061.html
Copyright © 2020-2023  润新知