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ř.:
- PostgreSQL,
- MySQL,
- Microsoft SQL Server,
- Oracle Database,
- SQLite,
- IBM DB2,
- Microsoft Access,
- a další.
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/J | sql-workbench.eu | Zdarma, více RDBMS |
DB Browser for SQLite | sqlitebrowser.org | Zdarma, pouze SQLite |
DBeaver | dbeaver.io | Zdarma, více RDBMS |
HeidiSQL | heidisql.com | Zdarma, více RDBMS |
SQL Server Management Studio (SSMS) | docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms | Zdarma, pouze MS SQL |
MySQL Workbench | mysql.com/products/workbench | Zdarma, pouze MySQL |
Oracle SQL Developer | oracle.com/database/technologies/appdev/sqldeveloper-landing.html | Zdarma, pouze Oracle |
SQuirreL | squirrel-sql.sourceforge.net | Zdarma, více RDBMS |
Adminer | adminer.org/cs | Zdarma, více RDBMS, jediný PHP soubor |
DbVisualizer | dbvis.com | Free 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 Text | sublimetext.com | Zkušební verze zdarma, více jazyků |
VS Code | code.visualstudio.com | Zdarma, více jazyků |
PyCharm | jetbrains.com/pycharm | Free Community verze, pouze Python |
Jupyter Notebook | jupyter.org | Zdarma, více jazyků |
Thonny | thonny.org | Zdarma, pouze Python |
Spyder | www.spyder-ide.org | Zdarma, pouze Python |
Atom | atom.io | Zdarma, více jazyků |
Vim | www.vim.org | Zdarma, 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.