Jak procvičovat SQL a Python společně s realistickými problémy

Poslední aktualizace: 05/12/2026
  • Použijte SQLite a Python lokálně k vytvoření realistického prostředí pro procvičování SQL bez nutnosti plného datového skladu nebo clusteru Spark.
  • Nejprve si osvojte základní dovednosti SQL: filtrování pomocí WHERE, spojování více tabulek a agregace dat pomocí GROUP BY a HAVING.
  • Normalizujte schémata do více tabulek s primárními a cizími klíči a poté použijte operace JOIN k rekonstrukci vztahů ve vašich analýzách.
  • Kombinujte místní praxi s interaktivními platformami SQL, abyste si nacvičili otázky ve stylu pohovoru a znovu získali sebevědomí pomocí moderních datových nástrojů.

Cvičné úlohy z SQL a Pythonu

Pokud se po několika letech odmlky snažíte vrátit k SQL a Pythonu, je zcela normální cítit se ztraceni. – zvláště pokud jste na své poslední pozici používali proprietární nástroje a pohodlné notebooky Databricks, které už nemáte. Moderní pracovní nabídky, které vyžadují Python, SQL a dokonce i PySpark, mohou vypadat zastrašujícím způsobem, když každý návod začíná něčím jako „nahrajte si datovou sadu deklarací identity do datového skladu“ a vy si říkáte: „Přesně tohle nemám.“

Dobrou zprávou je, že většinu tohoto učebního procesu si můžete znovu vytvořit na svém vlastním notebooku. pomocí bezplatných nástrojů, malých ukázkových datových sad a strukturované sady praktických příkladů. V této příručce si srozumitelnou angličtinou projdeme, jak vytvořit realistické lokální prostředí, jak funguje SQL (od základních dotazů až po JOIN a agregaci) a jak tyto SQL dotazy zabalit do Pythonu, abyste si mohli procvičit přesně ten typ úkolů, se kterými se setkáte v moderních datových úlohách.

Vytvoření jednoduchého lokálního cvičebního prostředí pomocí SQLite a Pythonu

K procvičování SQL a Pythonu nepotřebujete plnohodnotný datový sklad ani cluster Spark.Pro učení a přípravu na pohovory je více než dostačující lehká vestavěná databáze, jako je SQLite. SQLite ukládá všechna svá data do jednoho souboru na disku, což z něj činí ideální nástroj pro projekty hraček, prototypy a vzdělávací cvičení.

Koncepčně vypadá databáze SQLite velmi podobně jako tabulkový procesor s více listy.každý list je tabulka, každý řádek je záznama každý sloupec je poleV žargonu relačních databází se tabulky někdy nazývají „relace“, řádky „n-tice“ a sloupce „atributy“, ale pro praktickou práci se můžete bez problémů držet běžných termínů tabulka, řádek a sloupec.

Python je dodáván s vestavěným ovladačem SQLite s názvem sqlite3., což znamená, že nemusíte instalovat samostatný databázový server. Váš skript v Pythonu otevře připojení k .sqlite soubor (jeho vytvoření, pokud neexistuje), získat kurzor objekt (velmi podobný popisovači souboru) a poté odesílat SQL příkazy přes tento kurzor pomocí execute(). Podívejte se na naše SQLite SELECT a WHERE průvodce praktickými příklady čtení a filtrování dat.

problémy s SQL a Pythonem
Související článek:
Časté problémy s SQL a Pythonem a jak je řešit

I když se tento článek zaměřuje na ovládání SQLite z Pythonu, existuje také šikovný nástroj s grafickým uživatelským rozhraním s názvem „Prohlížeč databází pro SQLite“. (někdy distribuováno jako DB Browser pro SQLite). S ním můžete vizuálně kontrolovat tabulky, ručně vkládat nebo upravovat několik řádků a spouštět jednoduché SQL příkazy. Je to jako textový editor pro databázové soubory: rychlé ruční úpravy jsou snazší v grafickém rozhraní, ale cokoli opakujícího se nebo složitého je lepší napsat v Pythonu.

