Home BIZNIS I ZABAVAPython vs SQL – What’s the Difference?

Python vs SQL – What’s the Difference?

od ITN Team
SQL Naslovna

Python vs. SQL | Za i protiv

Pre otprilike dvadeset godina postojalo je samo nekoliko programskih jezika koje bi softverski inženjer morao dobro da zna. Još tada je strukturirani jezik upita ili SQL bio jezik koga je trebalo koristiti da dobijete brz uvid u neke podatke, doneti zapise i zatim izvlačiti preliminarne zaklјučke koji bi na kraju mogli da dovedu do izveštaja ili pisanja aplikacije.

Danas se podaci isporučuju u mnogim oblicima i formatima, a ne nužno i sinonimima za relacijske baze podataka. Podaci postoje unutar CSV datoteka, običnog teksta i na web-u, kao i u mnogim drugim različitim formatima. Upravo u ovom lavirintu podataka blista širok set Pythonovih biblioteka.

Sa velikim brojem pomoćnih biblioteka i pripadajućih platformi, Python je odličan programski jezik za brzo i iterativno istraživanje podataka. Python-ove biblioteke uklјučuju sve, od vizualizacije podataka do statističke analize, što programerima čini pogodnim za skok u analizu podataka i započinjanje identifikacije obrazaca.

Koristite slučajeve za SQL i Python

SQL je dizajniran za ispitivanje i izvlačenje podataka iz tabela unutar baze podataka. SQL je dobar u tome što vam kao programeru omogućuje neprimetno ujedinjenje (ili spajanje) nekoliko podataka zajedno. Kombinovanje podataka iz više tabela je klјučna snaga.

Međutim, SQL nije dizajniran za manipulisanje ili pretvaranje podataka u druge formate. Vrste manipulacije podacima višeg nivoa koje su uobičajene u nauci o podacima, kao što su statistička analiza, regresijski testovi i manipulacija podacima iz vremenskih serija veoma je teško postići isklјučivo korišćenjem SQL-a.

Python, s druge strane, ima dobro poznatu biblioteku za analizu podataka nazvanu Pandas, koja je posebno dizajnirana za analizu i manipulaciju podacima.

Python je posebno pogodan za strukturirane (tabelarne) podatke koji mogu da se donesu pomoću SQL-a i zatim zahteva dalјa manipulacija, što bi moglo da bude teško da se postigne korišćenje samo SQL-a. To dovodi do sledećeg pitanja: Kada treba koristiti Python a kada SQL?

Razlike u SQL-u i Python-u

Koristite SQL da biste preuzeli osnovne podatke potrebne za analizu, a zatim koristite specijalizovane Python biblioteke da biste ih obradili.

Pogledajmo primer pomoću SQL-a:

Recimo da imamo sledeću tabelu sa podacima o hotelima koja se zove hoteli. Ovo je mali uzorak skupa podataka koji se nalaze u tabeli. Ova tablica može da sadržava hilјade ili milione reda (unosa), od kojih svaki predstavlјa hotel.

Ime Grad Ulica Cena Valuta   Zvezdice Telefon
1 Via dei Valeri Rim Via Dei Valeri 1 54 Američki dolar   5  
108 Minutes Hostel Moskva Malaya Ordynka Street 5/6 Bld.4 App.3 24 Američki dolar   1 7 (495) 795-4259
1-vi Arbat hostel u Novinsky-om Moskva Novinsky Bulvar 1/2 App 64 26 Američki dolar   1 7 (967) 0130047
A Plus Hostel Prag Na Florenci 14 13/33 14 Američki dolar   3  
Aalborg Hotel Amsterdam Amsterdam Sarphatipark 106 39 Američki dolar   3 106 – 1073
Adagio Access Vanves Porte de Chatillon Pariz 5 rue Aristide Briand, 53 Američki dolar   3,5 33140955600
Advisor Hotel Hanoi Hanoj Hanoi 51 Nguyen Sieu Street Hoan Kiem 13 Američki dolar   2 39935766
Afrian House Hotel Kairo 15 Emad El Din Street 11 Američki dolar   1  
Agon Aldea Hotel Berlin Berlin Bulowstrasse 19-22 22 Američki dolar   3  
Agustina Serviced Apartments Quezon City Manila No. 9 18th St. Brgy Kalusugan (New Manila) 27 Američki dolar   3 2098647-25

Uporedimo kako bismo mogli da upitamo ovaj skup podataka koristeći SQL nasuprot Python-u koristeći Pandas.

Vrsta akcije SQL Python koristeći Pandas
Pronađite sve hotele SELECT * FROM hotels hotels
Pronađite prva 3 hotela SELECT * FROM hotels LIMIT 3 hotels.head(3)
Pronađite imena hotela u Parizu SELECT Name FROM hotels WHERE City = ‘Paris‘ hotels[hotels.City == ‘Paris‘].Name

Kao što vidimo, do sada su oba prilično slična. Međutim, stvari počinju da postaju zanimlјivije kada moramo da obavimo složenije upite.

Primeri kada je Python lakši za upotrebu od SQL-a

