Как вывести список таблиц в файле базы данных SQLite, открытом с помощью ATTACH?
Я пытаюсь получить список таблиц и строк внутри этих таблиц в файле базы данных SQLite, после того как я присоединил его с помощью команды ATTACH
в инструменте командной строки sqlite3
. Какой SQL-запрос я могу использовать для этой цели?
5 ответ(ов)
Чтобы увидеть таблицы в базе данных SQLite, выполните несколько шагов:
Для получения списка таблиц в вашей базе данных используйте команду:
.tables
Чтобы узнать, как выглядит структура конкретной таблицы, выполните:
.schema имя_таблицы
Для вывода всех данных из таблицы воспользуйтесь следующим запросом:
SELECT * FROM имя_таблицы;
Чтобы ознакомиться со всеми доступными командами в приглашении SQLite, запустите:
.help
Эти команды помогут вам эффективнее работать с вашей базой данных SQLite.
Функции-«помощники» .tables
и .schema
не обращаются к подключенным базам данных (ATTACHed databases); они просто запрашивают таблицу SQLITE_MASTER
для основной базы данных. Поэтому, если вы использовали
ATTACH some_file.db AS my_db;
то вам нужно выполнить следующий запрос:
SELECT name FROM my_db.sqlite_master WHERE type='table';
Обратите внимание, что временные таблицы также не отображаются с помощью .tables
; для этого необходимо использовать sqlite_temp_master
:
SELECT name FROM sqlite_temp_master WHERE type='table';
Похоже, вам нужно обратиться к таблице sqlite_master, например, таким образом:
SELECT * FROM dbname.sqlite_master WHERE type='table';
После этого вам следует вручную просмотреть каждую таблицу с помощью команды SELECT
или аналогичной, чтобы изучить строки.
Команды .DUMP
и .SCHEMA
, похоже, не видят базу данных вообще.
Чтобы показать все таблицы, вы можете использовать следующий запрос:
SELECT name FROM sqlite_master WHERE type = "table"
Чтобы показать все строки, я предполагаю, что вы можете перебрать все таблицы и выполнить SELECT *
для каждой из них. Но, возможно, вам подойдет команда DUMP?
Используйте команду .help
, чтобы проверить доступные команды.
.table
Эта команда покажет все таблицы в вашей текущей базе данных.
Как конкатенировать текст из нескольких строк в одну строку в SQL Server
"Вставка результатов хранимой процедуры в временную таблицу"
Обновление данных в одной таблице из другой на основе совпадения ID
Выбрать первую строку в каждой группе GROUP BY?
Как вывести сырой SQL-запрос в виде строки из билдера запросов?