Relační databáze jsou rigidnější než seznamy nebo dicty v Pythonu: trvají na definovaném schématu.Při vytváření tabulky musíte deklarovat názvy sloupců a očekávané datové typy (text, celé číslo, datum/čas atd.). SQLite poté uloží a indexuje data tak, aby vyhledávání bylo efektivní, a to i v případě, že vaše datová sada překročí velikost, která se pohodlně vejde do paměti. Praktické studijní plány a praktické příklady naleznete na analýza dat pomocí SQL.

Vytváření tabulek a vkládání dat pomocí SQL a Pythonu

Abyste mohli začít s procvičováním, potřebujete nejprve tabulku – představte si ji jako návrh tvaru vašich dat.Předpokládejme, že chcete malou tabulku hudební knihovny. Použití Pythonu sqlite3 modul se můžete připojit k databázovému souboru, odstranit jakoukoli starou verzi tabulky, pokud existuje, a poté vytvořit novou tabulku s jasně typovanými sloupci.

Zde je ukázka, jak tento tok v Pythonu vypadá koncepčně.: voláš sqlite3.connect('music.sqlite') pro otevření nebo vytvoření databázového souboru a poté zavolejte conn.cursor() získat kurzor. Prostřednictvím tohoto kurzoru můžete spouštět SQL příkazy jako DROP TABLE IF EXISTS Songs vymazat jakékoli předchozí schéma, následované CREATE TABLE Songs (title TEXT, plays INTEGER) definovat novou tabulku se dvěma sloupci.

Jakmile tabulka existuje, přepnete z DDL (Data Definition Language) na DML (Data Manipulation Language) pomocí INSERT prohlášeníV Pythonu byste měli vždy používat parametrizované dotazy: write INSERT INTO Songs (title, plays) VALUES (?, ?) a předat n-tici jako ('Thunderstruck', 20) jako druhý argument pro execute()Otazníky jsou zástupné symboly, které Python bezpečně nahradí, což vám pomůže vyhnout se problémům s SQL injection a citováním chyb.

Po provedení vložení nebo aktualizace je nutné zavolat conn.commit() vyprázdnit změny na diskDokud neprovedete commit, operace se ukládají pouze v transakční vyrovnávací paměti. To se liší od jednoduchého zápisu do souborů a je to jeden z klíčových návyků, které je třeba si osvojit v rané fázi: dotazovat se, upravit a poté commitovat.

Pro zpětné čtení dat použijete SELECT příkaz a iterovat přes kurzor, Například, SELECT title, plays FROM Songs bude streamovat každý řádek jako n-tici Pythonu, například ('Thunderstruck', 20)Kurzor nenačítá všechny výsledky najednou; místo toho načítá řádky pomalu, což je užitečné, když se nakonec potýkáte s většími datovými sadami.

Základní prvky SQL dotazu a filtrování pomocí WHERE

Každý SQL dotaz je postaven na malé sadě klauzulí, které se objevují ve standardním pořadí.: SELECT, FROM, WHERE, GROUP BY, HAVING, a ORDER BYMinimálně určíte, jaké sloupce chcete (SELECT) a z které tabulky (FROM). Volitelné klauzule pak upřesňují, agregují, filtrují agregované výsledky a třídí výstup.

Jedno WHERE Klauzule filtruje řádky před jakýmkoli seskupením nebo agregacíPro číselné sloupce můžete použít porovnávací operátory jako například =, != (nebo <>), >, <, >=, <=Textové sloupce podporují tyto funkce a porovnávání vzorů pomocí LIKE a kontroly členství prostřednictvím INHodnoty data/času podporují stejná relační porovnání a často se setkáváme s rozsahy vyjádřenými pomocí BETWEEN.

Zpracování hodnot null v SQL je natolik zvláštní, že si zaslouží zvláštní pozornost.Pravidelná srovnání, jako např. = a != nechovej se tak, jak bys očekával/a NULL, takže SQL poskytuje IS NULL a IS NOT NULL pro kontrolu chybějících hodnot. Logické sloupce obvykle fungují s = a !=, ale stále potřebujete IS NULL kdy samotná booleovská hodnota může chybět.

