Как вывести список таблиц в файле базы данных 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
Эта команда покажет все таблицы в вашей текущей базе данных.
Экспорт схемы без данных
Как вставить несколько строк в SQLite?
Синтаксис SQLite для условия If Else
Как синхронизировать базу данных Android с онлайн SQL Server?
Удаление таблицы в старой версии SQLite, где не поддерживается IF EXISTS