For kærligheden til SQL: hvorfor du skal lære det, og hvordan det hjælper dig

Jeg har for nylig læst en god artikel af den værdsatte @craigkerstiens, der beskriver, hvorfor han føler, at SQL er en så værdifuld færdighed for udviklere. Dette emne genklang virkelig med mig. Det stemte godt overens med noter, som jeg allerede var begyndt at tegne for en lignende artikel om at udvikle en kærlighed til data.

Jo mere jeg uddybede mit emne, jo mere indså jeg, at mange af mine punkter og eksempler syntes at være centreret omkring SQL. Læsning af Craigs artikel overbeviste mig om at omdirigere mit fokus og tale mere om, hvorfor jeg personligt har en sådan tilknytning til SQL.

Kort sagt fremsætter Craig følgende påstande om SQL (og jeg citerer):

1. Det er værdifuldt på tværs af forskellige roller og discipliner2. At lære det en gang kræver ikke rigtig genindlæring3. Du ser ud som en superhelt. Du virker ekstra kraftig, når du ved det på grund af mængden af ​​mennesker, der ikke taler flydende

Jeg har fundet alle disse punkter at være sande i min egen erfaring, og jeg vil gerne omarbejde og udvide hver enkelt.

Alsidighedseffekten

SQL-skillset har vist sig at være et ekstremt værdifuldt aktiv i min karriere. Faktisk tror jeg, at SQL er det mest kraftfulde og alsidige "programmeringssprog", jeg kender.

Jeg har været i stand til at bruge SQL til at løse mange problemer, og det er mit go-to-værktøj, når som helst jeg står over for en ny udfordring. Faktisk holder jeg en forekomst af PostgreSQL kørende på min bærbare computer, så jeg hurtigt kan hoppe ind i min foretrukne SQL GUI, når jeg har brug for at teste noget.

Her er blot nogle af de seje ting, jeg har været i stand til at gøre med SQL:

Har du svært ved at tro på listen ovenfor? Jeg lover dig, at der ikke er en ounce overdrivelse i den. Er der nogle ting der, der var afhængige af andre funktioner i RDBMS, jeg brugte på det tidspunkt? Jo da. Uanset hvad blev hver af disse løsninger implementeret i SQL.

Cykeleffekten

Mens Structured Query Language helt sikkert har gennemgået ændringer og er blevet udvidet gennem årene, er jeg enig med Craig i, at det grundlæggende ikke er ændret. Det samlede volatilitetsniveau sammenlignet med andre sprog har været relativt lavt.

Jeg vil hævde, at dette kun styrker argumentet om, at man skal investere tid til at lære SQL. Du kan være sikker på, at du får meget kilometertal ud af en sådan investering uden at skulle slå de nyeste konventioner op, næste gang du har brug for det.

Så lær SQL! Her er nogle gode steder at komme i gang:

SQL-vejledning - Væsentlig SQL til begyndere

Denne SQL-tutorial hjælper dig med at komme godt i gang med SQL hurtigt og effektivt gennem mange praktiske eksempler. Efter ... www.sqltutorial.org

Der er endda interaktive tutorials:

SQLBolt - Lær SQL - Introduktion til SQL

SQLBolt leverer et sæt interaktive lektioner og øvelser, der hjælper dig med at lære SQL sqlbolt.com

Der er også nogle alsidige sandkasser derude, der giver dig mulighed for at køre SQL i forskellige dialekter uden at skulle installere noget. For eksempel SQL Fiddle:

Eller DB Fiddle:

Superhelteffekten

Jeg kan huske, at en kollega engang sagde, at han brød ud i en kold sved, hver gang han skulle skrive SQL. ?

Det lyder overdrevet, men SQL kan være skræmmende for alle, der korrekt betragter databasen som det følsomme aktiv, den er, og som ikke er fortrolig med, hvordan man sikkert interagerer med den. SQL, som en af ​​de voksne i rummet, får heller ikke så meget opmærksomhed som andre skinnende nye programmeringssprog. Det betyder, at det stadig er en mindre almindelig dygtighed blandt nutidige og nye udviklere.

Som sådan giver muligheden for at være en helt at have en solid forståelse af SQL og indsigt i at se de sætbaserede facetter af et givet problem eller en udfordring.

En af mine foretrukne personlige oplevelser var at hjælpe en kunde med at debugge et langsomt og komplekst SAS-program. Målet med dette program var at udtrække en liste over tilstandsovergange fra en revisionstabel for at måle den gennemsnitlige varighed, en widget brugte i hver fase af en given forretningsworkflow. Implementeringen af ​​disse beregninger var kompleks og krævede opbygning af flere lokale datasæt.

Jeg husker reverse engineering af dette program og indså, at jeg kunne løse problemet meget lettere ved hjælp af en enkelt SQL-forespørgsel og den magiske LAG-vinduesfunktion.

Kunden blev simpelthen sprængt væk.

Ikke kun fordi han lærte om LAG-funktionen, men fordi han så lige hvor kraftig SQL kan være.

Et endnu mere dramatisk eksempel var under en stor migrering af datalager, hvor jeg udskiftede et helt Java-program (det tog mere end 20 minutter at gennemføre!) Med en enkelt SQL-forespørgsel, der kørte på få sekunder. Den oprindelige forfatter af programmet var chokeret! Det var en rigtig god dag. ?

Så jeg opfordrer dig til at dykke ned i SQL i dag og udvide din skillset med et af de mest alsidige værktøjer, jeg har haft fornøjelsen af ​​at arbejde med. Hvis du allerede kender SQL og er enig, eller hvis jeg har overbevist dig om at prøve det, kan du overveje at give mig en kommentar.