SQLite
 sql >> база данни >  >> RDS >> SQLite

4 начина да получите информация за структурата на таблицата в SQLite

Понякога просто искате да видите основната структура на таблица.

В SQLite има няколко начина за извличане на информация за дадена таблица. По-конкретно, ето четири опции:

  • PRAGMA table_info() изявление
  • PRAGMA table_xinfo() изявление (за виртуални таблици)
  • .schema команда
  • sqlite_master таблица

Примери за всеки метод са по-долу.

PRAGMA table_info()

PRAGMA table_info() оператор връща един ред за всяка колона в наименуваната таблица. Това е нещо като SQLite, еквивалент на DESCRIBE изявление в MySQL.

Синтаксис

Синтаксисът е така:

PRAGMA schema.table_info(table-name);

Където table-name е името на таблицата, за която се нуждаете от информация.

schema частта е по избор. Това е името на прикачена база данни или main или temp за основната и ТЕЛК бази данни. Ако не предоставите това, ще се използва основната база данни.

Пример

Ето пример за връщане на информация за таблица, наречена Домашни любимци .

PRAGMA table_info(Pets);

Резултат:

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

В този случай само първата колона (PetId ) има изрично дефиниран тип данни. Останалите са създадени без техните типове да са изрично дефинирани.

Можем също да видим, че PetId колоната е колоната с първичен ключ (има 1 в пка колона).

PRAGMA table_xinfo()

PRAGMA table_xinfo() операторът е точно същият като PRAGMA table_info() оператор, освен че връща и скрити колони във виртуални таблици.

Ако искате да видите структурата на виртуална таблица, включително всички скрити колони, тази е тази, която трябва да използвате.

Ето пример, използващ същата таблица от предишния пример.

PRAGMA table_xinfo(Pets);

Резултат:

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

Може да се наложи да превъртите настрани, за да видите допълнителната колона. В този случай нито една от колоните не е скрита (и това не е виртуална таблица), така че всички редове са 0 за тази колона.

Ето отново резултата, но с помощта на вертикален изход (.mode line ), за да не се налага да превъртате настрани.

.mode line
PRAGMA table_xinfo(Pets);

Резултат:

       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

Командата .schema

Друг начин за извличане на структурата на таблица е с помощта на .schema команда. Това е един от няколкото метода, които можете да използвате, за да върнете SQL, използван за създаване на таблицата.

Ето пример, използващ същата таблица от предишния пример.

.schema Pets

Резултат:

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

Този метод ни позволява да видим повече информация за таблицата. В този пример можем да видим, че TypeId колоната всъщност е външен ключ, който препраща към колона в друга таблица.

Таблицата sqlite_master

Можете да използвате sqlite_master таблица към същото нещо като предишния пример.

Ето пример за използване на същата таблица.

SELECT sql 
FROM sqlite_master 
WHERE tbl_name = 'Pets';

Резултат:

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. SQLite Listview onclick филтрира db, за да отвори резултат в нова дейност

  2. SQLite Създаване на изглед

  3. Android:Грешка при копиране на база данни (Sqliite) от папка с активи

  4. Изтриване на елемент от ListView и база данни с OnItemClickListener

  5. SQLite Изберете Distinct