📜  Python中的Oracle数据库连接

📅  最后修改于: 2020-04-10 15:39:03             🧑  作者: Mango

有时,作为编程的一部分,我们需要使用数据库,因为我们要存储大量信息,因此我们使用数据库,例如Oracle,MySQL等。因此,在本文中,我们将讨论Oracle数据库与Python的连通性。这可以通过模块名称cx_Oracle来完成。
Oracle数据库
为了与我们的Python程序通信任何数据库,我们需要一些连接器,除了cx_Oracle模块外什么都没有。
安装cx_Oracle:

pip install cx_Oracle

通过此命令,您可以安装cx_Oracle软件包,但是必须先在PC中安装Oracle数据库。
如何使用此模块进行连接

  • 导入数据库特定的模块
    import cx_Oracle
  • connect():现在使用connect()函数在Python程序和Oracle数据库之间建立连接。
    con = cx_Oracle.connect('username/password@localhost')

    cursor():执行sql查询并提供结果,需要一些特殊对象,而cursor()对象只不过

    cursor = cx_Oracle.cursor()

    执行方法:

    cursor.execute(sqlquery) – – – -> to execute single query.
    cursor.execute(sqlqueries) – – – -> to execute a group of multiple sqlquery seperated by “;"
  • commit():对于此查询中的DML(数据手册语言)查询,您需要执行(更新,插入,删除)操作,我们需要commit(),然后仅将结果反映到数据库中。
  • Fetch():这将检索查询结果集的下一行并返回单个序列;如果没有更多行可用,则返回None。
  • close():完成所有操作后关闭所有操作:
    cursor.close()
    con.close()

    创建表:

    # 导入模块
    import cx_Oracle
    # 在Oracle数据库中创建表
    try:
        con = cx_Oracle.connect('scott/tiger@localhost')
        # 现在执行sqlquery
        cursor = con.cursor()
        # 创建一个表编号为数字的标题
        cursor.execute("create table student(srollno number, \
                        name varchar2(10), efees number(10, 2)")
        print("表创建成功")
    except cx_Oracle.DatabaseError as e:
        print("Oracle有问题", e)
    # 通过最后写入是否发生任何错误,我们也可以关闭所有数据库操作
    finally:
        if cursor:
            cursor.close()
        if con:
            con.close()

    输出:

    表创建成功

    插入表格:

    # 在Oracle数据库中创建表的程序
    import cx_Oracle
    try:
        con = cx_Oracle.connect('scott/tiger@localhost')
        # 现在执行sqlquery
        cursor = con.cursor()
        cursor.execute("insert into student values(19585, Niranjan Shukla, 72000")
        # 提交插入提供的数据
        con.commit()
        print("值插入成功")
    except cx_Oracle.DatabaseError as e:
        print("Oracle有问题", e)
    # 通过最后写入是否发生任何错误,我们也可以关闭所有数据库操作
    finally:
        if cursor:
            cursor.close()
        if con:
            con.close()

    输出:

    值插入成功