sql >> Database >  >> RDS >> SQLite

SQLite - Gegevens selecteren

Om gegevens uit een SQLite-database te selecteren, gebruikt u de SELECT verklaring.

Wanneer u deze instructie gebruikt, geeft u op uit welke tabel(len) gegevens moeten worden geselecteerd, evenals de kolommen die uit de query moeten worden geretourneerd.

U kunt ook extra criteria opgeven om de geretourneerde gegevens verder te verfijnen.

Eenvoudige SELECT Verklaring

We hebben al een SELECT . gebruikt verklaring eerder, toen we gegevens invoegden.

De verklaring die we gebruikten was deze:

SELECT * FROM Artists;

Dit is vrij duidelijk - het vertelt SQLite om alle kolommen van de Artiesten te selecteren tafel. Het sterretje (* ) is een verkorte manier om "alle kolommen" te zeggen. Het bespaart ons het schrijven van de namen van alle kolommen.

Daarom retourneert deze query alle records en alle kolommen. Zoals dit:

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

Opmaak

Laten we de uitvoer formatteren zodat onze resultaten wat gemakkelijker te lezen zijn.

Kolommen gebruiken

U kunt .mode . gebruiken om de uitvoermodus te wijzigen. Het bovenstaande voorbeeld gebruikt .mode list , die de resultaten als een lijst weergeeft.

Laten we de modus wijzigen om kolommen te gebruiken.

.mode column

Wanneer u dit doet, moet u mogelijk de kolombreedten aanpassen (alle gegevens die te breed zijn voor de kolom worden afgekapt).

Kolombreedtes aanpassen

Gebruik de .width . om de kolombreedten aan te passen commando, gevolgd door breedtes voor elke kolom.

In het volgende voorbeeld wordt de eerste kolom ingesteld op 12 en de tweede kolom naar 20 .

.width 12 20

Koppen toevoegen

U kunt ook .headers . gebruiken om aan te geven of kolomkoppen wel of niet moeten worden weergegeven.

Gebruik dit om kopteksten weer te geven:

.headers on

Je kunt ze verwijderen met .headers off .

Instellingen weergeven

Je kunt deze en andere instellingen op elk moment bekijken door .show . te typen

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

Nieuw formaat

Zo ziet het vorige voorbeeld eruit met de modus voor kolommen en kopteksten:

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 

De WHERE Clausule

U kunt de WHERE . gebruiken clausule om de resultaten te beperken. Met de clausule kunt u specifieke criteria specificeren die op de vraag van toepassing zijn.

U kunt bijvoorbeeld specificeren dat alleen records, waarin een bepaald veld een bepaalde waarde bevat, moeten worden geretourneerd.

Hier is een heel specifiek voorbeeld. Het specificeert dat alleen het record met een ArtistId gelijk aan 6 moet worden geretourneerd:

SELECT * FROM Artists
WHERE ArtistId = 6;

Resultaat:

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

Om alle artiesten te vinden wiens naam begint met de letter "S", kun je dit doen:

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

Resultaat:

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

Het procentteken (% ) is een jokerteken dat kan worden gebruikt om elk teken op te geven. In dit voorbeeld specificeren we dus dat de naam van de artiest moet zijn zoals dit patroon (d.w.z. het patroon dat begint met de letter S en gevolgd door een ander teken).

Een ander voorbeeld van het gebruik van de WHERE clausule is om een ​​reeks waarden op te halen. We kunnen bijvoorbeeld zoeken naar records waarvan de waarde kleiner is dan een getal, groter dan een getal of binnen een bepaald bereik valt.

Hier is een voorbeeld van het selecteren van alleen die records met een ArtistId minder dan een getal:

SELECT * FROM Artists
WHERE ArtistId < 6;

Resultaat:

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

Hier is een voorbeeld van het selecteren van alleen die records met een ArtistId binnen een bepaald bereik:

SELECT * FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Resultaat:

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

Kolommen selecteren

U kunt opgeven dat alleen bepaalde kolommen worden geretourneerd in de resultatenset. Schrijf gewoon de kolomnamen in de query. Meerdere kolomnamen moeten worden gescheiden door een komma.

Het is een goede gewoonte om alleen die kolommen te selecteren die u nodig hebt. Met behulp van * , hoewel handig, kan extra overhead veroorzaken als het meer kolommen retourneert dan nodig is.

Dus laten we dezelfde query opnieuw uitvoeren, maar deze keer alleen de ArtistName selecteren kolom:

SELECT ArtistName FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Resultaat:

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

De ORDER BY Clausule

U kunt de ORDER BY . gebruiken clausule om het aantal geretourneerde records te beperken.

U kunt ASC . toevoegen voor oplopende volgorde, of DESC voor aflopende volgorde. Als je niets toevoegt, wordt oplopend gebruikt.

Hier bestellen we op ArtistName veld in oplopende volgorde:

SELECT * FROM Artists
ORDER BY ArtistName;

Resultaat:

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  

En als we overschakelen naar aflopende volgorde:

SELECT * FROM Artists
ORDER BY ArtistName DESC;

Resultaat:

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  

De LIMIT Clausule

U kunt de LIMIT . gebruiken clausule om het aantal geretourneerde records te beperken. Dit kan handig zijn als uw tabel een groot aantal records bevat, maar u slechts een handvol records wilt zien.

Hier beperken we de recordset tot slechts vijf records:

SELECT * FROM Artists LIMIT 5;

Resultaat:

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

  1. Hoe PostgreSQL-enum in kaart te brengen met JPA en Hibernate

  2. Welke join-syntaxis is beter?

  3. Een subformulier toevoegen aan een formulier in Access 2016

  4. Verwijder dubbele rijen in MySQL