wangxishi

2020-08-28   阅读量: 14536

大数据 sql python

pyhton连接数据库后使用sql代码如何查询数据库所有表名

扫码加入数据分析学习群

之前一直使用python连接数据库 ,用sql代码查询,一直是使用哪个表找哪个表,现在想看看数据库里面都有哪些表,但是show tables不管用,想问下怎样查询出所有表名

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
35.2889 1 7 关注作者 收藏

评论(7)

wangxishi
2020-09-01

哦哦 是这样,问题解决了,postgreSQL用的 select * from pg_tables 语句,谢谢

0.0000 0 0 回复
wangxishi
2020-09-01

请问是怎么看出来连的是postgreSQL数据库呢?

0.0000 0 0 回复
PGC123
2020-09-01

import psycopg2 as pg,导入的这个包就是用来操作postgreSQL数据库的呀。我之前操作MySQL数据库用的是pymysql这个包。不同的数据库有不同的工具包来用的。

39.9511 2 0 回复
wangxishi
2020-09-01

import psycopg2 as pg

import pandas as pd

import numpy as np

import zipfile

import os

import sys

pd.set_option('display.max_columns',None)

pd.set_option('display.max_rows',None)

conn = pg.connect("dbname=%s user=%s password=%s host=%s port=%s" %('gpdw', 'dm_mtgg','A&eXbDuM7OiGz9BilS9X','gp-wz9q87z01t1bu4fv6.gpdb.rds.aliyuncs.com','3432'))

n_cursor = conn.cursor()

n_cursor = conn.cursor()


n = n_cursor.execute("show tables;")


for i in range(n):

info = n_cursor.fetchone()

print(info)

这是全部代码,然后运行出来报错如下:

1.png

0.0000 0 0 回复
PGC123
2020-09-01

show tables;是MySQL的用法。but 你的数据库是postgreSQL,不是MySQL。所以查询会报错。你需要查看postgreSQL的用法

0.0854 1 0 回复
wangxishi
2020-09-01

请问什么叫查询出错没有处理呢,关闭重新打开可以解决吗?还有怎么使用commit方法或者回滚rollback处理之前的错误呢?

0.0000 0 0 回复
PGC123
2020-09-01

你需要把所有代码发出来才行,只有局部代码不好看出来具体的问题

0.0000 0 0 回复
wangxishi
2020-08-31

我这个提示错误是什么原因呢,如下图:

1.png

0.0000 0 0 回复
PGC123
2020-08-31

之前有查询出错没有处理导致的。可以使用commit方法或者回滚rollback处理之前的错误。然后就可以正常使用了

0.0000 0 0 回复
wangxishi
2020-08-31
cur = conn.cursor()  # 游标对象

这步没有理解,什么叫游标对象

0.0000 0 0 回复
PGC123
2020-08-31

游标可以想象成一辆卡车,载着你的SQL命令去数据库取数据,然后返回。游标主要是用来装载数据的,我们使用某个游标来请求(查询)数据,那么数据也跟着这个游标对象一起返回。

0.0000 0 0 回复
PGC123
2020-08-28

这个用python是可以实现的呀。我做了个简单测试

我数据库表的情况如下:

image.png


代码如下:

import pymysql

MYSQL_CONFIG = {
    'host': 'localhost',  # IP地址
    'port': 3306,  # 端口
    'user': 'root',  # 用户名
    'passwd': '1234',  # 密码
    'db': 'test',  # 数据库
    'charset': 'utf8',  # 编码
}

conn = pymysql.connect(**MYSQL_CONFIG)  # 数据库连接
cur = conn.cursor()  # 游标对象

n = cur.execute("show tables;")

for i in range(n):
    print(f'--这是第{i + 1}条数据--')
    info = cur.fetchone()
    print(info)
    
 ###########返回的打印结果###########
--这是第1条数据--
('dept',)
--这是第2条数据--
('emp',)
--这是第3条数据--
('emp1',)
--这是第4条数据--
('new',)
--这是第5条数据--
('orderd',)
--这是第6条数据--
('product',)
--这是第7条数据--
('salgrade',)
--这是第8条数据--
('store',)





35.2889 1 0 回复

推荐课程

推荐帖子