Pokud kombinujete více podmínek, pamatujte na to AND a OR dodržovat pravidla priorityPokud píšete age < 5 OR age > 10 AND breed = 'Ragdoll', SQL vyhodnotí AND Nejprve. Pro vyjádření „kočky plemene Ragdoll mladší 5 let nebo starší 10 let“ byste měli použít závorky: (age < 5 OR age > 10) AND breed = 'Ragdoll'Zvládnutí těchto logických kombinací je pro práci v reálném světě klíčové.

Porovnávání vzorů s LIKE umožňuje vyhledávat řetězce, které začínají, končí nebo obsahují určité fragmentyZnaménko procenta % je zástupný znak pro libovolnou posloupnost znaků, takže breed LIKE 'R%' vyhledá plemena začínající na „R“, fav_toy LIKE 'ball%' najde hračky, jejichž názvy začínají na „míč“, a coloration LIKE '%m' vyhledává barevné vzory, které končí na „m“. Spárováno s AND/OR, stává se z toho výkonná sada nástrojů pro filtrování textu.

Procvičování dotazů na jednu tabulku s hračkou datovou sadou

Užitečným způsobem, jak si vybudovat svalovou paměť, je zafixovat si v hlavě malé schéma a řešit podle něj mnoho otázek.. Představte si a cat tabulka se sloupci jako id, name, breed, coloration, age, sex, a fav_toyTo vám dává dostatek rozmanitosti – text, čísla, jednoduché kategorie – k procvičení většiny základních vzorů dotazů.

U kontrol typu boolean se často filtruje podle jednoho sloupce a poté se vrství další podmínky.Chcete-li vypsat „nudné“ kocoury, kteří nemají zaznamenanou žádnou oblíbenou hračku, vyberte name kde sex = 'M' a fav_toy IS NULLToto ilustruje, jak se kontroly hodnot null spojují s přímými porovnáváními k izolaci specifické podmnožiny řádků.

Chcete-li se zaměřit na konkrétní plemena nebo je vyloučit, kombinujete rovnost s logickou negací.Výběr pouze koček plemene Ragdoll určitého věku využívá breed = 'Ragdoll'; s výjimkou Peršanů a Siamských by to mohlo vypadat breed NOT LIKE 'Persian' AND breed NOT LIKE 'Siamese'Zatímco některé databáze podporují NOT IN ('Persian', 'Siamese'), procvičování explicitního vzoru vám pomůže upevnit si porozumění NOT a LIKE.

Cvičení typu „kočky, které milují lákavé hračky a nejsou perské ani siamské“ vás nutí kombinovat textové filtry, rovnost a logické operátory.Vybrali byste si id, name, breed, coloration a omezte řádky pomocí sex = 'F', fav_toy = 'teaser'a složenou podmínku, která vylučuje nežádoucí plemena. Věnování pozornosti závorkám zajistí, že všechny dílčí podmínky budou použity v zamýšlené kombinaci.

Jakmile si s těmito jednoduchými příklady v nezpracovaném SQL zvyknete, znovu je implementujte pomocí Pythonu s parametrizovanými dotazy.Napište krátké scénáře, které se ptají na plemeno, minimální věk nebo typ hračky. input(), zapojte je do WHERE klauzule a vypsat výsledky. Toto je přesně ten most mezi psaním dotazů a skutečným kódem aplikace, který mnoho juniorských datových rolí očekává.

Pochopení a procvičování SQL JOIN

Jakmile se posunete od problémů s hračkami, budete se neustále připojovat k více stolům.Pomocí spojení JOIN propojujete související datové sady: zákazníky s objednávkami, umělce s uměleckými díly, hry se společnostmi atd. V SQL popíšete, které sloupce by se měly mezi tabulkami shodovat, a databázový engine sloučí řádky do kombinované sady výsledků.

Existují čtyři hlavní typy spojení, se kterými se setkáte v pohovorech a reálných projektech.: INNER JOIN (často psáno jen JOIN), LEFT JOIN, RIGHT JOIN, a FULL OUTER JOINVnitřní spojení vrací pouze řádky, kde obě tabulky mají shodné klíče; levé spojení zachovává všechny řádky z levé tabulky a vyplňuje NULLs, když pravá tabulka nenajde shodu; pravé spojení provede symetrickou věc; a úplné vnější spojení vrátí každý řádek z obou stran, porovná se, kde je to možné, a použije NULL kde ne.

