SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite - Изберете данни

За да изберете данни от база данни на SQLite, използвайте SELECT изявление.

Когато използвате този израз, вие посочвате от кои таблици/и да изберете данни, както и колоните, които да се върнат от заявката.

Можете също да предоставите допълнителни критерии за допълнително стесняване на данните, които се връщат.

Прост SELECT Изявление

Вече използвахме SELECT изявление преди това, когато вмъкнахме данни.

Изявлението, което използвахме, беше следното:

SELECT * FROM Artists;

Това е съвсем разбираемо - казва на SQLite да избере всички колони от Изпълнители маса. Звездичката (* ) е съкратен начин да се каже "всички колони". Това ни спестява изписването на имената на всички колони.

Следователно тази заявка връща всички записи и всички колони. Като това:

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

Форматиране

Нека форматираме изхода, така че нашите резултати да са малко по-лесни за четене.

Използвайте колони

Можете да използвате .mode за да промените изходния режим. Горният пример използва .mode list , което показва резултатите като списък.

Нека променим режима, за да използваме колони.

.mode column

Когато направите това, може да се наложи да коригирате ширините на колоните (всички данни, които са твърде широки за колоната, ще бъдат съкратени).

Коригирайте ширините на колоните

За да регулирате ширините на колоните, използвайте .width команда, последвана от ширини за всяка колона.

Следният пример задава първата колона на 12 и втората колона на 20 .

.width 12 20

Добавяне на заглавки

Можете също да използвате .headers off за да укажете дали да се показват заглавки на колони или не.

За да покажете заглавки, използвайте това:

.headers on

Можете да ги премахнете с изключени .headers off .

Показване на настройките

Можете да прегледате тези и други настройки по всяко време, като напишете .show

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

Нов формат

Ето как изглежда предишният пример с режим на колони и заглавки:

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 

WHERE Клауза

Можете да използвате WHERE клауза за стесняване на резултатите. Клаузата ви позволява да зададете конкретни критерии, за които да приложите към заявката.

Например, можете да посочите, че трябва да се връщат само записи, където определено поле съдържа определена стойност.

Ето един много конкретен пример. Той указва, че само записът с ArtistId равно на 6 трябва да се върне:

SELECT * FROM Artists
WHERE ArtistId = 6;

Резултат:

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

За да намерите всички изпълнители, чието име започва с буквата "S", можете да направите това:

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

Резултат:

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

Знакът на процента (% ) е заместващ знак, който може да се използва за определяне на всеки знак. И така, в този пример уточняваме, че името на художника трябва да бъде като този модел (т.е. моделът, започващ с буквата S и следване с всеки друг знак).

Друг пример за използване на WHERE клауза е за извличане на диапазон от стойности. Например, можем да търсим записи, в които стойността е по-малка от число, по-голяма от число или в определен диапазон.

Ето пример за избиране само на тези записи с ArtistId по-малко от число:

SELECT * FROM Artists
WHERE ArtistId < 6;

Резултат:

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

Ето пример за избиране само на тези записи с ArtistId в определен диапазон:

SELECT * FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Резултат:

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

Избиране на колони

Можете да посочите, че само определени колони се връщат в набора от резултати. Просто напишете имената на колоните в заявката. Имената на няколко колони трябва да бъдат разделени със запетая.

Добра практика е да изберете само онези колони, от които се нуждаете. Използване на * , макар и удобен, може да причини допълнителни разходи, ако връща повече колони, отколкото е необходимо.

Така че нека стартираме отново същата заявка, но този път изберете само Име на изпълнител колона:

SELECT ArtistName FROM Artists
WHERE ArtistId BETWEEN 5 AND 10;

Резултат:

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

ORDER BY Клауза

Можете да използвате ORDER BY клауза за ограничаване на броя на върнатите записи.

Можете да добавите ASC за възходящ ред или DESC за низходящ ред. Ако не добавите нищо, той ще използва възходящо ниво.

Тук поръчваме по Име на изпълнител поле във възходящ ред:

SELECT * FROM Artists
ORDER BY ArtistName;

Резултат:

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  

И ако преминем към низходящ ред:

SELECT * FROM Artists
ORDER BY ArtistName DESC;

Резултат:

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  

LIMIT Клауза

Можете да използвате LIMIT клауза за ограничаване на броя на върнатите записи. Това може да бъде удобно, ако вашата таблица съдържа голям брой записи, но искате да видите само шепа.

Тук ограничаваме набора от запис до само пет записа:

SELECT * FROM Artists LIMIT 5;

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android със стая - Как да зададете нула на външен ключ

  2. Как да активирате поддръжка на чужд ключ в SQLite

  3. Базата данни за стаи на Android няма да експортира всички данни

  4. Вмъкнете JSON данни в базата данни SQLite в android

  5. Трябва ли да създам клас, който наследява SQLiteOpenHelper за всяка таблица в моята база данни?