• Python3-cx_Oracle模块-数据库操作之Oracle


    模块安装

      1.安装cx_Oracle模块之前必须要安装Oracle客户端,否则无法使用

      2.系统上需要装有对应版本的c++编译套件(Linux下:g++ Windows下:VC++)

    参考文档

      https://oracle.github.io/python-cx_Oracle/

      http://cx-oracle.readthedocs.io/en/5.3/index.html

    代码示例

    import cx_Oracle
    
    conn = None
    cursor = None
    try:
        # 1.连接数据库
        # conn = cx_Oracle.Connection("username", "password", "13.13.13.123:1521/orcl")
        #
        conn = cx_Oracle.connect("username/password@13.13.13.123:1521/orcl")
    
        # 2.创建游标对象
        cursor = conn.cursor()
    
        # 3.执行插入语句
        sql = "INSERT INTO TAB_STUDENT(ID,NAME,AGE) VALUES(:id, :name,:age)"
        sql_args = {"id": 30, "name": "Jet", "age": 18}
        cursor.execute(sql, sql_args)
        print(cursor.rowcount)
    
        # 3.批量执行插入语句
        # sql = "INSERT INTO TAB_STUDENT(ID,NAME,AGE) VALUES(:1, :2, :3)"
        # sql_args = [
        #     (10, "Jesdsat", 18,),
        #     (11, "Jedsadt", 18,),
        #     (12, "Jeadst", 18,),
        #     (13, "Jedast", 18,),
        # ]
        # cursor.executemany(sql, sql_args)     # 执行多条插入语句的方法
        sql = "INSERT INTO TAB_STUDENT(ID,NAME,AGE) VALUES(:id, :name, :age)"
        sql_args = [
            {"id": 20, "name": "Jet", "age": 18},
            {"id": 21, "name": "Jet", "age": 18},
            {"id": 22, "name": "Jet", "age": 18},
            {"id": 23, "name": "Jet", "age": 18},
            {"id": 24, "name": "Jet", "age": 18},
            ]
        cursor.executemany(sql, sql_args)     # 执行多条插入语句的方法
        print(cursor.rowcount)                # 获取受影响的行数
    
        # 4.提交事务
        conn.commit()
    except Exception as ex:
        pass
    finally:
        # 5.关闭游标与连接
        cursor.close()
        conn.close()
    增-INSERT

    import cx_Oracle
    
    conn = None
    cursor = None
    try:
        # 1.连接数据库
        conn = cx_Oracle.connect("username/password@13.13.13.123:1521/orcl")
    
        # 2.创建游标对象
        cursor = conn.cursor()
    
        # 3.执行删除语句
        sql = "DELETE FROM TAB_STUDENT WHERE ID = :id"
        sql_args = {"id": 30}
        cursor.execute(sql, sql_args)
        print(cursor.rowcount)                # 获取受影响的行数
    
        # 4.提交事务
        conn.commit()
    except Exception as ex:
        pass
    finally:
        # 5.关闭游标与连接
        cursor.close()
        conn.close()
    删-DELETE

    import cx_Oracle
    
    conn = None
    cursor = None
    try:
        # 1.连接数据库
        conn = cx_Oracle.connect("username/password@13.13.13.123:1521/orcl")
        # 2.创建游标对象
        cursor = conn.cursor()
        # 3.执行更新语句
        sql = "UPDATE TAB_STUDENT SET NAME = :new_name WHERE ID = :id"
        sql_args = {"id": 1, "new_name": "Jack"}
        cursor.execute(sql, sql_args)
        print(cursor.rowcount)                # 获取受影响的行数
        # 4.提交事务
        conn.commit()
    except Exception as ex:
        pass
    finally:
        # 5.关闭游标与连接
        cursor.close()
        conn.close()
    改-UPDATE

    import cx_Oracle
    conn = None
    cursor = None
    try:
        # 1.连接数据库
        conn = cx_Oracle.connect("username/password@13.13.13.123/orcl")
        # 2.创建一个游标对象Cursor对象
        cursor = conn.cursor()
        # 3.执行查询语句
        sql = "SELECT * FROM TAB_STUDENT WHERE USER_NAME=:user_name AND MOBILE=:mobile"
        sql_args = {"user_name": "qq1207501666", "mobile": 18888888888}
        cursor.execute(sql, sql_args)
        # 4.提取查询结果
        print(cursor.fetchone())      # 提取一行结果,相当于cursor.next()
        # cursor.fetchmany(3)         # 提取3行结果
        # cursor.fetchall()           # 提取全部结果
    except Exception as ex:
        pass
    finally:
        # 8.关闭游标与连接
        cursor.close()
        conn.close()
    查-SELECT

    # 1.使用"命名参数"进行绑定
    sql = "SELECT * FROM TAB_STUDENT WHERE ID = :ID"
    sql_args = {"ID": 1}
    cursor.execute(sql, sql_args)   # 传入的是一个字典
    
    # 2.使用"位置参数"进行绑定
    sql = "SELECT * FROM TAB_STUDENT WHERE ID = :1"
    sql_args = (888,)
    cursor.execute(sql, sql_args)   # 传入的是一个元组
    SQL语句绑定参数的两种方式
  • 相关阅读:
    七月算法--12月机器学习在线班-第七次课笔记—最大熵
    七月算法--12月机器学习在线班-第八次课笔记—推荐系统
    七月算法--12月机器学习在线班-第九次课笔记—推荐系统
    七月算法--12月机器学习在线班-第十次课笔记—人工神经网络
    常用测试用例总结
    word 保存错误
    Mysql(免安装版)安装、配置与卸载
    谈谈日志
    idea maven 仓库配置
    如何建立你自己的开发知识体系---转载
  • 原文地址:https://www.cnblogs.com/qq1207501666/p/6774394.html
Copyright © 2020-2023  润新知