sql >> Base de Datos >  >> RDS >> SQLite

Dar formato a los resultados de la consulta de SQLite como columnas con encabezados de columna

De forma predeterminada, cuando se conecta al shell de la línea de comandos de SQLite y ejecuta una consulta, el resultado se devuelve como una lista separada por conductos.

Es posible que haya notado que los resultados no incluyen los nombres de las columnas, lo que puede hacer que sus resultados sean confusos si intenta leerlos, especialmente si la consulta devolvió muchas columnas.

Afortunadamente, hay una manera fácil de formatear la salida para que se muestre como una columna con encabezados de columna.

La salida predeterminada

Como ejemplo, así es como la interfaz de línea de comandos de SQLite genera los resultados de la consulta de forma predeterminada:

SELECT * FROM Products;

Resultado:

1|Widget Holder|139.5
2|Widget Opener|89.7
3|Widgets - 6 Pack|374.2
4|Blue Widget|63.0

Por lo tanto, no hay encabezados de columna y se muestra como una lista separada por barras.

Agregar encabezados de columna

Para agregar los nombres de columna a cada columna, use .headers on .

.headers on
SELECT * FROM Products;

Resultado:

ProductId|ProductName|Price
1|Widget Holder|139.5
2|Widget Opener|89.7
3|Widgets - 6 Pack|374.2
4|Blue Widget|63.0

Puede deshabilitar los encabezados usando .headers off .

Dar formato a los resultados como una columna

También puede usar la columna .mode column para formatear los resultados como una columna.

.mode column
SELECT * FROM Products;

Resultado:

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Widget Opener  89.7      
3           Widgets - 6 P  374.2     
4           Blue Widget    63.0      

Si necesita devolverlo al formato predeterminado, puede usar .mode list .

Cambiar ancho de columna

Puede notar que en el ejemplo anterior, uno de los nombres de productos se ha truncado. Esto se debe a que es más ancho que el ancho de la columna.

De forma predeterminada, cada columna tiene entre 1 y 10 caracteres de ancho, según el nombre del encabezado de la columna y el ancho de la primera columna de datos. Los datos que son demasiado anchos para caber en una columna se truncan.

Sin embargo, puede usar .width comando de punto para establecer las columnas a un ancho específico.

Así es como podemos corregir el ejemplo anterior para que el tercer producto no se trunque.

.width 0 16 0
SELECT * FROM Products;

Resultado:

ProductId   ProductName       Price     
----------  ----------------  ----------
1           Widget Holder     139.5     
2           Widget Opener     89.7      
3           Widgets - 6 Pack  374.2     
4           Blue Widget       63.0      

Quizás se pregunte por qué configuré la primera y la tercera columna en cero.

Usando un valor de 0 en realidad hace que la columna se ajuste automáticamente (hasta cierto punto). Especificando 0 establece la columna al mayor de tres números; 10, el ancho del encabezado y el ancho de la primera fila de datos.

En mi caso, esto funciona bien para la primera y la tercera columna, pero no para la segunda columna. Por lo tanto, configuré esa columna en 16 (que es la cantidad de caracteres que usa el tercer producto).

Restablecer valores predeterminados

Si necesita restablecer brevemente la salida para usar el valor predeterminado de SQLite (es decir, una lista separada por conductos sin encabezados de columna), simplemente puede abrir una nueva ventana de terminal y ejecutar sus comandos desde allí. SQLite utilizará su configuración predeterminada en este caso.

O si desea restablecer la ventana de terminal actual para usar la configuración predeterminada, siempre puede usar lo siguiente:

.headers off
.mode list
.separator "|"

En este caso, agregué el .separator comando de punto, en caso de que haya cambiado previamente el separador.

En caso de que te lo estés preguntando, sí, puedes usar .separator ", " para mostrar los resultados como una lista separada por comas.

Conservar la configuración de la columna

Como se mencionó, cada vez que abre una nueva ventana de terminal para conectarse a SQLite, las consultas volverán al formato predeterminado de SQLite (lista separada por barras).

Para evitar tener que volver a ingresar los comandos anteriores cada vez que se conecta a SQLite, puede ingresarlos en un .sqliterc expediente.

Por ejemplo, abra un archivo de texto en blanco e ingrese lo siguiente:

.mode column
.headers on

Guarde el archivo como .sqliterc al directorio de inicio del usuario, y SQLite lo usará cada vez que se conecte.

Por ejemplo, si el directorio de inicio del usuario es /Users/bart , entonces lo colocaría dentro de ese directorio, para que esté ubicado en /Users/bart/.sqliterc .

Este es un archivo oculto, por lo que es posible que reciba varias indicaciones que le pidan que confirme, etc., según su sistema. Simplemente acepte las indicaciones hasta que se guarde en el directorio de inicio del usuario.