python:哇,怎么办?打印出数据库查询结果没表头,快用description 试试吧

本文介绍了如何使用Python连接MySQL和Oracle数据库,包括数据库连接、光标操作、SQL执行、表属性获取、查询结果字典化,以及一个完整的案例。适合Python初学者和数据库开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

写在前面:

一、python建立数据库连接 (mysql+oracle)

1、mysql

mysql登陆

使用流程

安装pymysql

pymysql.connect()连接数据库函数

代码示例:

总结:

 2、oracle数据库

总结:

二、建立光标+执行sq+关闭光标+关闭连接(oracle为例)

三、description获取表属性  # 获取表详情,字段名,长度,属性等

        代码:

        效果: 

        实际表字段: 

四、将查询结果按字典的方式输出

        代码:

         效果:​编辑

 五、完整案例

        代码:

        效果:

写在前面:

人生苦短,我用python。今天用2分钟时间一起来梳理下,python对数据库的操作,本文以oracle数据库为例。如果对你有用请点赞,收藏哦~以备不时之需。

一、python建立数据库连接 (mysql+oracle)

1、mysql

mysql登陆

基本操作:
登陆:mysql -uroot -h127.0.0.1 -P3306 -p
mysql -uroot -p(本机不用写host)
退出mysql:ctrl+z+回车,或者exit
端口号默认是3306,但是可以通过安装目录下的配置文件修改。

使用流程

  • 引用API模块
  • 获取与数据库的连接
  • 执行sql语句与存储过程
  • 关闭数据库连接

安装pymysql

python3 与MySQL 进行交互编程需要安装 pymysql 库,故首先使用如下命令安装pymysql
–>pip install pymysql
如果电脑中py2和py3共存的话,安装失败时请参考之前的博客安装方法

pymysql.connect()连接数据库函数

代码示例:

import pymysql
#打开数据库连接
conn = pymysql.connect('localhost',user = "root",passwd = "123456",db = "testdb")
#localhost为你的数据库地址
#root为你数据库的用户名
#123456为数据库密码
#testdb为数据库server名称
print (conn)
print (type(conn))

总结:

第一步:pip install  pymysql 安装pymysql库,import引用pymysql库

第二步:建立数据库连接conn,打印连接信息。

效果:

在这里插入图片描述

 2、oracle数据库

#导入cx_Oracle
import cx_Oracle
#建立conn连接
conn = cx_Oracle.connect('BI/123@10.110.11.11:1521/orcl')#用户名/密码@ip:port/实例名
# 换成自己的db数据
# BI是username
# 123 是密码
# @后面是ip
# 1521是端口
# orcl是service name

总结:

第一步:pip install  cx_Oracle 安装cx_Oracle库,import引用cx_Oracle库

第二步:建立数据库连接conn,打印连接信息。方法与mysql一样,只是引用库不同而已。

二、建立光标+执行sq+关闭光标+关闭连接(oracle为例)

#建立光标

curs = conn.cursor()

#执行对应SQL
sql = f"select * from SY2_CJBZGX_CPT where rownum<='{numline} ' order by 日期 desc"#当带有参数需在sql语句前面增加f
curs.execute(sql)
result = curs.fetchall()#获取全部返回值
#result = curs.fetchone()#获取单个返回值

........

#关闭光标
curs.close()
# 关闭数据库连接
conn.close()

三、description获取表属性  # 获取表详情,字段名,长度,属性等

        代码:

des=curs.description  # 获取表详情,字段名,长度,属性等
print(des)

        效果: 

 

        实际表字段: 

四、将查询结果按字典的方式输出

        代码:

for i in result:
    list_list = list(i)
    des=curs.description  # 获取表详情,字段名,长度,属性等
    print(des)
    t = ",".join([item[0] for item in des])
    table_head = t.split(',')  # # 查询表列名 用,分割

    dict_result = dict(zip(table_head, list_list))  # 打包为元组的列表 再转换为字典
    list_result=[]
    list_result.append(dict_result)  # 将字典添加到list_result中
    print(list_result,end='\n')

         效果:

 五、完整案例

        代码:

#导入cx_Oracle
import cx_Oracle
#建立conn连接
conn = cx_Oracle.connect('BI/Zwbi@123@10.110.11.11:1521/orcl')#用户名/密码@ip:port/实例名
# 换成自己的db数据
# BI是username
# 123 是密码
# @后面是ip
# 1521是端口
# orcl是service name
#建立光标
curs = conn.cursor()
#获取返回的行数
numline=int(input("输入希望返回的行数:"))
#执行对应SQL
sql = f"select * from SY2_CJBZGX_CPT where rownum<='{numline} ' order by 日期 desc"#当带有参数需在sql语句前面增加f
curs.execute(sql)
result = curs.fetchall()#获取全部返回值
#result = curs.fetchone()#获取单个返回值
for i in result:
    list_list = list(i)
    des=curs.description  # 获取表详情,字段名,长度,属性等
    print(des)
    t = ",".join([item[0] for item in des])
    table_head = t.split(',')  # # 查询表列名 用,分割

    dict_result = dict(zip(table_head, list_list))  # 打包为元组的列表 再转换为字典
    list_result=[]
    list_result.append(dict_result)  # 将字典添加到list_result中
    print(list_result,end='\n')

#关闭游标
curs.close()
# 关闭数据库连接
conn.close()

        效果:

 

 

 

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他们叫我技术总监

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值