Myslet na LEFT JOIN a RIGHT JOIN jako operace „více důvěřuji této straně“U levého spojení je levá tabulka primárním zdrojem pravdivých údajů: každý řádek z ní se ve výstupu objeví alespoň jednou, i když pravá tabulka nic nepřispívá. U plného spojení není žádná strana privilegovaná – jednoduše se spojí všechny klíče z obou tabulek a zarovnají se tam, kde se překrývají.

Aby dotazy s více tabulkami zůstaly čitelné, vždy používejte aliasingy pro tabulky.Místo psaní SELECT artist.name opakovaně, pište FROM artist AS a a poté odkazovat na sloupce jako a.name. Podobně, piece_of_art může se stát poa, a museum může být mKdyž se váš dotaz rozroste na tři nebo více spojení, dobré aliasy představují rozdíl mezi přehledností a chaosem.

Klasické tréninkové uspořádání používá trojici stolů: artist, museum, a piece_of_art, artist stůl by mohl pojmout id, name, birth_year, death_year a primární obor, jako je akvarel nebo sochařství. museum obchody se stoly id, name a country, piece_of_art stůl drží id, name, artist_id a museum_idTyto poslední dva sloupce jsou cizí klíče, které propojují každé umělecké dílo s jeho tvůrcem a umístěním.

S tímto schématem si můžete procvičovat vnitřní spojení, levé spojení a podmíněné filtry.Například chcete-li vyjmenovat umělce narozené po roce 1800, kteří žili více než 50 let, spolu s názvy jejich děl, připojte se artist a piece_of_art on artist.id = piece_of_art.artist_id a poté filtrujte pomocí death_year - birth_year > 50 a birth_year > 1800Aliasovat vybrané sloupce jako artist_name a piece_name pro přehlednost.

Prohlédnout si všechna umělecká díla spolu s názvy muzeí a zeměmi – včetně „ztracených“ děl, která nemají muzeum – použili byste LEFT JOIN od piece_of_art na museum on museum_idTímto způsobem se ve výsledku stále objeví umělecká díla bez přidruženého muzea, s… NULL ve sloupcích muzea. Filtrování řádků, kde artist_id IS NULL umožňuje vám odhalit díla neznámých umělců a zároveň se přihlásit k odběru muzeí, která je vlastní.

Pokročilejší cvičení zahrnují připojení ke třem stolům současněChcete-li uvést každé umělecké dílo s jeho autorem a názvem muzea, spojili byste se museum na piece_of_art on museum.id = piece_of_art.museum_id, pak se připojte artist on artist.id = piece_of_art.artist_idPoužití prostého JOIN (vnitřní spojení) záměrně vynechává umělecká díla, která buď chybí umělec, nebo muzeum, což vám dává představu o tom, jak typ spojení ovlivňuje počet řádků.

Agregace, GROUP BY a HAVING v praxi

Jakmile umíte data načíst a spojit, další důležitou dovedností je jejich shrnutí.Agregační funkce jako SUM(), AVG(), COUNT(), MAX(), a MIN() vypočítat metriky nad sadami řádků. GROUP BY rozděluje datovou sadu do skupin a v každé skupině aplikuje tyto funkce – například jednu skupinu na rok, na společnost nebo na umělce. Pokud dáváte přednost strukturovaným kurzům pro procvičování těchto konceptů, podívejte se na komplexní kurz SQL.

Představte si jednoduchý sales_table se sloupy year, month, a salesRovina SELECT SUM(sales) AS total_sales FROM sales_table získáte celkový součet ve všech řádcích. Sečtením GROUP BY year mění otázku: nyní se ptáte na celkový roční prodej, nikoli na jedno celkové číslo.

Klíčovým pravidlem je, že každý neagregovaný sloupec ve vašem SELECT musí se objevit v GROUP BY. Pokud vyberete možnost year a SUM(sales), seskupujete podle year. Pokud vyberete možnost year a month spolu s agregáty, pak seskupíte podle obou year a monthKoncepčně definují skupiny odlišné kombinace seskupených sloupců.

