tables describe commands mysql sqlite sqlite3

commands - ¿Hay un SQLite equivalente a la DESCRIBE[tabla] de MySQL?



sqlite3 bash commands (5)

Estoy empezando a aprender SQLite . Sería bueno poder ver los detalles de una tabla, como DESCRIBE [table] MySQL. PRAGMA table_info [table] no es lo suficientemente bueno, ya que solo tiene información básica (por ejemplo, no muestra si una columna es un campo de algún tipo o no). ¿SQLite tiene una manera de hacer esto?


¿Estás buscando el SQL utilizado para generar una tabla? Para eso, puedes consultar la tabla sqlite_master :

sqlite> CREATE TABLE foo (bar INT, quux TEXT); sqlite> SELECT * FROM sqlite_master; table|foo|foo|2|CREATE TABLE foo (bar INT, quux TEXT) sqlite> SELECT sql FROM sqlite_master WHERE name = ''foo''; CREATE TABLE foo (bar INT, quux TEXT)



Para evitar que las personas sean engañadas por algunos de los comentarios a las otras respuestas:

  1. Si .schema o la query from sqlite_master no query from sqlite_master ningún resultado, indica que no existe un nombre de tablename , por ejemplo, esto también puede ser causado por un ; punto y coma al final para .schema , .tables , ... O simplemente porque la tabla realmente no existe. Es poco .schema que el .schema no funcione y luego se debe presentar un informe de error en el proyecto sqlite.

... .schema solo se puede utilizar desde una línea de comando; los comandos anteriores> se pueden ejecutar como una consulta a través de una biblioteca (Python, C #, etc.). - Mark Rushakoff 25 de julio de 2010 a las 21:09

  1. ''solo se puede usar desde una línea de comando'' puede confundir a las personas. Casi cualquier lenguaje de programación (¿probablemente todos?) Puede llamar a otros programas / comandos. Por lo tanto, el comentario citado es desafortunado, ya que llamar a otro programa, en este caso sqlite , es más probable que se admita que el lenguaje proporciona un wrapper / library para cada programa (que no solo es propenso a ser incompleto por la naturaleza misma de las masas de programas por ahí, pero también es un single-source principle acción single-source principle acción contraria, que complica el maintenance , fomentando el caos de los datos en el mundo).

(Ponga como respuesta sin permiso para comentar aún).


Para ver todas las tablas:

.tables

Para ver una tabla en particular:

.schema [tablename]


PRAGMA table_info([tablename]);