SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite - Selecionar dados


Para selecionar dados de um banco de dados SQLite, use o SELECT demonstração.

Ao usar essa instrução, você especifica de qual(is) tabela(s) selecionar os dados, bem como as colunas a serem retornadas da consulta.

Você também pode fornecer critérios extras para restringir ainda mais os dados retornados.

Simples SELECT Declaração


Já usamos um SELECT declaração anteriormente, quando inserimos os dados.

A declaração que usamos foi esta:
SELECT * FROM Artists;

Isso é bastante autoexplicativo - está dizendo ao SQLite para selecionar todas as colunas do Artistas tabela. O asterisco (* ) é uma forma abreviada de dizer "todas as colunas". Isso nos poupa escrevendo os nomes de todas as colunas.

Portanto, essa consulta retorna todos os registros e todas as colunas. Assim:
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

Formatação


Vamos formatar a saída para que nossos resultados sejam um pouco mais fáceis de ler.

Usar colunas


Você pode usar .mode para alterar o modo de saída. O exemplo acima usa .mode list , que exibe os resultados como uma lista.

Vamos alterar o modo para usar colunas.
.mode column

Ao fazer isso, talvez seja necessário ajustar as larguras das colunas (todos os dados que forem muito largos para a coluna serão truncados).

Ajuste as larguras das colunas


Para ajustar as larguras das colunas, use o .width comando, seguido por larguras para cada coluna.

O exemplo a seguir define a primeira coluna como 12 e a segunda coluna para 20 .
.width 12 20

Adicionar cabeçalhos


Você também pode usar .headers para especificar se os cabeçalhos das colunas devem ou não ser exibidos.

Para exibir cabeçalhos, use isto:
.headers on

Você pode removê-los com .headers off .

Mostrar configurações


Você pode revisar essas e outras configurações a qualquer momento digitando .show
sqlite> .show
     echo: off
      eqp: off
  explain: off
  headers: on
     mode: column
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width: 12 20 

Novo formato


Veja como é o exemplo anterior usando o modo de colunas e cabeçalhos:
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 

O WHERE Cláusula


Você pode usar o WHERE cláusula para restringir os resultados. A cláusula permite estipular critérios específicos para os quais aplicar à consulta.

Por exemplo, você pode especificar que apenas os registros, onde um determinado campo contém um determinado valor, devem ser retornados.

Aqui está um exemplo muito específico. Especifica que apenas o registro com um ArtistId igual a 6 deve ser devolvido:
SELECT * FROM Artists
WHERE ArtistId = 6;

Resultado:
ArtistId      ArtistName          
------------  --------------------
6             Mr Percival   

Para encontrar todos os artistas cujo nome começa com a letra "S", você pode fazer o seguinte:
SELECT * FROM Artists
WHERE ArtistName LIKE 'S%';

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

O sinal de porcentagem (% ) é um caractere curinga que pode ser usado para especificar qualquer caractere. Portanto, neste exemplo, estamos especificando que o nome do artista deve ser como este padrão (ou seja, o padrão começando com a letra S e seguindo com qualquer outro caractere).

Outro exemplo de uso do WHERE cláusula é recuperar um intervalo de valores. Por exemplo, podemos procurar registros em que o valor seja menor que um número, maior que um número ou dentro de um determinado intervalo.

Aqui está um exemplo de como selecionar apenas os registros com um ArtistId menos de um 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 

Aqui está um exemplo de como selecionar apenas os registros com um ArtistId dentro de um determinado intervalo:
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   

Selecionando Colunas


Você pode especificar que apenas determinadas colunas sejam retornadas no conjunto de resultados. Basta escrever os nomes das colunas na consulta. Vários nomes de coluna precisam ser separados por uma vírgula.

É uma boa prática selecionar apenas as colunas necessárias. Usando * , embora conveniente, pode causar sobrecarga extra se retornar mais colunas do que o necessário.

Então, vamos executar a mesma consulta novamente, mas desta vez, selecione apenas o ArtistName coluna:
SELECT ArtistName FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

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

O ORDER BY Cláusula


Você pode usar o ORDER BY cláusula para limitar o número de registros retornados.

Você pode adicionar ASC para ordem crescente ou DESC para ordem decrescente. Se você não adicionar nada, usará ascendente.

Aqui, ordenamos pelo ArtistName campo em ordem crescente:
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  

E se mudarmos para ordem decrescente:
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  

O LIMIT Cláusula


Você pode usar o LIMIT cláusula para limitar o número de registros retornados. Isso pode ser útil se sua tabela contiver um grande número de registros, mas você quiser ver apenas alguns.

Aqui, limitamos o conjunto de registros a apenas 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