WHERE a HAVING jsou oba filtry, ale působí v různých fázích. WHERE filtruje nezpracované řádky před jakýmkoli seskupením nebo agregací. HAVING filtruje seskupené výsledky pomocí agregačních výrazů. Můžete například WHERE production_year BETWEEN 2000 AND 2009 a pak HAVING SUM(revenue) > 4000000 ponechat si pouze společnosti, jejichž „dobré hry“ vygenerovaly tržby vyšší než čtyři miliony.

Realističtější schéma praxe je games tabulka se sloupci jako id, title, company, type, production_year, system, production_cost, revenue, a ratingS touto jedinou tabulkou můžete provádět průměrování, počty, součty, seskupování a řazení – základ analytického SQL.

Například pro výpočet průměrných výrobních nákladů her vydaných v letech 2010 až 2015 s hodnocením vyšším než 7, vybrali byste AVG(production_cost) a omezit řádky pomocí WHERE production_year BETWEEN 2010 AND 2015 AND rating > 7To je klasická otázka ve stylu pohovoru a můžete ji snadno vložit do Pythonu a vypsat výsledné číslo.

Můžete také přímo z téhož zdroje vytvářet statistiky na úrovni celého roku. games tabulkaSeskupit podle production_year, pak vypočítejte COUNT(*) AS count, AVG(production_cost) AS avg_cost, a AVG(revenue) AS avg_revenueTento typ dotazu vám poskytne kompaktní zobrazení časové řady, které je extrémně běžné v dashboardech a nástrojích pro tvorbu reportů v oblasti business intelligence.

Chcete-li seřadit společnosti podle hrubého zisku za všechny roky, můžete je agregovat na companyPraktický vzor je SELECT company, SUM(revenue - production_cost) AS gross_profit_sum FROM games GROUP BY 1 ORDER BY 2 DESC. Tady GROUP BY 1 a ORDER BY 2 použijte pozice sloupců v SELECT seznam, který může věci udržet stručné, ale musí být používán opatrně, aby se dotazy nenarušily pozdější změnou pořadí sloupců.

Složitější výzvy propojují filtry, seskupování a filtry po agregaci.Předpokládejme, že definujete „dobré hry“ jako ty vyrobené mezi lety 2000 a 2009, s hodnocením nad 6 a tržbami vyššími než výrobní náklady. Pro každou společnost chcete počet takových her plus jejich celkové tržby, ale pouze pro společnosti, jejichž tržby z dobrých her přesahují 4 000 000. Filtrovali byste řádky s… WHERE on production_year, ratinga ziskovost, seskupené podle company, počítejte COUNT(company) a SUM(revenue), poté aplikujte HAVING SUM(revenue) > 4000000Tento jeden dotaz zachycuje většinu reálných mentálních kroků, se kterými se setkáte při analytických úkolech.

Modelování dat s více tabulkami a klíči

Návrhy s jednou tabulkou vás dovedou docela daleko, ale relační databáze vyniknou, když normalizujete data napříč více tabulkami.Normalizace je proces eliminace redundantního úložiště a reprezentace vztahů pomocí klíčů. To udržuje vaši databázi menší, rychlejší a méně náchylnou k chybám.

Jednoduchý, ale poučný příklad pochází z procházení sociálních grafů podobných Twitteru.Řekněme, že chcete sledovat uživatelské účty a vztahy „sledujících“ mezi nimi. Jeden naivní přístup by byl jedna tabulka, kde každý řádek duplikuje jména sledujících i sledujících jako text. To rychle vede k velkému opakování a nekonzistentnímu pravopisu.

Místo toho rozdělíte věci na People stůl a Follows tabulka. People může mít celé číslo id jako primární klíč, jedinečný name (přezdívka nebo uživatelské jméno) a retrieved příznak signalizující, zda jste již prohledali seznam přátel daného účtu. Follows obsahuje dvojice celých čísel from_id a to_id, což představuje směrovaná připojení od jednoho uživatele k druhému.

Tento model je strukturován třemi klíčovými koncepty: logickými klíči, primárními klíči a cizími klíči.Logický klíč je to, co vnější svět používá k odkazování na záznam – zde je to úchyt Twitteru v namePrimární klíč je obvykle celé číslo generované databází (id), který jednoznačně identifikuje každý řádek a jehož indexování a porovnávání je snadné. Cizí klíč je celé číslo, které odkazuje na primární klíč v jiné tabulce – from_id a to_id v Follows tabulka obsahuje odkazy na cizí klíče People.id.

