Chcete-li vybrat data z databáze SQLite, použijte SELECT
prohlášení.
Když použijete tento příkaz, určíte, ze které tabulky nebo tabulek se mají vybrat data, a také sloupce, které se mají z dotazu vrátit.
Můžete také poskytnout další kritéria pro další zúžení vracených dat.
Jednoduché SELECT
Prohlášení
Již jsme použili SELECT
dříve, když jsme vkládali data.
Prohlášení, které jsme použili, bylo toto:
SELECT * FROM Artists;
To je zcela samozřejmé – říká SQLite, aby vybral všechny sloupce z
Umělci
stůl. Hvězdička (*
) je zkrácený způsob, jak říci „všechny sloupce“. Ušetří nám to vypisování názvů všech sloupců.
Proto tento dotaz vrátí všechny záznamy a všechny sloupce. Takhle:
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
Formátování
Naformátujme výstup tak, aby byly naše výsledky o něco lépe čitelné.
Použít sloupce
Můžete použít .mode
pro změnu výstupního režimu. Výše uvedený příklad používá .mode list
, který zobrazí výsledky jako seznam.
Změňme režim na použití sloupců.
.mode column
Když to uděláte, možná budete muset upravit šířky sloupců (všechna data, která jsou pro daný sloupec příliš široká, budou zkrácena).
Upravit šířky sloupců
Chcete-li upravit šířky sloupců, použijte .width
příkaz, za kterým následují šířky pro každý sloupec.
Následující příklad nastaví první sloupec na 12
a druhý sloupec na 20
.
.width 12 20
Přidat záhlaví
Můžete také použít .headers
určit, zda se mají zobrazovat záhlaví sloupců.
Chcete-li zobrazit záhlaví, použijte toto:
.headers on
Můžete je odstranit s .headers off
.
Zobrazit nastavení
Tato a další nastavení můžete kdykoli zkontrolovat zadáním .show
sqlite> .show echo: off eqp: off explain: off headers: on mode: column nullvalue: "" output: stdout separator: "|" stats: off width: 12 20
Nový formát
Zde je příklad, jak vypadá předchozí příklad s použitím režimu sloupců a záhlaví:
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
Ustanovení
Můžete použít WHERE
klauzule pro zúžení výsledků. Tato klauzule vám umožňuje stanovit konkrétní kritéria, která se mají na dotaz vztahovat.
Můžete například určit, že mají být vráceny pouze záznamy, kde určité pole obsahuje určitou hodnotu.
Zde je velmi konkrétní příklad. Určuje, že pouze záznam s ArtistId rovno 6 by měl být vrácen:
SELECT * FROM Artists WHERE ArtistId = 6;
Výsledek:
ArtistId ArtistName ------------ -------------------- 6 Mr Percival
Chcete-li najít všechny umělce, jejichž jméno začíná písmenem „S“, můžete to udělat takto:
SELECT * FROM Artists WHERE ArtistName LIKE 'S%';
Výsledek:
ArtistId ArtistName ------------ -------------------- 2 Steve Vai 11 Strapping Young Lad 12 Slayer
Znak procenta (%
) je zástupný znak, který lze použít k zadání libovolného znaku. V tomto příkladu tedy určujeme, že jméno umělce musí být jako tento vzor (tj. vzor začínající písmenem
S
a následování jakoukoli jinou postavou).
Další příklad použití WHERE
klauzule je získat rozsah hodnot. Mohli bychom například hledat záznamy, kde je hodnota menší než číslo, větší než číslo nebo v určitém rozsahu.
Zde je příklad výběru pouze těch záznamů s ArtistId méně než číslo:
SELECT * FROM Artists WHERE ArtistId < 6;
Výsledek:
ArtistId ArtistName ------------ -------------------- 1 Joe Satriani 2 Steve Vai 3 The Tea Party 4 Noiseworks 5 Wayne Jury
Zde je příklad výběru pouze těch záznamů s ArtistId v určitém rozsahu:
SELECT * FROM Artists WHERE ArtistId BETWEEN 5 AND 10;
Výsledek:
ArtistId ArtistName ------------ -------------------- 5 Wayne Jury 6 Mr Percival 7 Iron Maiden 8 Atmasphere 9 Ian Moss 10 Magnum
Výběr sloupců
Můžete určit, že v sadě výsledků budou vráceny pouze určité sloupce. Jednoduše napište názvy sloupců do dotazu. Názvy více sloupců musí být odděleny čárkou.
Je dobrou praxí vybrat jen ty sloupce, které potřebujete. Pomocí *
, i když je to pohodlné, může způsobit další režii, pokud vrátí více sloupců, než je požadováno.
Spusťte tedy znovu stejný dotaz, ale tentokrát vyberte pouze ArtistName sloupec:
SELECT ArtistName FROM Artists WHERE ArtistId BETWEEN 5 AND 10;
Výsledek:
ArtistName ------------ Wayne Jury Mr Percival Iron Maiden Atmasphere Ian Moss Magnum
Položka ORDER BY
Ustanovení
Můžete použít ORDER BY
klauzule k omezení počtu vrácených záznamů.
Můžete přidat ASC
pro vzestupné pořadí nebo DESC
pro sestupné pořadí. Pokud nic nepřidáte, použije se vzestupně.
Zde objednáváme podle Jméno interpreta pole ve vzestupném pořadí:
SELECT * FROM Artists ORDER BY ArtistName;
Výsledek:
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
A pokud přepneme na sestupné pořadí:
SELECT * FROM Artists ORDER BY ArtistName DESC;
Výsledek:
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
Ustanovení
Můžete použít LIMIT
klauzule k omezení počtu vrácených záznamů. To může být užitečné, pokud vaše tabulka obsahuje velké množství záznamů, ale chcete vidět jen hrstku.
Zde omezíme sadu záznamů pouze na pět záznamů:
SELECT * FROM Artists LIMIT 5;
Výsledek:
ArtistId ArtistName ------------ -------------------- 1 Joe Satriani 2 Steve Vai 3 The Tea Party 4 Noiseworks 5 Wayne Jury