Jak wyświetlić listę tabel w pliku bazy danych SQLite, który został otwarty za pomocą załącz?
Jaki SQL może być używany do wyświetlania tabel i wierszy w tych tabelach w pliku bazy danych SQLite-po dołączeniu go za pomocą polecenia ATTACH
w narzędziu wiersza poleceń SQLite 3?
17 answers
Funkcje .tables
i .schema
"helper" nie zaglądają do załączonych baz danych: po prostu odpytują tabelę SQLITE_MASTER
dla "głównej" bazy danych. W związku z tym, jeśli użyto
ATTACH some_file.db AS my_db;
Następnie trzeba zrobić
SELECT name FROM my_db.sqlite_master WHERE type='table';
Zauważ, że tabele tymczasowe nie pojawiają się również z .tables
: musisz wymienić sqlite_temp_master
w tym celu:
SELECT name FROM sqlite_temp_master WHERE type='table';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 13:30:00
Istnieje kilka kroków, aby zobaczyć tabele w bazie danych SQLite:
-
Lista tabel w bazie danych:
.tables
-
Lista jak wygląda Tabela:
.schema tablename
-
Wydrukuj całą tabelę:
SELECT * FROM tablename;
-
Lista wszystkich dostępnych poleceń podpowiedzi SQLite:
.help
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-16 15:05:05
Wygląda na to, że musisz przejść przez tabelę sqlite_master , Tak:
SELECT * FROM dbname.sqlite_master WHERE type='table';
A następnie ręcznie przejść przez każdą tabelę z {[1] } lub podobne, aby spojrzeć na wiersze.
Polecenia .DUMP
i .SCHEMA
w ogóle nie widzą bazy danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-12 08:52:42
Aby wyświetlić wszystkie tabele, użyj
SELECT name FROM sqlite_master WHERE type = "table"
Aby wyświetlić wszystkie wiersze, myślę, że można iterację przez wszystkie tabele i po prostu wybrać * na każdej z nich. Ale może szukasz nory?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 13:06:03
Użyj .help
, aby sprawdzić dostępne polecenia.
.table
To polecenie wyświetli wszystkie tabele w bieżącej bazie danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-12 08:38:52
W wierszu poleceń SQLite dostępne jest polecenie:
.tables ?PATTERN? List names of tables matching a LIKE pattern
Który konwertuje na następujący SQL:
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-01 00:51:06
Aby wyświetlić listę tabel możesz również zrobić:
SELECT name FROM sqlite_master
WHERE type='table';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-13 09:19:23
Spróbuj PRAGMA table_info(table-name);
http://www.sqlite.org/pragma.html#schema
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-13 09:16:31
Zgodnie z dokumentacją , odpowiednikiem MySQLs ' SHOW TABLES;
jest:
".tables " polecenie jest podobne do ustawiania trybu listy, a następnie wykonywania następujące zapytanie:
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1;
Jeśli jednak sprawdzasz, czy istnieje pojedyncza tabela (lub aby uzyskać jej szczegóły), zobacz @ LuizGeron odpowiedz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:49
Od najnowszych wersji SQLite 3 możesz wydać:
.fullschema
Aby zobaczyć wszystkie Twoje Utwórz instrukcje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-18 19:03:36
Używam tego zapytania, aby je uzyskać:
SELECT name FROM sqlite_master WHERE type='table'
I używać w iOS:
NSString *aStrQuery=[NSString stringWithFormat:@"SELECT name FROM sqlite_master WHERE type='table'"];
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-01 00:53:22
Najprostszym sposobem na to jest bezpośrednie otwarcie bazy danych i użycie komendy .dump
, zamiast dołączania jej po wywołaniu narzędzia powłoki SQLite 3.
$sqlite3
:
sqlite3> ATTACH database.sqlite as "attached"
Z linii poleceń systemu operacyjnego otwórz bazę danych bezpośrednio:
$sqlite3 database.sqlite
sqlite3> .dump
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-18 19:02:15
Użycie:
import sqlite3
TABLE_LIST_QUERY = "SELECT * FROM sqlite_master where type='table'"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-18 19:06:52
Poprzez union all
, Połącz wszystkie tabele w jedną listę.
select name
from sqlite_master
where type='table'
union all
select name
from sqlite_temp_master
where type='table'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-13 21:48:00
Ponieważ nikt nie wspomniał o oficjalnym odniesieniu do SQLite, myślę, że przydałoby się odnieść do niego pod tym nagłówkiem:
Https://www.sqlite.org/cli.html
Możesz manipulować bazą danych za pomocą poleceń opisanych w tym linku. Poza tym, Jeśli używasz systemu operacyjnego Windows i nie wiesz, gdzie jest powłoka poleceń, czyli na stronie SQLite:
Https://www.sqlite.org/download.html
Po pobraniu, Kliknij sqlite3plik exe inicjujący powłokę komend SQLite . Po zainicjowaniu sesji SQLite domyślnie używa bazy danych w pamięci, a nie Pliku na dysku, więc wszystkie zmiany zostaną utracone po zakończeniu sesji. Aby użyć trwałego pliku dyskowego jako bazy danych, wprowadź ".otwórz ex1.polecenie db " natychmiast po uruchomieniu okna terminala.
Powyższy przykład powoduje powstanie pliku bazy danych o nazwie "ex1.db " do otwarcia i użycia oraz utworzenia, jeśli wcześniej nie istniał. Ty możesz użyć pełnej ścieżki, aby upewnić się, że plik znajduje się w katalogu, w którym się znajduje. Użyj ukośników do przodu jako znaku separatora katalogów. Innymi słowy użyj "c:/work/ex1.db", nie " c:\work\ex1.db".
Aby zobaczyć wszystkie tabele w bazie danych, które wcześniej wybrałeś, wpisz polecenie .tabele Jak to jest powiedziane w powyższym linku.
Jeśli pracujesz w Windows, myślę, że przydałoby się przenieść ten sqlite.plik exe do tego samego folderu z innymi plikami Pythona. W w ten sposób plik Pythona zapisuje do, a powłoka SQLite odczytuje z .pliki db znajdują się na tej samej ścieżce.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-23 23:54:23
".schema " wyświetli listę dostępnych tabel i ich wierszy, pokazując instrukcję używaną do tworzenia tabel:
sqlite> create table_a (id int, a int, b int); sqlite> .schema table_a CREATE TABLE table_a (id int, a int, b int);
.da aby zobaczyć wszystkie bazy danych-Jedna o nazwie 'main '
Tabele tej bazy danych można zobaczyć przez
SELECT distinct tbl_name from sqlite_master order by 1;
Dołączone bazy danych wymagają prefiksów, które wybrałeś, jak w instrukcji Attaché np. aa (, bb, cc...) so:
SELECT distinct tbl_name from aa.sqlite_master order by 1;
Zauważ, że tutaj masz również widoki. Aby wykluczyć te dodaj where type = "table" before 'order'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-12 10:25:09