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

SQLite - Seleccionar datos

Para seleccionar datos de una base de datos SQLite, utilice SELECT declaración.

Cuando usa esta declaración, especifica de qué tabla/s seleccionar datos, así como las columnas para devolver de la consulta.

También puede proporcionar criterios adicionales para reducir aún más los datos que se devuelven.

Simple SELECT Declaración

Ya hemos usado un SELECT declaración anterior, cuando insertamos datos.

La declaración que usamos fue esta:

SELECT * FROM Artists;

Esto se explica por sí mismo:le dice a SQLite que seleccione todas las columnas de Artists mesa. El asterisco (* ) es una forma abreviada de decir "todas las columnas". Nos ahorra tener que escribir los nombres de todas las columnas.

Por lo tanto, esta consulta devuelve todos los registros y todas las columnas. Así:

1|Joe Satriani
2|Steve Vai
3|The Tea Party
4|Noiseworks
5|Wayne Jury
6|Mr Percival
7|Iron Maiden
8|Atmasphere
9|Ian Moss
10|Magnum
11|Strapping Young Lad
12|Slayer
13|Primus
14|Pat Metheny
15|Frank Gambale
16|Frank Zappa
17|The Wiggles

Formateo

Vamos a formatear la salida para que nuestros resultados sean un poco más fáciles de leer.

Usar columnas

Puedes usar .mode para cambiar el modo de salida. El ejemplo anterior usa .mode list , que muestra los resultados en forma de lista.

Cambiemos el modo para usar columnas.

.mode column

Cuando haga esto, es posible que deba ajustar el ancho de las columnas (cualquier dato que sea demasiado ancho para la columna se truncará).

Ajustar anchos de columna

Para ajustar el ancho de las columnas, use .width comando, seguido de anchos para cada columna.

El siguiente ejemplo establece la primera columna en 12 y la segunda columna a 20 .

.width 12 20

Agregar encabezados

También puede usar .headers para especificar si mostrar o no los encabezados de las columnas.

Para mostrar encabezados, use esto:

.headers on

Puede eliminarlos con .headers off .

Mostrar configuración

Puede revisar estas y otras configuraciones en cualquier momento, escribiendo .show

sqlite> .show
     echo: off
      eqp: off
  explain: off
  headers: on
     mode: column
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width: 12 20 

Nuevo formato

Así es como se ve el ejemplo anterior usando el modo de columnas y encabezados:

ArtistId    ArtistName  
----------  ------------
1           Joe Satriani
2           Steve Vai   
3           The Tea Part
4           Noiseworks  
5           Wayne Jury  
6           Mr Percival 
7           Iron Maiden 
8           Atmasphere  
9           Ian Moss    
10          Magnum      
11          Strapping Yo
12          Slayer      
13          Primus      
14          Pat Metheny 
15          Frank Gambal
16          Frank Zappa 
17          The Wiggles 

El WHERE Cláusula

Puedes usar el WHERE cláusula para reducir los resultados. La cláusula le permite estipular criterios específicos para aplicar a la consulta.

Por ejemplo, puede especificar que solo se devuelvan los registros en los que un campo determinado contenga un valor determinado.

Aquí hay un ejemplo muy específico. Especifica que solo el registro con un ArtistId igual a 6 debe devolverse:

SELECT * FROM Artists
WHERE ArtistId = 6;

Resultado:

ArtistId      ArtistName          
------------  --------------------
6             Mr Percival   

Para encontrar todos los artistas cuyo nombre comienza con la letra "S", puedes hacer esto:

SELECT * FROM Artists
WHERE ArtistName LIKE 'S%';

Resultado:

ArtistId      ArtistName          
------------  --------------------
2             Steve Vai           
11            Strapping Young Lad 
12            Slayer     

El signo de porcentaje (% ) es un carácter comodín que se puede utilizar para especificar cualquier carácter. Entonces, en este ejemplo, estamos especificando que el nombre del artista debe ser como este patrón (es decir, el patrón que comienza con la letra S y siguiendo con cualquier otro carácter).

Otro ejemplo del uso de WHERE cláusula es recuperar un rango de valores. Por ejemplo, podríamos buscar registros donde el valor sea menor que un número, mayor que un número o dentro de un cierto rango.

Este es un ejemplo de cómo seleccionar solo los registros con un ArtistId menos que un número:

SELECT * FROM Artists
WHERE ArtistId < 6;

Resultado:

ArtistId      ArtistName          
------------  --------------------
1             Joe Satriani        
2             Steve Vai           
3             The Tea Party       
4             Noiseworks          
5             Wayne Jury 

Este es un ejemplo de cómo seleccionar solo los registros con un ArtistId dentro de un cierto rango:

SELECT * FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Resultado:

ArtistId      ArtistName          
------------  --------------------
5             Wayne Jury          
6             Mr Percival         
7             Iron Maiden         
8             Atmasphere          
9             Ian Moss            
10            Magnum   

Selección de columnas

Puede especificar que solo se devuelvan determinadas columnas en el conjunto de resultados. Simplemente escriba los nombres de las columnas en la consulta. Los nombres de columnas múltiples deben estar separados por una coma.

Es una buena práctica seleccionar solo las columnas que necesita. Usando * , si bien es conveniente, puede generar una sobrecarga adicional si devuelve más columnas de las requeridas.

Entonces, ejecutemos la misma consulta nuevamente, pero esta vez, solo seleccione ArtistName columna:

SELECT ArtistName FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Resultado:

ArtistName  
------------
Wayne Jury  
Mr Percival 
Iron Maiden 
Atmasphere  
Ian Moss    
Magnum 

El ORDER BY Cláusula

Puedes usar el ORDER BY cláusula para limitar el número de registros devueltos.

Puede agregar ASC para orden ascendente, o DESC por orden descendente. Si no agrega nada, usará ascendente.

Aquí, ordenamos por ArtistName campo en orden ascendente:

SELECT * FROM Artists
ORDER BY ArtistName;

Resultado:

ArtistId      ArtistName          
------------  --------------------
8             Atmasphere          
15            Frank Gambale       
16            Frank Zappa         
9             Ian Moss            
7             Iron Maiden         
1             Joe Satriani        
10            Magnum              
6             Mr Percival         
4             Noiseworks          
14            Pat Metheny         
13            Primus              
12            Slayer              
2             Steve Vai           
11            Strapping Young Lad 
3             The Tea Party       
17            The Wiggles         
5             Wayne Jury  

Y si cambiamos a orden descendente:

SELECT * FROM Artists
ORDER BY ArtistName DESC;

Resultado:

ArtistId      ArtistName          
------------  --------------------
5             Wayne Jury          
17            The Wiggles         
3             The Tea Party       
11            Strapping Young Lad 
2             Steve Vai           
12            Slayer              
13            Primus              
14            Pat Metheny         
4             Noiseworks          
6             Mr Percival         
10            Magnum              
1             Joe Satriani        
7             Iron Maiden         
9             Ian Moss            
16            Frank Zappa         
15            Frank Gambale       
8             Atmasphere  

El LIMIT Cláusula

Puedes usar el LIMIT cláusula para limitar el número de registros devueltos. Esto puede ser útil si su tabla contiene una gran cantidad de registros, pero solo desea ver unos pocos.

Aquí, limitamos el conjunto de registros a solo cinco registros:

SELECT * FROM Artists LIMIT 5;

Resultado:

ArtistId      ArtistName          
------------  --------------------
1             Joe Satriani        
2             Steve Vai           
3             The Tea Party       
4             Noiseworks          
5             Wayne Jury