Někdy prostě chcete vidět základní strukturu tabulky.
V SQLite existuje několik způsobů, jak získat informace o dané tabulce. Konkrétně zde jsou čtyři možnosti:
PRAGMA table_info()
prohlášeníPRAGMA table_xinfo()
výpis (pro virtuální tabulky)- Schéma
.schema
příkaz sqlite_master
stůl
Příklady jednotlivých metod jsou uvedeny níže.
PRAGMA table_info()
PRAGMA table_info()
příkaz vrátí jeden řádek pro každý sloupec v pojmenované tabulce. Je to něco jako ekvivalent SQLite k DESCRIBE
příkaz v MySQL.
Syntaxe
Syntaxe vypadá takto:
PRAGMA schema.table_info(table-name);
Kde table-name
je název tabulky, o které potřebujete informace.
schema
část je volitelná. Toto je název připojené databáze nebo main
nebo temp
pro hlavní a TEMP databáze. Pokud toto nezadáte, použije se hlavní databáze.
Příklad
Zde je příklad vrácení informací o tabulce s názvem Zvířata .
PRAGMA table_info(Pets);
Výsledek:
cid name type notnull dflt_value pk ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 1 PetName 0 0 2 TypeId 0 0
V tomto případě pouze první sloupec (PetId ) má svůj datový typ explicitně definován. Ostatní byly vytvořeny, aniž by jejich typy byly explicitně definovány.
Můžeme také vidět, že PetId sloupec je sloupec primárního klíče (je zde 1 v pk sloupec).
PRAGMA table_xinfo()
PRAGMA table_xinfo()
příkaz je přesně stejný jako PRAGMA table_info()
kromě toho, že také vrací skryté sloupce ve virtuálních tabulkách.
Pokud chcete vidět strukturu virtuální tabulky, včetně skrytých sloupců, použijte tento.
Zde je příklad s použitím stejné tabulky z předchozího příkladu.
PRAGMA table_xinfo(Pets);
Výsledek:
cid name type notnull dflt_value pk hidden ---------- ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 0 1 PetName 0 0 0 2 TypeId 0 0 0
Možná budete muset posunout do strany, abyste viděli další sloupec. V tomto případě není žádný ze sloupců skrytý (a nejedná se o virtuální tabulku), takže všechny řádky jsou 0 pro tento sloupec.
Zde je opět výsledek, ale s použitím vertikálního výstupu (.mode line
), abyste se nemuseli posouvat do stran.
.mode line
PRAGMA table_xinfo(Pets);
Výsledek:
cid = 0 name = PetId type = INTEGER notnull = 0 dflt_value = pk = 1 hidden = 0 cid = 1 name = PetName type = notnull = 0 dflt_value = pk = 0 hidden = 0 cid = 2 name = TypeId type = notnull = 0 dflt_value = pk = 0 hidden = 0
Příkaz .schema
Dalším způsobem, jak získat strukturu tabulky, je použití .schema
příkaz. Toto je jedna z několika metod, které můžete použít k vrácení SQL použitého k vytvoření tabulky.
Zde je příklad s použitím stejné tabulky z předchozího příkladu.
.schema Pets
Výsledek:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) );
Tato metoda nám umožňuje zobrazit více informací o tabulce. V tomto příkladu vidíme, že TypId sloupec je ve skutečnosti cizí klíč, který odkazuje na sloupec v jiné tabulce.
Tabulka sqlite_master
Můžete použít sqlite_master
tabulky na stejnou věc jako v předchozím příkladu.
Zde je příklad použití stejné tabulky.
SELECT sql
FROM sqlite_master
WHERE tbl_name = 'Pets';
Výsledek:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) )