A veces, solo desea ver la estructura básica de una tabla.
En SQLite, hay varias formas de recuperar información sobre una tabla determinada. En particular, aquí hay cuatro opciones:
- El
PRAGMA table_info()
declaración - La
PRAGMA table_xinfo()
declaración (para tablas virtuales) - El
.schema
comando - El
sqlite_master
mesa
A continuación se muestran ejemplos de cada método.
PRAGMA table_info()
PRAGMA table_info()
declaración devuelve una fila para cada columna en la tabla nombrada. Es como un SQLite equivalente a DESCRIBE
declaración en MySQL.
Sintaxis
La sintaxis es así:
PRAGMA schema.table_info(table-name);
Donde table-name
es el nombre de la tabla sobre la que necesita información.
El schema
parte es opcional. Este es el nombre de una base de datos adjunta o main
o temp
para las bases de datos principal y TEMP. Si no proporciona esto, se utilizará la base de datos principal.
Ejemplo
Este es un ejemplo de devolución de información sobre una tabla llamada Mascotas .
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
En este caso, solo la primera columna (PetId ) tiene su tipo de datos explícitamente definido. Los demás se crearon sin que sus tipos se definieran explícitamente.
También podemos ver que el PetId columna es la columna de clave principal (hay un 1 en el paquete columna).
PRAGMA tabla_xinfo()
PRAGMA table_xinfo()
declaración es exactamente la misma que PRAGMA table_info()
instrucción, excepto que también devuelve columnas ocultas en tablas virtuales.
Si desea ver la estructura de una tabla virtual, incluidas las columnas ocultas, esta es la que debe usar.
Aquí hay un ejemplo usando la misma tabla del ejemplo 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
Es posible que deba desplazarse hacia los lados para ver la columna adicional. En este caso, ninguna de las columnas está oculta (y no es una tabla virtual), por lo que todas las filas son 0 para esa columna.
Aquí está el resultado nuevamente, pero usando salida vertical (.mode line
) para que no tenga que desplazarse hacia los 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
El comando .schema
Otra forma de recuperar la estructura de una tabla es usando .schema
dominio. Este es uno de varios métodos que puede utilizar para devolver el SQL utilizado para crear la tabla.
Aquí hay un ejemplo usando la misma tabla del ejemplo 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 más información sobre la tabla. En este ejemplo, podemos ver que el TypeId columna es en realidad una clave externa que hace referencia a una columna en otra tabla.
La tabla sqlite_master
Puedes usar el sqlite_master
table a lo mismo que el ejemplo anterior.
Aquí hay un ejemplo usando la misma tabla.
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) )