【问题标题】:List sql tables in pandas.read_sql列出 pandas.read_sql 中的 sql 表
【发布时间】:2016-01-06 08:18:20
【问题描述】:

我想打开一个 SQL 2005 数据库(文件扩展名为 .mdf),我一直在尝试这样做:

import pandas as pd
import pyodbc

server = 'server_name'
db = 'database_name'

conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + server + ';DATABASE=' + db + ';Trusted_Connection=yes')

sql = """

SELECT * FROM table_name

"""
df = pd.read_sql(sql, conn)

有没有办法使用 Pandas 或 pyodbc 查询数据库并列出所有表?我几乎没有数据库经验,所以任何帮助都会很棒。

【问题讨论】:

    标签: python sql sql-server pandas


    【解决方案1】:

    这个答案可能会有所帮助:How do I get list of all tables in a database using TSQL?

    尝试将您的 SQL 字符串更改为:

    sql = """
    SELECT * FROM information_schema.tables
    """
    

    【讨论】:

      【解决方案2】:
      import pyodbc as db
      
      import pandas as pd
      
      conn = db.connect("DRIVER={SQL Server}; SERVER=YourServerName; PORT=1433; DATABASE=YourDB; UID=User; PWD=Password;")
      
      cursor = conn.cursor()
      
      cursor.execute('''select * from sys.databases''')
      
      df=pd.DataFrame(cursor.fetchall())
      

      【讨论】:

      • 您应该编辑它以提供有关您所做操作的上下文以及格式化代码。
      【解决方案3】:

      使用 sqllite3 和 pandas,您可以通过

      import sqlite3 
      import pandas as pd 
        
      # create a connection 
      con = sqlite3.connect('database.db') 
      data = pd.read_sql_query('SELECT name from sqlite_master where type= "table";', con) 
        
      # show first 5 table names
      data.head()
      

      【讨论】:

        猜你喜欢
        • 2019-04-15
        • 2021-10-13
        • 2017-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-16
        • 1970-01-01
        相关资源
        最近更新 更多