SQLite
 sql >> Baza danych >  >> RDS >> SQLite

4 sposoby na uzyskanie informacji o strukturze tabeli w SQLite

Czasami chcesz po prostu zobaczyć podstawową strukturę tabeli.

W SQLite istnieje kilka sposobów na pobranie informacji o danej tabeli. W szczególności są tu cztery opcje:

  • PRAGMA table_info() oświadczenie
  • PRAGMA table_xinfo() oświadczenie (dla wirtualnych tabel)
  • .schema polecenie
  • sqlite_master stół

Przykłady każdej metody znajdują się poniżej.

PRAGMA table_info()

PRAGMA table_info() instrukcja zwraca jeden wiersz dla każdej kolumny w nazwanej tabeli. To trochę jak SQLite odpowiednik DESCRIBE instrukcja w MySQL.

Składnia

Składnia wygląda tak:

PRAGMA schema.table_info(table-name);

Gdzie table-name to nazwa tabeli, o której potrzebujesz informacji.

schema część jest opcjonalna. To jest nazwa dołączonej bazy danych lub main lub temp dla bazy głównej i bazy danych TEMP. Jeśli tego nie podasz, zostanie użyta główna baza danych.

Przykład

Oto przykład zwracania informacji o tabeli o nazwie Zwierzęta .

PRAGMA table_info(Pets);

Wynik:

cid         name        type        notnull     dflt_value  pk        
----------  ----------  ----------  ----------  ----------  ----------
0           PetId       INTEGER     0                       1         
1           PetName                 0                       0         
2           TypeId                  0                       0         

W tym przypadku tylko pierwsza kolumna (PetId ) ma wyraźnie zdefiniowany typ danych. Pozostałe zostały utworzone bez wyraźnego zdefiniowania ich typów.

Widzimy również, że PetId kolumna to kolumna klucza podstawowego (jest 1 w pk kolumna).

PRAGMA table_xinfo()

PRAGMA table_xinfo() instrukcja jest dokładnie taka sama jak PRAGMA table_info() z wyjątkiem tego, że zwraca również ukryte kolumny w wirtualnych tabelach.

Jeśli chcesz zobaczyć strukturę wirtualnej tabeli, w tym wszelkie ukryte kolumny, użyj tej opcji.

Oto przykład wykorzystujący tę samą tabelę z poprzedniego przykładu.

PRAGMA table_xinfo(Pets);

Wynik:

cid         name        type        notnull     dflt_value  pk          hidden    
----------  ----------  ----------  ----------  ----------  ----------  ----------
0           PetId       INTEGER     0                       1           0         
1           PetName                 0                       0           0         
2           TypeId                  0                       0           0         

Być może będziesz musiał przewinąć w bok, aby zobaczyć dodatkową kolumnę. W tym przypadku żadna z kolumn nie jest ukryta (i nie jest to wirtualna tabela), więc wszystkie wiersze są 0 dla tej kolumny.

Oto wynik ponownie, ale przy użyciu danych wyjściowych w pionie (.mode line ), aby nie trzeba było przewijać na boki.

.mode line
PRAGMA table_xinfo(Pets);

Wynik:

       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

Polecenie .schema

Innym sposobem na pobranie struktury tabeli jest użycie .schema Komenda. Jest to jedna z kilku metod, których możesz użyć do zwrócenia kodu SQL użytego do utworzenia tabeli.

Oto przykład wykorzystujący tę samą tabelę z poprzedniego przykładu.

.schema Pets

Wynik:

CREATE TABLE Pets( 
    PetId INTEGER PRIMARY KEY, 
    PetName,
    TypeId,
    FOREIGN KEY(TypeId) REFERENCES Types(TypeId)
);

Ta metoda pozwala nam zobaczyć więcej informacji o tabeli. W tym przykładzie widzimy, że TypeId kolumna jest w rzeczywistości kluczem obcym, który odwołuje się do kolumny w innej tabeli.

Tabela sqlite_master

Możesz użyć sqlite_master tabeli do tego samego, co w poprzednim przykładzie.

Oto przykład przy użyciu tej samej tabeli.

SELECT sql 
FROM sqlite_master 
WHERE tbl_name = 'Pets';

Wynik:

CREATE TABLE Pets( 
    PetId INTEGER PRIMARY KEY, 
    PetName,
    TypeId,
    FOREIGN KEY(TypeId) REFERENCES Types(TypeId)
)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Operatory do wyodrębniania podkomponentów JSON

  2. 3 sposoby tworzenia kopii zapasowych bazy danych SQLite

  3. SQLite Zmień nazwę kolumny

  4. Ograniczenia SQLite CHECK

  5. czy mogę otworzyć bazę danych do odczytu z folderu res/asset w Androidzie bez kopiowania do folderu bazy danych?