sql >> Databáze >  >> RDS >> SQLite

4 způsoby, jak získat informace o struktuře tabulky v SQLite

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)
)

  1. ODP.NET Managed - Nelze najít požadovaného poskytovatele dat .Net Framework

  2. SCD typ 2

  3. Jak zavolám uloženou proceduru s argumenty pomocí sqlcmd.exe?

  4. Přidejte sloupec do tabulky v SQL