Recimo da smo napravili neke preliminarne upite podataka, a sada imamo tabelu skupa podataka koja se zove hotels_by_city, a koja sadrži broj hotela po gradu, a izgleda ovako:

 

Grad

Hotel_Count
Pariz 567
Moskva 482

Uz ovaj novi skup podataka, recimo da želimo da naručimo rezultate po Hotel _Count i odaberemo samo prvih deset gradova sa najvećim brojem. To bismo mogli da učinimo na sledeći način:

 

SQL

Python koristeći Pandas
SELECT City FROM hotels_by_city ORDER BY Hotel_Count DESC LIMIT 10 hotels_by_city.nlargest(10, columns=’Hotel_Count‘)

Možete početi da vidite da Pandas sintaksa postaje lakša za shvatanje i pisanje, jer primeri preuzimanja podataka postaju malo složeniji.

Hajde da dodamo sloj složenosti, tako da sada treba da utvrdimo koristeći ovu novu tabelu podataka, koja je sledećih deset hotela, nakon prvih deset.

SQL Python koristeći Pandas
SELECT City FROM hotels_by_city ORDER  BY Hotel_Count DESC LIMIT 10 OFFSET 10 hotels_by_city.nlargest(20, columns=’Hotel_Count‘).tail(10)

Primetite kako Pandas sintaksa ostaje gotovo nepromenjena kako se složenost povećava, dok SQL sintaksa postaje složenija za čitanje.

Drugi način razmišlјanja o razlikama između Pythona i SQL-a je taj što SQL pruža podešavanje, a Python vas vodi odatle. SQL vam omogućava da započnete sa podacima koji su strukturirani u tabele. Jednom kada dobijete tabele, koristite Python za grananje različitih analiza u različitim pravcima.

Vrste SQL-a

MySQL (izgovara se MY Sequel) je najpopularnija vrsta SQL baze podataka. Super-štreberski način da se ova vrsta SQL baze podataka odnosi kao sistem upravlјanja relacijskim bazama podataka (ili RDBMS). To manje-više znači da je to baza podataka sa mnogim tabelama koje se na neki način povezuju. Sve WordPress instalacije podrazumevano koriste MySQL.

PostgreSQL (koji se često naziva i „Postgres“) je sličan MySQL-u, ali je znan da je izdržljiviji. Međutim, postavlјanje Postgresa za novajlije često može da bude teško, tako da ako ste novi u ovome, MySQL je verovatno najbolјa opklada.

SQLite (izgovara Sequel Lite) je veoma prenosiva i kompaktna baza podataka. SQLite se najčešće koristi za testiranje i veoma, veoma jednostavne aplikacije.

Kada odabrati Python vs. SQL?

SQL sadrži mnogo jednostavniji i uski skup naredbi u poređenju sa Python-om. U SQL upitima se gotovo isklјučivo koristi neka kombinacija JOINS, agregatnih i podupitnih funkcija.

Python je, nasuprot tome, kolekcija specijalizovanih Lego setova, svaki sa određenom namenom. Svaka biblioteka ima prilagođene komade za izgradnju određene vrste određene stvari: Pandas za analizu podataka, PyPDF2 za PDF manipulaciju, Scikit-učenje za mašinsko učenje i još mnogo toga.

Koji jezik treba prvo da naučimo – Python ili SQL?

Mislimo da je najbolјe mesto za početak učenje SQL-a. SQL je suštinsko sredstvo za bilo kakvu vrstu podataka iz relacijskih baza podataka, čak i ako vaš primarni posao ima malo ili nema nikakve veze sa analizom podataka.

Čak i ako je SQL upit deset puta duži od ekvivalentne skripte Python-a, lakše je to učiniti kada radite ekvivalent u Python-u jer ga čita kao engleski. Zapamtite, učenje je napornije od kuckanja i zahteva više vremena.

Nakon što steknete razumno znanje o SQL-u, da bar možete da napišete upit koji spaja dve tabele zajedno, pokušajte da ponovo napišete neku istu logiku u Python-u koristeći Pandas.

Uporedni grafikon

  Python SQL
Osnovan Napravljen 1991. godine od strane Guido Van Rossum-a Napravljen od Donald D. Chamberlin i Raymond F. Boyce 1974. godine
Pros Svestran, dinamičan, lagan, širok opseg Vrlo lagana krivulјa učenja, sintaksa nalik engleskom.
Cons Krivulјa strmeg učenja od SQL Uglavnom se primenjuje samo u relacijskim bazama podataka (uz nekoliko izuzetaka)
Veb biblioteke Biblioteka za gotovo sve Nijedna, SQL je samo SQL.
Vrste Python 2 i Python 3 su dve najčešće vrste Pythona MySQL, SQL Server, PostgreSQL, SQLite
Upotreba Google

YouTube

DropBox

Skoro svaka visokotehnološka kompanija.

Štaviše, Python se široko koristi u mnogim organizacijama za nauku o podacima i istraživanje.

Skoro svaki web sajt na Internetu koristi SQL bazu podataka u svojoj pozadini.
Banner

Banner

Možda će vam se svideti i