Python sqlite show table

Список таблиц, схемы БД, дамп и т. Д. С использованием Python sqlite3 API

По какой-то причине я не могу найти способ получить эквиваленты интерактивных команд оболочки sqlite:

Я предлагаю переименовать вопрос в нечто не специфичное для Python, так как ответ на самом деле универсален для интерфейсов, использующих SQL.

Если вы хотите отобразить таблицы из командной строки sqlite3, обратитесь к stackoverflow.com/questions/82875/… . Если вы используете пакет Python sqlite3, посмотрите ответ Давуда Тагави-Неджада здесь. Я предлагаю ОП добавить Python обратно в заголовок вопроса и выбрать ответ Давуда. Я нашел эту страницу, погуглив «покажи таблицы Python sqlite3», так как Google знает старый заголовок вопроса. Поиски внутри SO не смогли бы приземлиться здесь. Без угла Питона связанный дублирующий вопрос 82875 получил гораздо больше толпы мудрости.

10 ответов

Вы можете получить список таблиц и схем, запросив таблицу SQLITE_MASTER:

sqlite> .tab job snmptarget t1 t2 t3 sqlite> select name from sqlite_master where type = 'table'; job t1 t2 snmptarget t3 sqlite> .schema job CREATE TABLE job ( id INTEGER PRIMARY KEY, data VARCHAR ); sqlite> select sql from sqlite_master where type = 'table' and name = 'job'; CREATE TABLE job ( id INTEGER PRIMARY KEY, data VARCHAR ) 
con = sqlite3.connect('database.db') cursor = con.cursor() cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") print(cursor.fetchall()) 

Следите за моим другим ответом . Существует гораздо более быстрый способ использования pandas.

Читайте также:  Javascript input text methods

Самый быстрый способ сделать это в python — использовать Pandas (версия 0.16 и выше).

db = sqlite3.connect('database.db') table = pd.read_sql_query("SELECT * from table_name", db) table.to_csv(table_name + '.csv', index_label='index') 
import sqlite3 import pandas as pd def to_csv(): db = sqlite3.connect('database.db') cursor = db.cursor() cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") tables = cursor.fetchall() for table_name in tables: table_name = table_name[0] table = pd.read_sql_query("SELECT * from %s" % table_name, db) table.to_csv(table_name + '.csv', index_label='index') 

Для пользователей, которые собираются копировать / вставлять: Обязательно используйте cursor.close() и db.close() .

По-видимому, версия sqlite3, включенная в Python 2.6, обладает такой способностью: http://docs.python.org/dev/library/sqlite3.html

# Convert file existing_db.db to SQL dump file dump.sql import sqlite3, os con = sqlite3.connect('existing_db.db') with open('dump.sql', 'w') as f: for line in con.iterdump(): f.write('%s\n' % line) 

Будьте осторожны с этим, он напечатает все данные в ваших таблицах, если они заполнены операторами INSERT INTO!

Я не знаком с Python API, но вы всегда можете использовать

SELECT * FROM sqlite_master; 

Откроется здесь для дампа. Кажется, в библиотеке sqlite3 есть функция дампа.

Я пытаюсь: импорт sqlite3 con = sqlite3.connect («test.db») con.dump () не удается . Я продолжаю проверять

Здесь короткая и простая программа python для печати имен таблиц и имен столбцов для этих таблиц.

import sqlite3 db_filename = 'database.sqlite' newline_indent = '\n ' db=sqlite3.connect(db_filename) db.text_factory = str cur = db.cursor() result = cur.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall() table_names = sorted(zip(*result)[0]) print "\ntables are:"+newline_indent+newline_indent.join(table_names) for table_name in table_names: result = cur.execute("PRAGMA table_info('%s')" % table_name).fetchall() column_names = zip(*result)[1] print ("\ncolumn names for %s:" % table_name)+newline_indent+(newline_indent.join(column_names)) db.close() print "\nexiting." 
#!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == "__main__": import sqlite3 dbname = './db/database.db' try: print "INITILIZATION. " con = sqlite3.connect(dbname) cursor = con.cursor() cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") tables = cursor.fetchall() for tbl in tables: print "\n######## "+tbl[0]+" ########" cursor.execute("SELECT * FROM "+tbl[0]+";") rows = cursor.fetchall() for row in rows: print row print(cursor.fetchall()) except KeyboardInterrupt: print "\nClean Exit By user" finally: print "\nFinally" 