Pro zajištění kvality dat deklarujete omezení v definicích tabulek., Například, name TEXT UNIQUE in People zajišťuje, že nemůžete omylem vložit dva řádky se stejným úchytem. A UNIQUE(from_id, to_id) omezení v Follows brání uložení stejné follow hran více než jednou. Tato omezení slouží i jako bezpečnostní sítě, když začnete psát logiku upsert v Pythonu.

V Pythonu sqlite3 modul, běžným vzorem je použití INSERT OR IGNORE respektovat tato omezení s gráciíPokud se pokusíte vložit name který již existuje, SQLite operaci tiše přeskočí, místo aby vypsal chybu. Pak můžete zkontrolovat cursor.rowcount zjistit, zda byl řádek skutečně přidán, a spoléhat se na cursor.lastrowid objevit přiřazené id pro nově přidané uživatele.

Když váš kód obdrží novou přezdívku, měl by se nejprve pokusit vyhledat odpovídající id. Pokud SELECT id FROM People WHERE name = ? vrátí řádek, toto celé číslo znovu použijete. Pokud ne, vložíte název pomocí retrieved = 0, potvrďte a poté si přečtěte lastrowidTento vzorec „najít nebo vložit“ je jádrem mnoha skriptů pro příjem dat.

Jakmile jsou známa ID sledujícího i sledované osoby, zaznamenání vztahu v Follows je jen další INSERT OR IGNORE. Vaše UNIQUE(from_id, to_id) Omezení řeší duplikáty a vy se můžete soustředit na logiku vyšší úrovně, která určuje, které profily procházet dále, spíše než na mikrosprávu deduplikace řádků.

Použití JOIN k rekonstrukci vztahů z normalizovaných tabulek

Normalizovaná schémata vyměňují redundanci za indirekční: ukládáte celá čísla místo opakovaných řetězců, ale nyní musíte spojovat tabulky, abyste rekonstruovali celý obraz.Přesně tohle SQL JOIN byl navržen pro a jakmile si na to zvyknete, dotazy s velkým množstvím JOINů se zdají být zcela přirozené.

V příkladu sociálního grafu, pokud chcete vidět, kdo používá id = 2 sleduje, připojili byste se Follows na People na straně cíle. Koncepčně spouštíte SELECT * FROM Follows JOIN People ON Follows.to_id = People.id WHERE Follows.from_id = 2Tím se vytvoří kombinované řádky, které obsahují jak číselnou hranu, tak i lidsky čitelné jméno každého sledujícího.

Každý řádek ve výsledku je „metařádek“, který slučuje sloupce z obou tabulek.První dva sloupce by mohly být (from_id, to_id) od Follows, zatímco následující sloupce patří People - jako (id, name, retrieved). Protože JOIN podmínka vynucuje Follows.to_id = People.id, můžete tento vztah explicitně vidět: druhý sloupec a třetí sloupec každého řádku se shodují.

Stejný vzorec se přirozeně rozšiřuje na více stolů.Už jsi to viděl/a s artist, piece_of_art, a museuma prohledávač Twitteru to ilustruje pomocí People a FollowsV komplexnějších analytických postupech můžete propojit tabulky faktů (události, objednávky) s tabulkami více dimenzí (uživatelé, produkty, kampaně), abyste zodpověděli mnohostranné otázky.

Při ladění kódu nebo učení se, jak schéma do sebe zapadá, je mimořádně efektivní pracovní postup „spusťte Python a poté zkontrolujte pomocí prohlížeče databází pro SQLite“.Spusťte skript pro naplnění databáze, zavřete všechny instance grafického uživatelského rozhraní, které uzamykají soubor, a poté otevřete .sqlite soubor v prohlížeči. Odtud si můžete prohlédnout obsah každé tabulky a spustit ad-hoc operace. SELECT dotazy k ověření vašich domněnek.

