oracle python操作 增删改查
oracle删除
删除表内容
truncate table new_userinfo;
删除表
drop table new_userinfo;
1.首先,python链接oracle数据库需要配置好环境。
我的相关环境如下:
1)python:Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32
2)oracle:11.2.0.1.0 64bit。这个是server版本号,在链接oracle数据库的时候还需要oracle的客户端版,客户端版本的下载也要参考python的版本,python是32位的客户端下载也要用32位。
3)cx_Oracle:python链接oracle的驱动包,这个需要自己安装,https://pypi.python.org/pypi/cx_Oracle/5.3在这个网址中下载对应的驱动,下载驱动的时候一定要选好对应的版本,我的python是3.6的32位版本,所以在下载驱动的时候也要选择对应的版本,我选择的版本是cx_Oracle-5.3-11g.win32-py3.6.exe (md5),下载后直接安装运行就行了,他会有一个自检,如果没有通过就说明你的驱动版本没有下载对。
2.上面的工作做好之后,在刚才下载好的oracle客户端版本中找到下面三个文件:oci.dll、oraocci11.dll、oraociei11.dll,将这几个dll文件复制到
Python\Python36-32\Lib\site-packages文件夹中。
3.在python中输入:
|
1
|
import cx_Oracle |
没有报错的话说明驱动安装成功。
4.数据库连接操作:
|
1
2
3
4
5
6
7
|
conn = cx_Oracle.connect('xzt/xzt@localhost/testdb')#这里的顺序是用户名/密码@oracleserver的ip地址/数据库名字 cur = conn.cursor() sql = "SELECT * FROM DUAL" cur.execute(sql) cur.close() conn.commit() conn.close() |
5.数据库查询:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import cx_Oracle conn = cx_Oracle.connect('xzt/xzt@localhost/testdb') cursor = conn.cursor () cursor.execute ("SELECT * FROM STUDENT_TB") rows = cursor.fetchall() #得到所有数据集 for row in rows: print("%d, %s, %s, %s" % (row[0], row[1], row[2], row[3]))#python3以上版本中print()要加括号用了 print("Number of rows returned: %d" % cursor.rowcount) cursor.execute ("SELECT * FROM STUDENT_TB") while (True): row = cursor.fetchone() #逐行得到数据集 if row == None: break print("%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])) print("Number of rows returned: %d" % cursor.rowcount) cursor.close () conn.close () |
6.数据库插入:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import cx_Oracle conn = cx_Oracle.connect('xzp/xzp@localhost/testdb') cursor = conn.cursor() cursor.execute ("CREATE TABLE INSERTTEST(ID INT, C1 VARCHAR(50), C2 VARCHAR(50), C3 VARCHAR(50))") cursor.execute ("INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(1213412, 'asdfa', 'ewewe', 'sfjgsfg')") cursor.execute ("INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(12341, 'ashdfh', 'shhsdfh', 'sghs')") cursor.execute ("INSERT INTO INSERTTEST (ID, COL1, COL2, COL3)VALUES(123451235, 'werwerw', 'asdfaf', 'awew')") conn.commit() #这里一定要commit才行,要不然数据是不会插入的 cursor.close() conn.close() |
上面的代码用了递归运算,循环读取彩票信息,可以一直读取到2003年第一期,由于使用的是递归,在性能上不是很好,代码非常吃内存,电脑内存不够的朋友就不要尝试了,容易死机。
参考:https://www.jb51.net/article/133972.htm
oracle python操作 增删改查的更多相关文章
- oracle触发器中增删改查本表
oracle触发器中增删改查本表 (1)只有before insert触发器中才可以查询或更新本表 create or replace trigger tri_test_ins before inse ...
- Hbase常用操作(增删改查)
Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区 作者:net19880504 [字体:大 中 小] 运行Eclipse,创建一个新的Java工程“HBa ...
- Android-Sqlite-OOP方式操作增删改查
之前写的数据库增删改查,是使用SQL语句来实现的,Google 就为Android开发人员考虑,就算不会SQL语句也能实现增删改查,所以就有了OOP面向对象的增删改查方式 其实这种OOP面向对象的增删 ...
- JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件
JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...
- python全栈开发day62-两表操作增删改查,外键,if else模板语法
一.今日内容总结: day62 内容回顾: 1. django有关所有命令: pip install django==1.11.14 django-admin startproject 项目名称 cd ...
- Python 集合的各种操作 数学运算 关系操作 增删改查 生成式
# 集合是无序的 是可变的 不能重复 允许数学运算 分散存储 # 创建# collegel = {'哲学','经济学','法学','教育学'}## # {'教育学', '经济学', '法学', '哲学 ...
- sql server连接oracle并实现增删改查
需要一个软件ODAC112040Xcopy_64bit 我连接的oracle是11g r2 sqlserver 是 2016 软件下载 https://pan.baidu.com/s/1OpYmpR ...
- SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)
Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql ...
- Django学习笔记--数据库中的单表操作----增删改查
1.Django数据库中的增删改查 1.添加表和字段 # 创建的表的名字为app的名称拼接类名 class User(models.Model): # id字段 自增 是主键 id = models. ...
随机推荐
- ES6 的class类 笔记
class Person{ // 构造 constructor(x,y){ this.x = x; this.y = y; } toString(){ return (this.x + "的 ...
- 关于defer.promise.then 异步的一个疑问 | 用柯里化做promise | 用递归做promise
疑问:感觉会报错,因为执行到defer.promise.then这时候还没到defer.resolve,因为异步读文件,总归会慢 解答:先执行defer.promise.then,是给callback ...
- java 泛型 类型作为参量 Class<T> transform
Class<T> transform T:作为类型,用于定义变量: transform:作为具体类的类:用于创建实例. 类型信息是脱敏的具体类: 可以使用class的具体功能: 不能使用具 ...
- spring boot是一个应用框架生成工具?
spring boot是一个应用框架生成工具?
- 删除ubuntu旧内核的方法
https://www.jianshu.com/p/75edb9a5fbab 磁盘满了 需要清理系统盘 1,先用uname -a 查看当前内核版本: uname -a Linux 10-9-37-13 ...
- nightwatch 基于Webdriver的端到端自动化测试框架
nightwatch 是使用nodejs编写的,基于Webdriver api 的端到端自动化测试框架 包含以下特性 清晰的语法,基于js 以及css 还有xpath 的选择器 内置测试runner, ...
- React 如何适用less
1.使用 create-react-app 创建的项目,默认情况下是看不到 webpack 相关的配置文件,我们需要给它暴露出来,使用下面命令即可: npm run eject 2.添加less np ...
- ubuntu14.04 安装python3.7
下载源码:https://www.python.org/downloads/release/python-373/ 一.先安装需要的包zlib1g,libffisudo apt-get update ...
- WPF——OXY绘图_old
plotModel = new PlotModel() { Title = "数据统计", LegendTitle = "Max:红色,Min:黄色", Leg ...
- 组合模式( Composite Pattern)
参考文档:http://blog.csdn.net/ai92/article/details/298336 定义: 组合多个对象形成树形结构以表示“整体-部分”的结构层次. 设计动机: 这幅图片我们都 ...