Às vezes você só quer ver a estrutura básica de uma tabela.
No SQLite, existem várias maneiras de recuperar informações sobre uma determinada tabela. Em particular, aqui estão quatro opções:
- O
PRAGMA table_info()
declaração - A
PRAGMA table_xinfo()
instrução (para tabelas virtuais) - O
.schema
comando - O
sqlite_master
tabela
Exemplos de cada método estão abaixo.
PRAGMA table_info()
O
PRAGMA table_info()
A instrução retorna uma linha para cada coluna na tabela nomeada. É como um equivalente SQLite ao DESCRIBE
declaração no MySQL. Sintaxe
A sintaxe fica assim:
PRAGMA schema.table_info(table-name);
Onde
table-name
é o nome da tabela sobre a qual você precisa de informações. O
schema
parte é opcional. Este é o nome de um banco de dados anexado ou main
ou temp
para os bancos de dados principal e TEMP. Se você não fornecer isso, o banco de dados principal será usado. Exemplo
Aqui está um exemplo de retorno de informações sobre uma tabela chamada Animais de estimação .
PRAGMA table_info(Pets);
Resultado:
cid name type notnull dflt_value pk ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 1 PetName 0 0 2 TypeId 0 0
Nesse caso, apenas a primeira coluna (PetId ) tem seu tipo de dados explicitamente definido. Os demais foram criados sem que seus tipos fossem explicitamente definidos.
Também podemos ver que o PetId coluna é a coluna de chave primária (há um 1 no pk coluna).
PRAGMA table_xinfo()
O
PRAGMA table_xinfo()
instrução é exatamente a mesma que a PRAGMA table_info()
instrução, exceto que também retorna colunas ocultas em tabelas virtuais. Se você quiser ver a estrutura de uma tabela virtual, incluindo quaisquer colunas ocultas, esta é a única a ser usada.
Aqui está um exemplo usando a mesma tabela do exemplo anterior.
PRAGMA table_xinfo(Pets);
Resultado:
cid name type notnull dflt_value pk hidden ---------- ---------- ---------- ---------- ---------- ---------- ---------- 0 PetId INTEGER 0 1 0 1 PetName 0 0 0 2 TypeId 0 0 0
Você pode ter que rolar para o lado para ver a coluna extra. Nesse caso, nenhuma das colunas está oculta (e não é uma tabela virtual), portanto, todas as linhas são 0 para essa coluna.
Aqui está o resultado novamente, mas usando saída vertical (
.mode line
) para que você não precise rolar para os lados. .mode line
PRAGMA table_xinfo(Pets);
Resultado:
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
O comando .schema
Outra maneira de recuperar a estrutura de uma tabela é usando o
.schema
comando. Este é um dos vários métodos que você pode usar para retornar o SQL usado para criar a tabela. Aqui está um exemplo usando a mesma tabela do exemplo anterior.
.schema Pets
Resultado:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) );
Este método nos permite ver mais informações sobre a tabela. Neste exemplo, podemos ver que o TypeId column é na verdade uma chave estrangeira que faz referência a uma coluna em outra tabela.
A tabela sqlite_master
Você pode usar o
sqlite_master
table para a mesma coisa que o exemplo anterior. Aqui está um exemplo usando a mesma tabela.
SELECT sql
FROM sqlite_master
WHERE tbl_name = 'Pets';
Resultado:
CREATE TABLE Pets( PetId INTEGER PRIMARY KEY, PetName, TypeId, FOREIGN KEY(TypeId) REFERENCES Types(TypeId) )