После многих попыток я нашел лучший ответ в sqlite docs для перечисления метаданных для таблицы, даже прикрепленных баз данных.

meta = cursor.execute("PRAGMA table_info('Job')") for r in meta: print r 

Ключевой информацией является префикс table_info, а не my_table с именем дескриптора вложения.

Я получил много ошибок в написанном вами фрагменте и не вижу, например, «db_alias» ни в ссылочных документах, ни в других примерах. В контексте других примеров, я думаю, вы хотите эту строку, например, для таблицы Job : meta = cursor.execute(«PRAGMA table_info(‘Job’)») И ваша первая строка кажется не связанной с остальными.

Вы можете использовать этот анализатор определения для анализа таких определений, как код ниже:

$parser = new SqliteTableDefinitionParser; $parser->parseColumnDefinitions('x INTEGER PRIMARY KEY, y DOUBLE, z DATETIME default \'2011-11-10\', name VARCHAR(100)'); 

Ещё вопросы

  • 0 C ++ — загрузка очень большого набора данных в ОЗУ
  • 0 Получить фактический размер шрифта с помощью jQuery
  • 0 JQuery триггер стека событий с течением времени
  • 0 Как создать список, который может содержать функцию [closed]
  • 1 Запустите сервис FireBase вручную
  • 1 Регулярный экспресс для таких шаблонов, как 1.1, 2.-1, 2.3.30
  • 1 Работа с платформой Entity с несколькими базами данных
  • 0 Как ограничить пользовательское минимальное значение размером потока менее одного бита?
  • 1 как передать объект коллекции в response.sendRedirect
  • 1 Java: удаление компонента Runnable Canvas
  • 1 C # правильный синтаксис foreach для перебора списка
  • 1 Самый простой способ проверить согласованность нескольких значений в списке объектов
  • 0 Из одномерного массива необходимо получить многомерный массив на основе ключей
  • 1 Где в конечном итоге происходит создание клика в Enterprise Architect?
  • 0 Угловые атрибуты по директивам
  • 0 Qt Connect не работает
  • 0 HTML-код внутри php
  • 0 Является ли денормализованный стол приемлемым вариантом в этом случае?
  • 1 Доступ к API Bloomberg из браузера клиента в JavaScript
  • 0 Читайте информацию о компоновщике из dll [дубликата]
  • 1 RegEx: Как захватить подраздел
  • 0 AngularJS, $ cookieStore.put не является функцией
  • 1 Unity — CommandInvokationFailure: сборка Gradle завершилась неудачно
  • 1 Угадай номер игры в Java
  • 0 Как загрузить $ scope. $ На последнюю?
  • 1 Javascript ссылаться на объект по идентификатору или ссылаться на него напрямую?
  • 1 MPAndroidChart установить текущую видимую ось X
  • 0 MySQL — объединить строку со следующими N меньшими строками
  • 1 Загрузка запрещена с помощью X-Frame-Options: websitename / Register не разрешает кадрирование между источниками в MVC5
  • 0 как показать число, занятое пользователем, сколько времени оно вводится пользователем
  • 1 десериализовать сообщение, полученное из очереди сообщений
  • 1 Создать отображение из чисел в диапазон уникальных чисел
  • 0 Скрыть элемент при заполнении поля формы
  • 1 Увеличение на ввод пользователя
  • 0 Получение нескольких строк одной и той же вещи из базы данных
  • 1 Как я могу показать сообщение об ошибке в окне сообщения в C # исключения SQL (уникальный идентификатор) в 3-уровневом приложении?
  • 1 Сомнения по поводу быстрого исправления
  • 0 Вызов неопределенной функции curl_init () в wampp
  • 1 Отправить письмо без аутентификации
  • 0 Qt QML MenuBar и меню не отображаются
  • 1 Как настроить формат отображения DataFrame с комплексными числами?
  • 1 Как получить имя кластера Cassandra, используя драйвер Python?
  • 1 Как создать несколько элементов в разных местах, используя методы DOM
  • 0 SQL-запрос, дающий противоречивые результаты
  • 0 Как заполнить вид сетки данными из базы данных MySQL? (C # UWP)
  • 0 Обновите столбец, используя порядок запроса выбора по убыванию наибольшего значения
  • 1 pytest не может обработать Unicode в doctest в README под Python 2.7
  • 0 Пример c ++ DirectInput извлекает немедленные данные из джойстика
  • 1 Xpath: найти div, который следует за известным div (не вложенным)
  • 0 Ошибка JavaScript в консоли Chrome

Источник

How to get table names using sqlite3 through python?

sqlite3 is a library that provides an interface for working with SQLite databases. It is a popular database for storing structured data in a compact and efficient manner. In Python, it is easy to connect to a SQLite database and perform operations on the tables and data within it. However, sometimes it may be necessary to retrieve information about the tables themselves, such as the names of the tables in a database. This information can be useful in various scenarios, such as when you want to retrieve all data from a specific table or when you want to perform operations on multiple tables. In this article, we will discuss the methods for retrieving the names of tables in a SQLite database using the sqlite3 library in Python.

Method 1: Using SQL Query

To get the table names in SQLite3 using SQL query in Python, you can use the following steps:

conn = sqlite3.connect('database_name.db')
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
for table in tables: print(table[0])
import sqlite3 conn = sqlite3.connect('database_name.db') cursor = conn.cursor() cursor.execute("SELECT name FROM sqlite_master WHERE type='table';") tables = cursor.fetchall() for table in tables: print(table[0])

This code will print the names of all the tables in the database. You can modify the SQL query to get more specific results, such as the names of tables that start with a certain prefix.

Method 2: Using sqlite3 Library functions

To get table names using sqlite3 through Python, you can use the following code:

import sqlite3 conn = sqlite3.connect('example.db') cur = conn.cursor() cur.execute("SELECT name FROM sqlite_master WHERE type='table';") tables = cur.fetchall() for table in tables: print(table[0]) cur.close() conn.close()
  • First, we import the sqlite3 library to use its functions.
  • Then, we create a connection to the database using the connect() function and passing the name of the database as an argument. If the database does not exist, it will be created.
  • Next, we create a cursor object using the cursor() function. The cursor is used to execute SQL statements and fetch results.
  • To get the table names, we execute a SELECT statement on the sqlite_master table, which contains information about all the tables in the database. We filter the results to only include tables by using the type=’table’ condition.
  • We fetch all the results using the fetchall() function and store them in the tables variable.
  • Finally, we iterate through the tables variable and print each table name.

Note: This code assumes that the table names are stored in the first column of the result set. If your database schema is different, you may need to modify the code accordingly.

Источник

Show Tables in SQLite

Show Tables in SQLite

In this tutorial, we will learn how to show tables in SQLite.

Showing tables in SQLite serves as an essential step in performing database operations. We will be going through multiple ways to show tables in SQLite.

Show Tables in SQLite

Let us see the steps involved in the first approach to show tables.

List the tables in the database.
Let us see the appearance of tables in our database.
Print the entire table.

The helper functions .tables and .schema don’t search into ATTACHED databases; instead, they query the SQLITE MASTER table for the primary database.

You can search for the attached tables using the following:
ATTACH demo_file.db AS demo_db; 
We need to write the below statement to show those files:
SELECT name FROM demo_db.sqlite_master WHERE type='table'; 
We must also note that temporary tables do not show up either. To show them, we need to list sqlite_temp_master :
SELECT name FROM sqlite_temp_master WHERE type='table'; 

Using the abovementioned ways, we can show tables in SQLite employing different techniques.

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

Related Article — Python SQLite

Источник

Оцените статью