一、python连接oracle数据库
安装模块
使用第三方模块 cx_Oracle
pip install cx_Oracle
连接方式
import cx_Oracle as oracle
db = oracle.connect('user/password@ip:port/service_name')
user用户名;password密码;服务器地址+端口号;service_name服务名
(注:在plsql连接Oracle的instanceclient中的tnsnames.ora中配置的有。但是Python连接Oracle不需要配置tnsnames.ora)
cursor = db.cursor()
cursor.execute('select *from student')
data = cursor.fetchone()
print(data)
cursor.close()
db.close()
import cx_Oracle as cx
#第一种
con = cx.connect('root', 'root123', '127.0.0.1:1521/orcl')
#第二种
con = cx.connect('root/root123@127.0.0.1:1521/orcl')
#第三种
dsn = cx.makedsn('127.0.0.1', '1521', 'orcl')
connection = cx.connect('root', 'root123', dsn)
简单使用
# -*- coding: utf-8 -*-
import cx_Oracle as cx #导入模块
con = cx.connect('root', 'root123', '127.0.0.1:1521/ORCL') #创建连接
cursor = con.cursor() #创建游标
cursor.execute("select * from TDER where ID='28'") #执行sql语句
data = cursor.fetchone() #获取一条数据
print(data) #打印数据
cursor.close() #关闭游标
con.close() #关闭数据库连接
二、python连接sqlserver数据库
安装模块
使用第三方模块 pymssql
pip install pymssql
简单使用
import pymssql #引入pymssql模块
def conn():
connect = pymssql.connect('(local)', 'sa', '**********', 'test') #服务器名,账户,密码,数据库名
if connect:
print("连接成功!")
return connect
if __name__ == '__main__':
conn = conn()
运行结果:
连接成功!
Process finished with exit code 0
创建一个新数据库表:
import pymssql
connect = pymssql.connect('(local)', 'sa', 'password1633', 'test') #建立连接
if connect:
print("连接成功!")
cursor = connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
cursor.execute("create table C_test02(id varchar(20))") #执行sql语句
connect.commit() #提交
cursor.close() #关闭游标
connect.close() #关闭连接
注意当执行更改数据库表的操作时,执行完sql后别忘记加一句commit().
close()是必须的,否则python程序会一至占用这个数据库.
增加(Create):
import pymssql
connect = pymssql.connect('(local)', 'sa', 'password1633', 'test') #建立连接
if connect:
print("连接成功!")
cursor = connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "insert into C_test (id, name, sex)values(1002, '张si', '女')"
cursor.execute(sql) #执行sql语句
connect.commit() #提交
cursor.close()
connect.close()
查询(Retrieve):
import pymssql
connect = pymssql.connect('(local)', 'sa', 'password1633', 'test') #建立连接
if connect:
print("连接成功!")
cursor = connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "select name, sex from C_test"
cursor.execute(sql) #执行sql语句
row = cursor.fetchone() #读取查询结果,
while row: #循环读取所有结果
print("Name=%s, Sex=%s" % (row[0],row[1])) #输出结果
row = cursor.fetchone()
cursor.close()
connect.close()
更新(Update)和删除(Delete)的操作都大同小异.改写sql语句就行.
判断表是否存在:https://blog.csdn.net/yaer123/article/details/19545443
IF EXISTS(SELECT * FROM sysobjects WHERE name='bbsUser')
DROP TABLE bbsUsers --判断表是否存在
if EXISTS(SELECT * FROM sysdatabases WHERE name='bbsDB')
DROP DATABASE bbsDB --判断数据库是否存在
三、python连接SQL AnyWhere
1、安装Python库:sqlanydb
pip install sqlanydb
2、在本地安装SQL AnyWhere数据库(注意:是完整版,单纯client端本人未测通)。
3. 关键连接代码:
import sqlanydb
conn = sqlanydb.connect(links='tcpip(host=1.1.1.1:8080)',ServerName='servername',uid='uname',pwd='pwd',dbn='dbname')
curs = conn.cursor()
curs.execute("select * from xxx where xx>10")
res = curs.fetchall()
for row in res:
print row
curs.close()
conn.close()
注意:其他参数都好理解,网上找到的例子都有ENG参数,但我本人没有测通过,这里替换成了ServerName,这个参数不要乱填,因为已安装了SQL AnyWhere,它自带了客户端,可通过客户端连接数据库(其中的服务器名可以不填),连接上后显示的服务器名即是ServerName的值。
附录:
# 显示每列的详细信息
des = cursor.description #需要放在cursor.execute执行之后才能取到值。
print("表的描述:", des)
# 获取表头
print("表头:", ",".join([item[0] for item in des]))
cur.close()