实操笔记-Python连接mysql,sql_sever,oracle,hive

Python连接数据库方法汇总

# 连接mysql

import pymysql
conn = pymysql.connect(host='ip',
                       port=端口,
                       user='用户名',
                       passwd='密码',
                       db='数据库名')
if conn:
    print('OK')
cur = conn.cursor()
cur.execute("show tables;")
ret = cur.fetchone() #获取符合条件的第一个值的所有信息,返回结果类型为元组
print(ret)
cur.close()
conn.close()

# 连接sql_sever

import pymssql
conn = pymssql.connect(server='ip:端口',
                       user='用户名',password='密码',database='数据库名')
if conn:
    print('ok')
cur = conn.cursor()
cur.execute('SELECT Name FROM SysObjects Where XType=\'U\' ORDER BY Name')
ret = cur.fetchall()
print(ret)
cur.close()
conn.close()

# 连接oracle

import cx_Oracle
# 两种方式(一)
conn = cx_Oracle.connect("用户名","密码",'ip:端口/服务名',encoding='UTF-8')
# eg:conn = cx_Oracle.connect("J***","12***",'31.0.***.**:****/ORCL',encoding='UTF-8')
# 两种方式(二),创建dsn
# # dsn=cx_Oracle.makedsn('ip',端口,'服务名')
# # conn = cx_Oracle.connect("用户名","密码",dsn,encoding='UTF-8')
# 连接oracle的时候,没有指定schema(可以理解为库名)
cur = conn.cursor()
# # cur.execute("select * from schema名.表名 WHERE ROWNUM<6")  # 前6行的记录
cur.execute('select table_name from sys.dba_tables where owner=\'schema名\'')  # 查询某schema下所有表名
ret = cur.fetchall() #获取符合条件的第一个值的所有信息,返回结果类型为元组
print(ret)
cur.close()
conn.close()

# 连接hive,这里使用的是从pyhive中导入presto
# Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。(优势:Presto是一个低延迟高并发的内存计算引擎,相比Hive,执行效率要高很多)
# Presto使用Catalog、Schema和Table这3层结构来管理数据
# Catalog:就是数据源。Hive是数据源,Mysql也是数据源,Hive 和Mysql都是数据源类型,可以连接多个Hive和多个Mysql,每个连接都有一个名字。
# Schema:相当于一个数据库实例,一个Schema包含多张数据表。
# Table:数据表,与一般意义上的数据库表相同。

from pyhive import presto
conn = presto.connect(host='ip',port = 端口,catalog = 'hive',username='用户名',schema=库名)
if conn:
    print('ok')

拿走记得点赞哦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值