Shrnutí :v tomto tutoriálu se naučíte používat SQLite SELECT
k dotazu na data z jedné tabulky.
SELECT
je jedním z nejčastěji používaných příkazů v SQL. SQLite SELECT
poskytuje všechny funkce SELECT
příkaz ve standardu SQL.
Jednoduché použití SELECT
prohlášení
Můžete použít SELECT
příkaz k provedení jednoduchého výpočtu takto:
SELECT 1 + 1;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
V SELECT
můžete použít více výrazů prohlášení takto:
SELECT
10 / 5,
2 * 4 ;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Dotazování dat z tabulky pomocí SELECT
prohlášení
Často používáme SELECT
příkaz k dotazu na data z jedné nebo více tabulek. Syntaxe SELECT
prohlášení je následující:
SELECT DISTINCT column_list
FROM table_list
JOIN table ON join_condition
WHERE row_filter
ORDER BY column
LIMIT count OFFSET offset
GROUP BY column
HAVING group_filter;
Code language: SQL (Structured Query Language) (sql)
SELECT
příkaz je nejsložitější příkaz v SQLite. Pro snazší pochopení každé části přerušíme SELECT
prohlášení do několika snadno srozumitelných výukových programů.
- K seřazení sady výsledků použijte klauzuli ORDER BY
- K dotazu na jedinečné řádky v tabulce použijte klauzuli DISTINCT
- K filtrování řádků v sadě výsledků použijte klauzuli WHERE
- K omezení počtu vrácených řádků použijte klauzule LIMIT OFFSET
- Použijte INNER JOIN nebo LEFT JOIN k dotazování na data z více tabulek pomocí spojení.
- Použijte GROUP BY k rozdělení řádků skupin do skupin a použití agregační funkce pro každou skupinu.
- K filtrování skupin použijte klauzuli HAVING
V tomto tutoriálu se zaměříme na nejjednodušší formu SELECT
příkaz, který vám umožňuje dotazovat se na data z jediné tabulky.
SELECT column_list
FROM table;
Code language: SQL (Structured Query Language) (sql)
I když SELECT
klauzule se objeví před FROM
klauzule, SQLite vyhodnotí FROM
nejprve klauzuli a poté SELECT
klauzule, proto:
- Nejprve určete tabulku, ze které chcete získat data v
FROM
doložka. Všimněte si, že vFROM
můžete mít více než jednu tabulku doložka. Probereme to v následujícím tutoriálu. - Zadruhé zadejte sloupec nebo seznam sloupců oddělených čárkami v
SELECT
doložka.
Pro ukončení příkazu použijte středník (;).
SQLite SELECT
příklady
Pojďme se podívat na tracks
tabulky ve vzorové databázi.
tracks
tabulka obsahuje sloupce a řádky. Vypadá to jako tabulka.
Chcete-li získat data z tabulky skladeb, jako je trackid, název skladby, skladatel a jednotková cena, použijte následující příkaz:
SELECT
trackid,
name,
composer,
unitprice
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
V SELECT
zadáte názvy sloupců seznamu, ze kterých chcete získat data klauzule a tracks
tabulky v FROM
doložka. SQLite vrátí následující výsledek:
Chcete-li získat data ze všech sloupců, zadejte sloupce tracks
tabulky v SELECT
doložka takto:
SELECT
trackid,
name,
albumid,
mediatypeid,
genreid,
composer,
milliseconds,
bytes,
unitprice
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
U tabulky s mnoha sloupci by byl dotaz tak dlouhý, že jeho psaní by bylo časově náročné. Abyste tomu zabránili, můžete použít hvězdičku (*), která je zkratkou pro všechny sloupce tabulky takto:
SELECT * FROM tracks;
Code language: SQL (Structured Query Language) (sql)
Zkuste to
Dotaz je nyní kratší a přehlednější.
Nicméně…
Hvězdičku (*) byste měli používat pouze pro účely testování, nikoli při vývoji skutečné aplikace.
Protože…
Když vyvíjíte aplikaci, měli byste ovládat, co SQLite vrátí vaší aplikaci. Předpokládejme, že tabulka má 3 sloupce a pomocí hvězdičky (*) načtete data ze všech tří sloupců.
Co když někdo odstraní sloupec, vaše aplikace nebude fungovat správně, protože předpokládá, že jsou vráceny tři sloupce a logika zpracování těchto tří sloupců by byla narušena.
Pokud někdo přidá více sloupců, vaše aplikace může fungovat, ale získá více dat, než je potřeba, což vytváří více I/O režie mezi databází a aplikací.
Zkuste se tedy vyhnout používání hvězdičky (*) jako dobrému zvyku, když používáte SELECT
prohlášení.
V tomto tutoriálu jste se naučili používat jednoduchou formu SQLite SELECT
k dotazu na data z jedné tabulky.