Nedavno sam pročitao sjajan članak cijenjenog @craigkerstiens koji opisuje zašto smatra da je SQL toliko vrijedna vještina za programere. Ova tema me stvarno odjeknula. Dobro se poredao s bilješkama koje sam već počeo skicirati za sličan članak o razvijanju ljubavi prema podacima.
Što sam više razrađivao svoju temu, to sam više shvaćao da se čini da se mnoge moje točke i primjeri usredotočuju na SQL. Čitajući Craigov članak uvjerio me da preusmjerim fokus i razgovaram više o tome zašto osobno imam takav afinitet prema SQL-u.
Ukratko, Craig iznosi sljedeće tvrdnje o SQL-u (i citiram):
1. Vrijedan je u različitim ulogama i disciplinama2. Učenje jednom ne zahtijeva ponovno učenje3. Činiš se kao superheroj. Činiš se izuzetno moćnim kad to znaš zbog količine ljudi koji ne govore tečnoOtkrio sam da su sve ove točke istinite u mom vlastitom iskustvu i želio bih preinačiti i proširiti svaku od njih.
Učinak svestranosti
Skup vještina SQL pokazao se izuzetno vrijednim dobrom u mojoj karijeri. Zapravo, vjerujem da je SQL jedini najsnažniji i najsvestraniji jezik za "programiranje" koji znam.
Mogao sam koristiti SQL za rješavanje mnogih problema, a to je moj alat za pristup kad god se suočim s novim izazovom. Zapravo, na svom prijenosnom računalu držim primjerak PostgreSQL-a kako bih mogao brzo uskočiti u svoj omiljeni SQL GUI kad god moram nešto testirati.
Evo samo nekih super stvari koje sam uspio učiniti sa SQL-om:

Da li vam je teško povjerovati u gornji popis? Obećavam vam da u tome nema ni trunke pretjerivanja. Postoje li tamo neke stavke koje su ovisile o drugim mogućnostima RDBMS-a koje sam tada koristio? Naravno. Bez obzira na to, svako od tih rješenja implementirano je u SQL.
Efekt bicikla
Iako je jezik strukturiranih upita sigurno pretrpio promjene i proširio se tijekom godina, slažem se s Craigom da se osnove nisu promijenile. Ukupna razina volatilnosti u usporedbi s drugim jezicima bila je relativno niska.
Tvrdio bih da ta činjenica samo pojačava argument da treba uložiti vrijeme za učenje SQL-a. Možete biti sigurni da ćete takvom investicijom postići veliku kilometražu bez potrebe za traženjem najnovijih pravila sljedeći put kada je budete trebali koristiti.
Dakle, naučite SQL! Evo nekoliko izvrsnih mjesta za početak:
Vodič za SQL - osnovni SQL za početnike
Ovo uputstvo za SQL pomaže vam da brzo i učinkovito započnete sa SQL-om kroz brojne praktične primjere. Nakon ... www.sqltutorial.org
Postoje čak i interaktivni vodiči:
SQLBolt - Naučite SQL - Uvod u SQL
SQLBolt nudi skup interaktivnih lekcija i vježbi koje će vam pomoći da naučite SQL sqlbolt.com
Postoje i nekoliko svestranih pješčanika koji omogućuju pokretanje SQL-a na različitim dijalektima, a da ništa ne morate instalirati. Na primjer, SQL Fiddle:

Ili, DB Fiddle:

Učinak superheroja
Sjećam se da je kolega jednom rekao da ga je obuzeo hladan znoj svaki put kad je morao pisati SQL. ?
Zvuči pretjerano, ali SQL može zastrašiti svakoga tko bazu podataka pravilno smatra osjetljivom imovinom i nije upoznat s načinom sigurne interakcije s njom. SQL, kao jedan od odraslih u sobi, također ne privlači toliko pažnje kao drugi sjajni novi programski jezici. To znači da je i dalje rjeđi skup vještina među suvremenim i novim programerima.
Kao takvo, solidno razumijevanje SQL-a i uvid u aspekte postavljenog problema određenog problema ili izazova pružaju priliku biti heroj.
Jedno od mojih najdražih osobnih iskustava bilo je pomaganje kupcu u rješavanju sporih i složenih SAS programa. Cilj ovog programa bio je izvući popis prijelaza stanja iz tablice revizije kako bi se izmjerilo srednje vrijeme trajanja widgeta u svakoj fazi određenog poslovnog tijeka. Provedba ovih izračuna bila je složena i zahtijevala je izgradnju više lokalnih skupova podataka.
Sjećam se obrnutog inženjerstva ovog programa i shvatio sam da bih mogao puno lakše riješiti problem pomoću jednog SQL upita i funkcije čarobnog prozora LAG.
Kupac je jednostavno bio oduševljen.
Ne samo zato što je naučio o funkciji LAG, već i zato što je vidio koliko moćan SQL može biti.
Još dramatičniji primjer bio je tijekom migracije velikog skladišta podataka gdje sam cijeli Java program (kojem je trebalo više od 20 minuta da se dovrši!) Zamijenio jednim SQL upitom koji se pokrenuo u nekoliko sekundi. Izvorni autor programa bio je šokiran! Bio je to stvarno dobar dan. ?
Stoga vas potičem da danas zaronite u SQL i proširite svoje znanje s jednim od najsvestranijih alata s kojima sam imao zadovoljstvo raditi. Ako već znate SQL i slažete se ili ako sam vas uvjerio da pokušate, razmislite o tome da mi ostavite komentar.