Python连接MySQL
pip3 install MySQLdb
from MySQLdb.constants import FIELD_TYPE
import MySQLdb
import MySQLdb.cursors
#连接数据库
db=MySQLdb.connect(host="IP",port=端口, user="用户名",passwd="密码",db="数据库",charset='utf8')
#获取游标 cursorclass=MySQLdb.cursors.DictCursor)表示返回字典格式的结果集 [{'表字段':value}]
cur = db.cursor(cursorclass=MySQLdb.cursors.DictCursor)
#执行sql 传一个参数
sql = 'SELECT count(1) as count FROM documents WHERE documentName = %s'
cur.execute(sql, (documentName,))
#返回数据
r=cur.fetchall()
#执行sql 传多个参数
sql = "INSERT into documents (documentName,createTime)VALUES(%s,%s)"
param = (documentName, localtime)
cur.execute(sql, param)
#关闭游标
cur.close()
#提交到数据库执行
db.commit()
这里有个坑要注意一下,每次操作数据库都要commit提交一下,如果没有commit那么每次查询的结果都是第一次查询的结果。
Python连接Oracle
python版本3.8
Python连接数据库需要安装`Instant Client`
地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html
添加路径到环境变量
这里还需要配置tnsnames.ora 配置文件放入 Instant Client的安装目录
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.34.100.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
需要注意的是这个orcl是数据库服务的名称可通过下面的sql获取
SELECT value FROM v$parameter where name like '%service_name%'
pip3 install cx_Oracle
import cx_Oracle as cx
#连接Oracle
db=cx.connect('用户名/密码@IP:1521/orcl')
#获取游标
cur = db.cursor()
#执行sql 传参
cur.execute("select * FROM D_PDPOWERTRANSFORMER where id=:canshu", canshu = 1)
#下面这一波操作 使你的返回值为字典格式的结果集
columns = [col[0] for col in cur.description]
cur.rowfactory = lambda *args: dict(zip(columns,args))
r=cur.fetchall()
cur.close() #关闭游标
db.commit()
Python操作Oracle的语法与mysql大体上差不多。