查询
fetchall方式
#coding=utf-8
import cx_Oracle
#连接数据库
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 使用cursor() 方法创建一个游标对象cursor
cursor = conn.cursor ()
print('fetchall()方式------------------------')
# 使用预编译方式
cursor.prepare("SELECT * FROM emp")
# 使用execute()方法执行SQL查询
cursor.execute (None)
rows = cursor.fetchall() #得到所有数据集
for row in rows:
for item in row:
print(item,end='\t\t')
print()
print("行数: %d" % cursor.rowcount)
# 关闭游标
cursor.close ()
# 关闭数据库连接
conn.close ()
fetchone方式
#coding=utf-8
import cx_Oracle
#连接数据库
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 使用cursor() 方法创建一个游标对象cursor
cursor = conn.cursor ()
print('fetchone()方式------------------------')
cursor.execute ("SELECT * FROM emp")
while (True):
# 使用fetchone() 方法获取单条数据
row = cursor.fetchone() #逐行得到数据集
if row == None:
break
else:
for item in row:
print(item,end='\t\t')
print()
print("行数: %d" % cursor.rowcount)
# 关闭游标
cursor.close ()
# 关闭数据库连接
conn.close ()
条件查询-普通方式
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 使用cursor() 方法创建一个游标对象cursor
cursor = conn.cursor ()
cursor.prepare("SELECT * FROM dept where deptno=10")
cursor.execute (None)
rows = cursor.fetchall() #得到所有数据集
for row in rows:
for item in row:
print(item,end='\t\t')
print()
print("行数: %d" % cursor.rowcount)
# 关闭游标
cursor.close ()
# 关闭数据库连接
conn.close ()
条件查询-传递列表方式
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 使用cursor() 方法创建一个游标对象cursor
cursor = conn.cursor ()
cursor.prepare("SELECT * FROM dept where deptno=:1")
cursor.execute (None,[10])
rows = cursor.fetchall() #得到所有数据集
for row in rows:
for item in row:
print(item,end='\t\t')
print()
print("行数: %d" % cursor.rowcount)
# 关闭游标
cursor.close ()
# 关闭数据库连接
conn.close ()
条件查询-传递字典方式
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 使用cursor() 方法创建一个游标对象cursor
cursor = conn.cursor ()
cursor.prepare("SELECT * FROM dept where deptno=:no")
cursor.execute (None,{'no':10})
rows = cursor.fetchall() #得到所有数据集
for row in rows:
for item in row:
print(item,end='\t\t')
print()
print("行数: %d" % cursor.rowcount)
# 关闭游标
cursor.close ()
# 关闭数据库连接
conn.close ()
插入记录
普通方式
#coding=utf-8
import cx_Oracle
#连接数据库
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 创建一个游标对象cursor
cursor = conn.cursor()
#插入一条记录
cursor.prepare("insert into dept (deptno,dname,loc) values(2,'研发部','北京')")
cursor.execute(None)
print('影响的行数:%d'%cursor.rowcount)
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
传递列表参数方式
#coding=utf-8
import cx_Oracle
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 创建一个游标对象cursor
cursor = conn.cursor()
#插入一条数据
param=[3,'设计部','北京']
#sql语句中变量的顺序是从左到右
cursor.prepare('insert into dept values(:1,:2,:3)')
cursor.execute(None,param)
print('影响的行数:%d'%cursor.rowcount)
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
传递字典参数方式
#coding=utf-8
import cx_Oracle
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 创建一个游标对象cursor
cursor = conn.cursor()
#插入一条数据
param={'deptno':4,'dname':'人力资源部','loc':'北京'}
#sql语句绑定变量名称,与字典中的key必须一致
cursor.prepare('insert into dept values(:deptno,:dname,:loc)')
cursor.execute(None,param)
print('影响的行数:%d'%cursor.rowcount)
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
一次插入多条记录(传入列表)
#coding=utf-8
import cx_Oracle
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 创建一个游标对象cursor
cursor = conn.cursor()
#一次插入多条数据,参数为字典列表形式
param=[[5,'市场部','北京'],[6,'人力资源部','北京']]
cursor.prepare('insert into dept values(:1,:2,:3)')
cursor.executemany(None,param)
print('影响的行数:%d'%cursor.rowcount)
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
一次插入多条记录(传入字典)
#coding=utf-8
import cx_Oracle
conn = cx_Oracle.connect('scott/tiger@localhost/oradb',encoding='utf-8')
# 创建一个游标对象cursor
cursor = conn.cursor()
#一次插入多条数据,参数为字典列表形式
param=[{'deptno':8,'dname':'市场部','loc':'北京'},{'deptno':9,'dname':'人力资源部','loc':'北京'}]
cursor.prepare('insert into dept values(:deptno,:dname,:loc)')
cursor.executemany(None,param)
print('影响的行数:%d'%cursor.rowcount)
# 提交事务
conn.commit()
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()
原文出处:/show_1EF3tfK0DCdz.html