Ve webovém prohlížeči otevřte stránku sexta.dominec.eu/adminer.php.
Jako typ databáze vyberte PostgreSQL, jako hostitele napište localhost
(je potřeba to ručně vepsat, přestože už je tahle hodnota šedivě naznačená). Jméno uživatele, heslo i jméno databáze vyplňte jako sexta
.
Klikněte na tlačítko Přihlásit se. Jestli chcete, můžete předtím zakliknout Trvalé přihlášení.
Ukáže se vám přehled všech tabulek, ke kterým máte přístup. Vlevo v seznamu můžete kliknout na vypsat (1) vedle názvu některé z nich, abyste se podívali na její data. Složitější dotazy můžete psát do okna SQL příkaz (2) v horní části levého panelu.
Výborně, jste připojení k databázi. Teď si vyzkoušejte, že vás poslouchá na slovo.
Klikněte na vypsat vedle tabulky routes. Ukáže se okno s obsahem tabulky, a v jeho horní části se vypíše SQL dotaz, který pro vás data získal.
Klikněte na odkaz Upravit vedle zobrazeného SQL dotazu (1). Ukáže se okno, kde můžete odkaz upravit nebo napsat úplně nanovo.
Smažte na konci dotazu LIMIT 50
, aby se vypisovaly všechny řádky.
Tabulka routes
má asi osm set řádků, takže si můžeme dovolit je vidět všechny naráz.
Klikněte na tlačítko Provést, abyste se ujistili, že dotaz pořád funguje.
Po provedení příkazu se nejdřív vypíšou výsledky a až dole, na konci stránky, najdete dotazovací okno. Upravte dotaz, aby jako výsledek získával jen celkový počet řádků. (Tahák: COUNT)
Chceme přece jenom podrobnější údaje: řádky máme rozdělit podle toho, co mají vyplněné jako agency_id
.
Přidejte na konec dotazu požadavek na seskupení.
(Tahák: GROUP BY)
Čísla jsou k ničemu, když nevíme, co znamenají.
Upravte v dotazu SELECT
tak, aby kromě počtu získal i hodnotu ve sloupci agency_id
.
(Tahák: SELECT)
Dosavadní postup zřejmě vede dobrým směrem, ale namísto čísel agency_id
potřebujeme jméno každého dopravce.
To najdeme v tabulce agency
.
Vedle tabulky agency
klikněte na vypsat.
Nad výsledky dotazu rozbalte panýlek Seřadit a z rozbalovací nabídky vyberte agency_id.
Rozbalte panýlek Vypsat a v pravé rozbalovací nabídce vyberte agency_id. Potom v nabídce pod ní vyberte agency_name.
Než odevzdáme svoje výsledky, musíme si pro ně připravit místo.
Vytvoříme tabulku se dvěma sloupci agency_name
a route_count
takovými, že do nich výsledky půjde odevzdat.
V levém panelu klikněte na Vytvořit tabulku.
Jako Název tabulky vyplňte svoje příjmení.
Jako Název sloupce vyplňte agency_name
a rozbalovací nabídku Typ přepněte na text.
Další sloupec pojmenujte route_count
a jeho Typ nechte jako integer.
Klikněte na Uložit.
Máme výsledky z jedné a z druhé tabulky, které na sebe pasují přes agency_id
.
Můžeme je ručně vložit vedle sebe v Excelu, ujistit se, že pořádí agency_id
v levé a v pravé části opravdu pasuje, a pak nějak vkopírovat zpátky do databáze a odevzdat.
Tahle varianta je jednoduchá, ale docela pracná.
Výsledky z jednoho a druhého dotazu zkopírujte (ctrl+C, ctrl+V) do excelovské tabulky a správně seřaďte. Jestli je nemůžete zkopírovat, protože jste mezitím zavřeli okno s dotazem, můžete si otevřít panýlek Historie, kde svůj dotaz možná najdete.
V Admineru otevřte tabulku pojmenovanou jako vaše příjmení a klikněte na Nová položka.
Zkopírujte název dopravce z prvního řádku a počet obsluhovaných linek do příslušných políček a klikněte na Uložit.
Vedle zprávy Položka byla vytvořena klikněte na odkaz SQL příkaz a potom na Upravit.
Do textového okna nakopírujte hodnoty ze všech zbývajících řádků, každou dvojici v závorce, od sebe oddělené čárkami. Je to blbá práce, ale snad přece jenom rychlejší, než abyste každý řádek vkládali přes formulář jednotlivě. Dejte pozor, aby pořadí hodnot v každém řádku odpovídalo pořadí sloupců v tabulce.
Blbou práci má dělat počítač, ne člověk. Spojíme SQL dotazy dohromady, abychom ke každému dopravci rovnou získali počet linek.
Připomeňte si dotaz, který získá počet linek každého dopravce.
Vedle tabulky agency
klikněte na vypsat.
Rozbalte panýlek Vyhledat a z rozbalovací nabídky vyberte agency_id.
Za značku =
(tu nechte, jak je) napište nějaké konkrétní číslo, které v tabulce vidíte.
Rozbalte panýlek Vypsat a v pravé části vyberte agency_name.
Kolem tohohle dotazu, který získává jméno dopravce podle jeho čísla, napište kulaté závorky, a pak si ho zkopírujte.
Vložte ho jako další hodnotu do SELECT
části svého prvního dotazu, který získával počet linek.
Místo konkrétního čísla v tom vnořeném dotazu napište odkaz na sloupec routes.agency_id
.
Můžete smazat část LIMIT 50
, protože nemá žádný vliv.
Před celý hotový dotaz napište INSERT
tak, aby se získané hodnoty vložily do vaší tabulky.
(Tahák: INSERT ... SELECT)