Jedna výhrada: SQLite vynucuje zámky souborů, takže pokud má prohlížeč databází otevřenou databázi v režimu úprav, váš skript v Pythonu se nemusí připojit nebo potvrdit změny.Řešením je zavřít databázi v grafickém rozhraní (nebo úplně ukončit prohlížeč) před opětovným spuštěním kódu v Pythonu. Zvyk zavírat nástroje, které zamykají váš soubor s databází, vás ušetří záhadných chyb „databáze je zamčena“.

Spojení těchto technik – návrh schémat, omezení, parametrizované dotazy v Pythonu, JOINy, GROUP BY a HAVING – vám poskytne výkonnou lokální laboratoř. pro procvičování přesně toho druhu práce s SQL a Pythonem, který budete dělat v práci. S pouhým SQLite a několika dobře strukturovanými vzorovými tabulkami si můžete nacvičit otázky ve stylu pohovoru, vytvořit prototyp analytické logiky a znovu získat sebevědomí s moderními datovými nástroji.

Kam se hodí platformy jako DataLemur a interaktivní kurzy

Kromě vaší místní praxe vám interaktivní platformy mohou poskytnout lépe řízený zážitek s okamžitou zpětnou vazbou.Nástroje zrozené z reálných zkušeností z oboru – například platformy vytvořené bývalými datovými inženýry Facebooku a Googlu, kteří trávili dny psaním SQL a Pythonu a prováděním A/B testů – často zaměřují svůj obsah na skutečné otázky v pohovorech a analytické scénáře.

Knihy, které se zabývají statistikou, strojovým učením a obchodní intuicí pro datové rozhovory, jsou skvělé pro teorii., ale ne vždy poskytují praktické možnosti pro práci s SQL, po kterých mnoho studentů touží. Právě tuto mezeru se některé moderní nástroje snaží zaplnit: přebalují stovky výzev ve stylu rozhovorů do prostředí SQL a analytiky v prohlížeči, takže můžete spouštět, upravovat a znovu spouštět dotazy, aniž byste se museli starat o lokální nastavení. Můžete si také vyzkoušet aplikované příklady, jako je vyhodnocení rizika odchodu zákazníků kombinovat SQL se základními pracovními postupy strojového učení.

Najdete zde také interaktivní kurzy SQL, které odrážejí témata, která jsme zde probrali.dotazy na jednu tabulku s SELECT a WHERE, spojení dvou nebo tří tabulek, agregace a seskupování, poddotazy a další. Mnoho z těchto kurzů se opírá o realistické datové sady – představte si hry, muzea nebo transakční prodeje – takže otázky působí spíše jako skutečné obchodní problémy než jako vykonstruované hádanky.

Pokud se cítíte zahlceni dokumentací k nástrojům jako PySpark, DuckDB nebo dbt, je naprosto rozumné je odložit, dokud nebudete mít pevné základy SQL.Zaměření se nejprve na SQLite a Python vám umožní internalizovat základní vzory dotazů, aniž byste museli bojovat s konfigurací clusteru nebo cloudovými oprávněními. Jakmile se základy stanou druhou přirozeností, učení se PySparku se stává spíše o distribuovaném provádění než o nových konceptech dotazů.

V konečném důsledku jde o kombinaci jednoduchého lokálního nastavení, strukturovaných cvičných úloh a občasného využití interaktivních platforem. vám dává to nejlepší ze všech světů: plnou kontrolu nad vaším prostředím, silné koncepční základy a seznámení se se stylem otázek, které špičkoví zaměstnavatelé milují. S pravidelnou praxí se kdysi skličující kombinace SQL, Pythonu a nástrojů datového inženýrství stane známou, ba dokonce příjemnou sadou nástrojů, kterou můžete s jistotou používat v nových rolích.

Když to všechno dáme dohromady, vaše cesta vpřed je jasná: roztočte databázi SQLite s Pythonem, navrhněte několik realistických tabulek, procvičte si základní a středně pokročilé SQL vzory (filtry, spojení, agregace, seskupování, HAVING), zabalte tyto dotazy do Pythonových skriptů a volitelně doplňte své znalosti interaktivními SQL platformami vytvořenými odborníky, kteří prošli přesně tím, čím jste nyní vy.Tímto způsobem si obnovíte své technické instinkty, snížíte úzkost z moderních datových zásobníků a budete připraveni zvládat nároky SQL a Pythonu, které dnes kladou datové role.

Související příspěvky: