SQL nebo Python? Návod, jak si správně vybrat.

SQL Python Pandas

Je lepší začít s SQL nebo s Pythonem? To je otázka, kterou v LovelyData dostáváme často. V tomto článku vám poradíme nejen s kterým jazykem začít, ale i jaké programy používat, abyste oba jazyky využili na maximum.

TLDR

Pokud chcete pracovat jako analytik, tester, programátor, datový vědec (data scientist) - prostě kdokoliv, kdo potřebuje získávat informace z databází - musíte se naučit SQL. SQL je základní a univerzální jazyk bez kterého se neobejdete.

Pokud vás láká práce s daty a chcete umět data analyzovat, čistit a vizualizovat, budete se muset ještě naučit Python. S tímto jazykem si poradíte v každé situaci, protože umí pracovat s Excelem, textovými soubory, SQL databázemi, rozhraními API a tím jeho možnosti ani zdaleka nekončí.

Trocha historie

Možná vás překvapí, že SQL i Python jsou technologie, které zajišťují dlouhodobou - a lukrativní - kariéru. Důvod? Používají se už několik desítek let a jejich popularita vůbec neklesá. Spíše naopak.

SQL

Jazyk SQL má za sebou historii, která je delší než 50 let. Už přes půl století je tento dotazovací jazyk oblíbeným nástrojem pro práci s daty v tabulkách, které jsou uloženy v databázích.

Má ale i další výhodu - stal se standardním a univerzálním jazykem, kterému rozumí relační databázové systémy (RDBMS) od různých výrobců. Pokud se tedy naučíte SQL na bezplatném PostgreSQL, můžete většinu příkazů použít třeba na komerčním SQL Serveru od Microsoftu. Většina SQL příkazů totiž funguje úplně stejně na všech databázích.

Pár zajímavostí:

  • Zkratka SQL znamená Structured Query Language.
  • Vznikl v roce 1970 ve společnosti IBM.
  • Původní název SEQUEL (Structured English Query Language).
  • 2 možnosti výslovnosti [es kjú el] nebo [síkwl].
  • Standardní jazyk pro relační databáze (RDBMS).
  • Používají všechny nejrozšířenější databázové systémy jako např.:

Python

Python patří mezi nejpopulárnější jazyky současnosti a zcela zaslouženě. Má široké možnosti využití a dvě velké výhody - je jednoduchý a výkonný. Jednoduchostí je zde myšlena jeho syntaxe, protože kód v Pythonu se téměř čte jako angličtina. Proto se jedná o vhodný jazyk i pro začátečníky.

Data se dnes vyskytují v mnoha podobách a formátech a ne pouze v SQL databázích. Data můžete získat v souborech CSV, v textu, na webu, ve formátech jako je XML nebo JSON a to jsme zdaleka nevyjmenovali všechny. Právě v této spleti dat vyniká Python, který nabízí spostu možností, jak data analyzovat, čistit anebo vizualizovat.

Python se používá pro vývoj aplikací, webů, pro datovou vědu, Internet of things (IoT) nebo třeba pro systémovou administraci. Poptávka po lidech, kteří ho ovládají, každým rokem stoupá.

Pár zajímavostí:

  • Pojmenován po britské komediální skupině Monty Python.
  • Publikován v roce 1991.
  • 2 možnosti výslovnosti [paj tn] nebo [paj ton].
  • Zaměření na dobrou čitelnost kódu.
  • Má otevřený zdrojový kód.
  • Je k dispozici zdarma pro mnoho operačních systémů (Windows, macOS, Linux a spoustu dalších).

Který jazyk je jednodušší pro začátečníky?

Jako jazyk je SQL rozhodně snadnější než Python. Zejména základy SQL zvládnete opravdu rychle. Protože se jedná převážně o dotazovací jazyk (query language), obsahuje mnohem jednodušší a menší sadu příkazů než jiné jazyky.

Porovnání SQL a Pythonu

Níže najdete 3 příklady, které dělají totéž. Jeden je napsaný v SQL, druhý v Pythonu a třetí v Pythonu s využitím knihovny Pandas. I kdybyste neměli žádné znalosti ani jednoho z těchto jazyků, tak se vsadíme, že budete v principu vědět co dělají.

Pro vyzkoušení prvních dvou příkladů můžete využít online editor na replit.com. Tento IDE (Integrated Development Environment) funguje v prohlížeči, podporuje velké množství jazyků a hlavně - nemusíte nic instalovat. Třetí na Replit bohužel nepůjde, protože knihovna Pandas tam (zatím) není k dispozici.

1. SQL

Spusťte SQL online editor na replit.com/languages/sqlite. Do levého okna zkopírujte následující SQL příkazy a spusťte je.

/* Vytvoř tabulku BAND */
CREATE TABLE BAND
(
  id INT,
  name VARCHAR(50)
);

/* Vlož záznamy */
INSERT INTO BAND VALUES(1, 'John Lennon');
INSERT INTO BAND VALUES(2, 'Paul McCartney');
INSERT INTO BAND VALUES(3, 'George Harrison');
INSERT INTO BAND VALUES(4, 'Ringo Starr');

/* Vyber Ringa */
SELECT *
  FROM BAND
  WHERE name = 'Ringo Starr';
4|Ringo Starr

2. Python

Spusťte Python online editor na replit.com/languages/python3. Do levého okna zkopírujte následující Python kód a spusťte ho.

# Vytvoř seznam BAND
band = list()

# Vlož záznamy
band.append([1, 'John Lennon'])
band.append([2, 'Paul McCartney'])
band.append([3, 'George Harrison'])
band.append([4, 'Ringo Starr'])

# Vyber Ringa
for member in band:
    id, name = member
    if name == 'Ringo Starr':
        print(member)
[4, 'Ringo Starr']

3. Python a Pandas

Pandas je jedna z nejpopulárnějších knihoven Pythonu, která umožňuje pracovat s daty v mnoha různých formátech. Ať už jsou data uložena v textových souborech, Excelovských sešitech nebo SQL databázích - Pandas s nimi pracuje snadno, rychle a efektivně. Proto je tato knihovna tak oblíbená mezi analytiky a datovými vědci.

Následující kód dělá totéž jako předchozí dva příklady, jen k tomu používá Python spolu s knihovnou Pandas. Výsledný kód je tak kratší.

import pandas as pd

# Vytvoř DataFrame BAND a vlož záznamy
data = {'name': ['John Lennon', 'Paul McCartney',
                 'George Harrison', 'Ringo Starr']}
band = pd.DataFrame(data)

# Vyber Ringa
ringo = band['name'] == 'Ringo Starr'
print(band[ringo])
          name
3  Ringo Starr

Jazyky pro lidi

Předchozí příklady názorně ukazují, jak se oba jazyky podobají angličtině a jsou díky tomu dobře čitelné. Jejich základy tak snadno zvládnou i uživatelé, kteří s nimi nemají předchozí zkušenosti.

Popularita obou jazyků také zaručuje dostupnost velkého množství výukových materiálů. Ať už se jedná o různé návody, videa nebo kurzy. Pokud se někdo chce naučit jeden nebo oba jazyky, může začít klidně hned.

V čem psát kód

I když můžete SQL a Python kód psát klidně v tom nejjednodušším editoru (např. Notepad nebo TextEdit), pro skutečnou práci budete chtít využívat propracovanější software. Naštěstí pro oba jazyky existuje spousta aplikací, které jsou skvělé a mnoho z nich je navíc úplně zdarma.

Textový editor vs IDE

Pokud se začnete zajímat o programování a editory, tak narazíte na pojem IDE (Integrated Development Environment). Jaký je mezi nimi rozdíl?

Textový editor má na rozdíl od vývojového prostředí (IDE) méně funkcí. Mnoho editorů je ale snadno rozšiřitelných pomocí různých pluginů a rozdíly mezi textovým editorem a IDE se tak začínají stírat.

Obecně lze řící, že integrované vývojové prostředí je primárně zaměřené na jeden programovací jazyk a díky tomu obsahuje (integruje) všechno, co programátor potřebuje pro práci s tímto jazykem. Z toho vyplývá, že IDE bude mít strmější učící křivku. Pro začátečníky je proto lepší začít s textovým editorem, který se naučí rychleji a který navíc využijí pro více než jeden programovací jazyk.

SQL

Pro psaní SQL je ideální použít SQL editor, který v sobě spojuje textový editor a zároveň se umí připojit k databázi. Mnoho těchto editorů dokáže pracovat hned s několika RDBMS a vy tak pohodlně ovládáte data z jednoho místa.

Název Odkaz Info
SQL Workbench/Jsql-workbench.euZdarma, více RDBMS
DB Browser for SQLitesqlitebrowser.orgZdarma, pouze SQLite
DBeaverdbeaver.ioZdarma, více RDBMS
HeidiSQLheidisql.comZdarma, více RDBMS
SQL Server Management Studio (SSMS)docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssmsZdarma, pouze MS SQL
MySQL Workbenchmysql.com/products/workbenchZdarma, pouze MySQL
Oracle SQL Developeroracle.com/database/technologies/appdev/sqldeveloper-landing.htmlZdarma, pouze Oracle
SQuirreLsquirrel-sql.sourceforge.netZdarma, více RDBMS
Admineradminer.org/csZdarma, více RDBMS, jediný PHP soubor
DbVisualizerdbvis.comFree verze, více RDBMS

Python

Pro Python máte k dispozici nepřeberné množství textových editorů i IDE. Níže najdete ty nejpoužívanejší.

Název Odkaz Info
Sublime Textsublimetext.comZkušební verze zdarma, více jazyků
VS Codecode.visualstudio.comZdarma, více jazyků
PyCharmjetbrains.com/pycharmFree Community verze, pouze Python
Jupyter Notebookjupyter.orgZdarma, více jazyků
Thonnythonny.orgZdarma, pouze Python
Spyderwww.spyder-ide.orgZdarma, pouze Python
Atomatom.ioZdarma, více jazyků
Vimwww.vim.orgZdarma, více jazyků

Závěrem

Jak SQL, tak i Python, jsou jazyky prověřené časem. Používají se na celém světě a jejich základy se dají naučit snadno.

Proto rozhodně nešlápnete vedle, když si vyberete jeden nebo druhý jazyk. Pokud vám jako LovelyData můžeme poradit, tak doporučujeme naučit se oba jazyky - alespoň jejich základy. Otevřete si tak dveře k novým příležitostem, ze kterých si budete vybírat.

Práce s daty v Excelu 1

Základy kontingenčních tabulek a grafů. Pokročilé funkce vyhledávání a sčítání. Naučte se pracovat s daty v Excelu snadno a pohodlně.

Zobrazit kurz

Základy strojového učení

Přehledový kurz o možnostech strojového učení. Od základů až po neuronové sítě. Vyvážená kombinace teorie a praktických zkušeností.

Zobrazit kurz

Kontingenční tabulky od A do Z

Naučte se vytvářet kontingenční tabulky od základů až k pokročilým technikám.

Zobrazit kurz

Hledáme další autory

Publikujte na Lovely Blogu a inspirujte ostatní! Sdílením svých znalosti si budujete osobní značku.

Kontaktujte nás

Odběr novinek

Očekáváme, že v příštích 12 měsících získáme alespoň 2000 dalších odběratelů. Přidejte se k nim a získávejte exkluzivní informace, návody a slevy. Cena? 0 Kč.

Copyright © 2018-2021, Colorbee, s.r.o.

Design by grafikli.cz

Používáme cookies pro lepší uživatelský zážitek. Používáním webu s tím vyjadřujete souhlas a zároveň potvrzujete, že jste se seznámil/a s Prohlášením o ochraně osobních údajů.

Fotografie: lektoři, grafikli.cz, icons8.com