Překlad samotného zkratky SQL (jazyk strukturněorganizované dotazy) odráží skutečnost, že dotazy jsou nejčastěji používaným prvkem v SQL. Vyberte potřebné řádky, automaticky odstraňte redundantní data, přeskočte nebo znovu uspořádejte sloupce. Výběr (SQL) - operátor obsahující indikaci DBMS pro zobrazení určitých informací.
Syntaxe operátora
Chcete-li správně pouľít libovolného operátora,musíte se nejprve seznámit se syntaxí daného programovacího jazyka. Pokud hovoříte konkrétně o jazyce SQL, má Select (operator) následující syntaxi:
Vyberte možnost | Říká databázi, že žádost odesíláme. Toto je klíčové slovo. |
Jeden, dva, tři ... | Seznam sloupců pro výstup |
Od | Označuje název tabulky, ze které budou data vybrána. Také požadované klíčové slovo. |
Jedná se o tzv. „Krátkou“ syntaxi výpisu, ale ukazuje nám, že bez výběru a od klíčových slov DBMS nesplní naši žádost.
Úplná syntaxe operátora je zobrazena na následujícím obrázku:
Zde doložka Kde vám umožňuje upřesnit vyhledávání zadáním podmínky.
Klauzule Group by se používá k seskupení hodnot a použití agregační funkce na ně a k určení výsledku po seskupení se použije klauzule Having.
Objednávka podle umožňuje třídit hodnoty vybraných sloupců vzestupně nebo sestupně.
Abychom se lépe seznámili s operátorem Select, představme si, že máme v naší databázi následující tabulku. Kočky s informacemi:
Id | Plemeno | Jméno | Narozeniny | Barva |
1 | Bobtail | Pane | 01.04.2017 | Šedá |
2 | Curl | Trik | 16.03.2017 | Bílá |
3 | Mau | Panther | 30.03.2017 | Černá |
4 | Bobtail | Tyson | 23.02.2017 | Šedá |
5 | Burmilla | Athena | 08.01.2017 | Černá |
Každý řádek tabulky obsahuje jedinečné číslo.kotě, jeho plemeno, přezdívka, datum narození a zbarvení. Dále zvážíme, jak funguje příkaz Select (SQL), který již spoléhá na data z této tabulky.
Jak je výběr dat z tabulky
Jak bylo uvedeno výše, klíčová slova jsou nutně používána pro výběr nezbytných informací z tabulky.
Po výběru klíčového slova se pro výstup zobrazí sloupce. Můžete vytvořit seznam potřebných sloupců oddělených čárkami, pak celá struktura bude vypadat takto:
Vyberte barvu, plemeno, jméno Od koček |
Jak vidíte, můžeme uspořádat sloupce v pořadí, v jakém je potřebujeme. Navíc můžeme zobrazit pouze sloupce, které potřebujeme.
K dispozici je také stručný záznam pro zobrazení všech sloupců v tabulce. Za tímto účelem je po výběru označena hvězdička (*) s mezerou Celá struktura bude vypadat takto:
Vybrat * Od koček |
Výsledkem výše uvedeného dotazu je celá tabulka Kočky, prezentovaná ve formě, ve které je obsažena na konci poslední části.
Mnozí se zajímají o umístěníVýsledky provádění v SQL Select jsou v řetězci. Nejčastěji je to nutné, je-li nutné kombinovat příjmení, křestní jméno a patronym, umístěné v samostatných sloupcích.
В нашем случае объединим породу и окрас кошек из stoly kočky. Tato nuance spočívá v tom, že různé DBMS používají pro zřetězení řetězců různé znaky. V některých případech je to jen plus (+), v jiných je to dvojitý dopředný řádek (||) nebo ampersand (&), někdy se používá také Concat operand. Před sloučením proto musíte přečíst anotaci ke konkrétnímu DBMS, se kterým pracujete.
Vyberte plemeno || „,“ || barvy Od koček |
Výsledkem je následující:
Plemeno, Barva |
Bobtail, šedá |
Curl, bílá |
Mau, černá |
Bobtail, šedá |
Burmilla, černá |
Eliminujte nadbytečná data
Distinct je funkce Select (SQL), která umožňuje vyloučit duplikaci naprosto identických řádků z výsledku výběru.
Například bychom chtěli vědět, jaká plemena koček jsou v naší tabulce. Použijeme-li jednoduchý dotaz:
Vyberte plemeno Od koček |
Pak dostaneme docela očekávaný výsledek:
Plemeno |
Bobtail |
Curl |
Mau |
Bobtail |
Burmilla |
Jak vidíte, plemeno bobtail je duplikováno dvakrát. Argument Distinct odstraní duplikaci, stačí přidat dotaz:
Vyberte odlišné plemeno Od koček |
Upřesněte požadavek
Ve skutečnosti téměř žádný dotaz nezobrazuje data jako úplnou sadu řádků tabulky. Zvažte, která klauzule Select (SQL) vám umožní určit kritéria pro výběr pouze řádků, které potřebujete.
Kde je taková doložka.Tato klauzule používá predikát, podmíněný výraz, jehož výstupem je true nebo false. Příkaz Select načte pouze data z tabulky, u které se podmíněný výraz vyhodnotí jako True nebo true.
Jednoduchý výběr pomůže porozumět této konstrukci. Řekněme, že chceme vědět všechno o černých kočkách.
Vybrat * Od koček Kde barva = 'Černá' |
Výsledkem tohoto dotazu budou následující řádky tabulky:
3 | Mau | Panther | 30.03.2017 | Černá |
5 | Burmilla | Athena | 08.01.2017 | Černá |
Podmínky můžete také kombinovat pomocí logických operátorů And, Or, Not.
Seskupit podle nabídky
Klauzule Group by, použitá v Select (SQL), umožňuje seskupit dotazy podle hodnoty konkrétního sloupce (nebo sloupců) a poté na ně použít agregační funkci.
Mezi agregační funkce patří:
- Počet - vypočítá počet řádků vybraných dotazem.
- Součet je aritmetický součet všech vybraných hodnot sloupců.
- Min - Zobrazí minimum vybraných hodnot sloupců.
- Max - respektive maximum z vybraných hodnot sloupců.
- Průměr je průměr.
Schéma práce tohoto návrhu je nejjednoduššípochopit na konkrétním příkladu. Řekněme, že chceme vědět, kolik koťat každého plemene máme. Chcete-li to provést, musíte vytvořit následující jednoduchý dotaz:
Vyberte plemeno, počet (*) Od koček Seskupit podle plemene |
Výsledkem provedení bude následující tabulka:
Plemeno | Počet |
Bobtail | 2 |
Curl | 1 |
Mau | 1 |
Burmilla | 1 |
Jak vidíte, máme dvě bobtail koťata,zbytek je jen jeden po druhém. V praxi může takový požadavek na základě naší tabulky chovatel pochopit, která plemena koček jsou mezi kupujícími žádaná a která nikoli.
Je pravděpodobné, že vzhledem k obrovskému množstvízáznamů v reálné tabulce, budete chtít dotaz dále upřesnit a zobrazit pouze ta plemena koťat, kterých už není, například deset. Klauzule having se používá k upřesnění nebo filtrování skupin. Umožňuje vám zrušit konkrétní skupiny podobné klauzuli Where, která zruší jednotlivé řádky. Podmínka je nastavena agregační funkcí. Přidejte požadavek:
Vyberte plemeno, počet (*) Od koček Seskupit podle plemene Mít počet (*) <= 10 |
Protože jsme nastavili podmínku „počet koťatkaždé plemeno není větší než 10 palců, pak bude výsledek stejný jako v příkladu bez specifikace. Ale zde je důležité pochopit, jak klauzule having funguje. Pokud ale změníme logickou podmínku na Mít počet (*) = 1, výsledek se sníží na tři řádky a zobrazí plemena koťat, z nichž zbývá už jen jedna.
Třídit
Pojďme se podívat na Order by, klauzuli Select (SQL), která vám umožní řadit zobrazené řádky ve vzestupném nebo sestupném pořadí hodnot v jednom nebo více sloupcích.
Je důležité si uvědomit, že Order by je závěrečnou klauzulí celé klauzule Select. Je umístěn za Vybrat, Od, Kam, Seskupit podle, Mít.
Při třídění existují tři důležité body:
1) Můžete zadat libovolný počet sloupců, z nichž každý lze jednotlivě třídit vzestupně (ASC) nebo sestupně (DESC).
2) Všechny vybrané sloupce v klauzuli Řadit podle musí být mezi volitelnými sloupci v části Vybrat.
3) Není nutné uvádět konkrétní názvy sloupců pro třídění, můžete jednoduše zadat jejich čísla, pod kterými se objeví v příkazu Select.
Doufáme, že jste pomocí našeho článku získali základní znalosti o používání SQL dotazů a nyní můžete snadno vybrat potřebné informace ze svého DBMS.