【Python Oracle】使用cx_Oracle 进行数据库操作介绍

简介:
介绍了基本使用,本文介绍一下使用python 对oracle 数据库进行常见操作的介绍
oracle@rac3:/home/oracle/python>cat sqlops.py 
#!/usr/bin/python
# -*- coding: utf-8 -*- 
import cx_Oracle
import sys
import urllib
import os
# function #
def conndb(dbname='yangdb',username='yang',pwd='yang'):
##创建数据库连接,设置默认值   
   if dbname == 'yangdb':
        username = "yang" 
        pwd = "yang" 
        dsn=cx_Oracle.makedsn('127.0.0.1','1523','yangdb')
        db=cx_Oracle.connect(username,pwd,dsn)
   return db

def SelectDB(db,sql):
##select 查询
    cursor = db.cursor() 
    cursor.execute(sql)
    result=cursor.fetchall()
    cursor.close()
    return result
    
def DMLDB_N(db,sql):
##插入,更新,删除
   cursor = db.cursor()
   cursor.execute(sql)
   cursor.close()
   db.commit()

def DMLDB_P(db,sql,para):
##插入,更新,删除
   cursor = db.cursor()
   cursor.execute(sql,para)
   cursor.close()
   db.commit()

def DDLDB(db,sql):
#DDL 语句
   cursor=db.cursor()
   cursor.execute(sql)
   cursor.close()

def printResult(rs):
   for row in rs: 
        print row 

print "============== 连接数据库 =================="
db=conndb()
print "===============创建表 pytb=================="
ddl='create table pytab(id number,val varchar2(20))'
DDLDB(db,ddl)

sel='select * from pytab'
rs=SelectDB(db,sel)

printResult(rs)
print "===============向pytb插入数据==============="
inst='insert into pytab values(0,\'dba\')'
DMLDB_N(db,inst)
sel='select * from pytab'
rs=SelectDB(db,sel)
printResult(rs)
print "=======使用参数,向pytb插入数据============="
dt=[{'id':1,'val':'qilong'},
    {'id':2,'val':'xxq'},   
    {'id':3,'val':'aliyun'},    
    {'id':4,'val':'aliyundba'},   
    {'id':5,'val':'aliyunsa'},
    {'id':6,'val':'aliyunidc'},
    {'id':7,'val':'aliyunnework'},
    {'id':8,'val':'alibaba'},
    {'id':9,'val':'taobao'},    
    {'id':10,'val':'alipay'},
    {'id':11,'val':'tech'},
    {'id':12,'val':'oracle'},
    {'id':13,'val':'IBM'}    
   ]
inst='insert into pytab values(:id,:val)'
for bulk in dt:
   DMLDB_P(db,inst,bulk)
sel='select * from pytab'
rs=SelectDB(db,sel)
printResult(rs)
print "===============删除表 pytb 数据=============="
delt='delete from pytab where id=1'
DMLDB_N(db,delt)
print "===============查询表 pytb 数据=============="
sel='select * from pytab'
rs=SelectDB(db,sel)

printResult(rs)
结果显示:
oracle@rac3:/home/oracle/python>python sqlops.py 
============== 连接数据库 ==================
===============创建表 pytb==================
===============向pytb插入数据===============
(0, 'dba')
=======使用参数,向pytb插入数据=============
(0, 'dba')
(1, 'qilong')
(2, 'xxq')
(3, 'aliyun')
(4, 'aliyundba')
(5, 'aliyunsa')
(6, 'aliyunidc')
(7, 'aliyunnework')
(8, 'alibaba')
(9, 'taobao')
(10, 'alipay')
(11, 'tech')
(12, 'oracle')
(13, 'IBM')
===============删除表 pytb 数据==============
===============查询表 pytb 数据==============
(0, 'dba')
(2, 'xxq')
(3, 'aliyun')
(4, 'aliyundba')
(5, 'aliyunsa')
(6, 'aliyunidc')
(7, 'aliyunnework')
(8, 'alibaba')
(9, 'taobao')
(10, 'alipay')
(11, 'tech')
(12, 'oracle')
(13, 'IBM')
相关文章
|
1天前
|
SQL 关系型数据库 MySQL
第十三章 Python数据库编程
第十三章 Python数据库编程
|
1天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
5天前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
125 8
Python与NoSQL数据库(MongoDB、Redis等)面试问答
|
5天前
|
SQL 关系型数据库 MySQL
Python与MySQL数据库交互:面试实战
【4月更文挑战第16天】本文介绍了Python与MySQL交互的面试重点,包括使用`mysql-connector-python`或`pymysql`连接数据库、执行SQL查询、异常处理、防止SQL注入、事务管理和ORM框架。易错点包括忘记关闭连接、忽视异常处理、硬编码SQL、忽略事务及过度依赖低效查询。通过理解这些问题和提供策略,可提升面试表现。
25 6
|
11天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
16天前
|
关系型数据库 MySQL 数据库连接
Python+SQLite数据库实现服务端高并发写入
Python中使用SQLite内存模式实现高并发写入:创建内存数据库连接,建立表格,通过多线程并发写入数据。虽然能避免数据竞争,但由于SQLite内存模式采用锁机制,可能在高并发时引发性能瓶颈。若需更高性能,可选择MySQL或PostgreSQL。
23 0
|
21天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
23天前
|
存储 关系型数据库 MySQL
数据库字符编码MySQL中使用UTF-8还是UTFB4
数据库字符编码MySQL中使用UTF-8还是UTFB4
20 0
|
27天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
116 1
|
3天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
14 0

热门文章

最新文章

推荐镜像

更多