Για την αγάπη της SQL: γιατί πρέπει να το μάθετε και πώς θα σας βοηθήσει

Πρόσφατα διάβασα ένα υπέροχο άρθρο από τους αξιότιμους @craigkerstiens που περιγράφουν γιατί πιστεύει ότι η SQL είναι τόσο πολύτιμη δεξιότητα για προγραμματιστές. Αυτό το θέμα πραγματικά αντηχούσε μαζί μου. Ευθυγραμμίστηκε καλά με σημειώσεις που είχα ήδη αρχίσει να σχεδιάζω ένα παρόμοιο άρθρο σχετικά με την ανάπτυξη μιας αγάπης για τα δεδομένα.

Όσο περισσότερο έκανα το θέμα μου, ωστόσο, τόσο περισσότερο συνειδητοποίησα ότι πολλά από τα σημεία και τα παραδείγματα μου φαινόταν να επικεντρώνονται γύρω από το SQL. Διαβάζοντας το άρθρο του Craig με έπεισε να ανακατευθύνω την εστίασή μου και να μιλήσω περισσότερο για το γιατί έχω προσωπικά μια τέτοια σχέση με το SQL.

Εν ολίγοις, ο Craig κάνει τους ακόλουθους ισχυρισμούς σχετικά με τη SQL (και παραθέτω):

1. Είναι πολύτιμο σε διαφορετικούς ρόλους και κλάδους2. Η εκμάθηση κάποτε δεν απαιτεί πραγματικά εκ νέου μάθηση3. Φαίνεσαι σαν υπερήρωας. Φαίνεστε πολύ ισχυροί όταν το γνωρίζετε, λόγω του αριθμού των ατόμων που δεν είναι άπταιστα

Βρήκα όλα αυτά τα σημεία να είναι αληθινά στη δική μου εμπειρία και θα ήθελα να αναδιατυπώσω και να επεκταθώ σε κάθε ένα.

Το εφέ ευελιξίας

Το σετ δεξιοτήτων SQL έχει αποδειχθεί ένα εξαιρετικά πολύτιμο πλεονέκτημα στην καριέρα μου. Στην πραγματικότητα, πιστεύω ότι η SQL είναι η πιο ισχυρή και ευέλικτη γλώσσα προγραμματισμού που γνωρίζω.

Κατάφερα να χρησιμοποιήσω το SQL για να λύσω πολλά προβλήματα, και είναι το εργαλείο μετάβασης μου όποτε αντιμετωπίζω μια νέα πρόκληση. Στην πραγματικότητα, διατηρώ μια παρουσία του PostgreSQL να λειτουργεί στον φορητό υπολογιστή μου, ώστε να μπορώ γρήγορα να μεταβείτε στο αγαπημένο SQL GUI όποτε χρειαστεί να δοκιμάσω κάτι.

Εδώ είναι μερικά από τα ωραία πράγματα που έχω καταφέρει να κάνω με το SQL:

Δυσκολεύεστε να πιστέψετε την παραπάνω λίστα; Σας υπόσχομαι ότι δεν υπάρχει ούτε ουγγιά υπερβολής. Τώρα, υπάρχουν κάποια αντικείμενα εκεί που εξαρτώνται από άλλες δυνατότητες του RDBMS που χρησιμοποιούσα εκείνη τη στιγμή; Σίγουρος. Ανεξάρτητα, καθεμία από αυτές τις λύσεις υλοποιήθηκε στο SQL.

Η επίδραση ποδηλάτων

Ενώ η Δομημένη Γλώσσα Ερωτήσεων έχει σίγουρα υποστεί αλλαγές και έχει επεκταθεί όλα αυτά τα χρόνια, συμφωνώ με τον Craig ότι τα βασικά δεν έχουν αλλάξει. Το συνολικό επίπεδο μεταβλητότητας σε σύγκριση με άλλες γλώσσες ήταν σχετικά χαμηλό.

Θα υποστήριζα ότι αυτό το γεγονός ενισχύει μόνο το επιχείρημα ότι κάποιος πρέπει να επενδύσει το χρόνο για να μάθει SQL. Μπορείτε να είστε σίγουροι ότι θα έχετε πολλά χιλιόμετρα από μια τέτοια επένδυση χωρίς να χρειάζεται να αναζητήσετε τις τελευταίες συμβάσεις την επόμενη φορά που θα χρειαστεί να το χρησιμοποιήσετε.

Μάθετε λοιπόν το SQL! Ακολουθούν μερικά υπέροχα μέρη για να ξεκινήσετε:

Tutorial SQL - Απαραίτητο SQL για τους αρχάριους

Αυτό το σεμινάριο SQL σάς βοηθά να ξεκινήσετε με το SQL γρήγορα και αποτελεσματικά μέσω πολλών πρακτικών παραδειγμάτων. Μετά το… www.sqltutorial.org

Υπάρχουν ακόμη και διαδραστικά σεμινάρια:

SQLBolt - Μάθετε SQL - Εισαγωγή στη SQL

Το SQLBolt παρέχει ένα σύνολο διαδραστικών μαθημάτων και ασκήσεων που θα σας βοηθήσουν να μάθετε το SQL sqlbolt.com

Υπάρχουν επίσης μερικά ευέλικτα περιβάλλοντα άμμου εκεί έξω που σας επιτρέπουν να εκτελείτε SQL σε διάφορες διαλέκτους χωρίς να χρειάζεται να εγκαταστήσετε τίποτα. Για παράδειγμα, SQL Fiddle:

Ή, DB Fiddle:

Το εφέ Superhero

Θυμάμαι έναν συνάδελφο κάποτε που είπε ότι έσπασε έναν κρύο ιδρώτα κάθε φορά που έπρεπε να γράψει SQL. ;

Ακούγεται υπερβολικό, αλλά η SQL μπορεί να είναι εκφοβιστική σε οποιονδήποτε θεωρεί σωστά τη βάση δεδομένων ως το ευαίσθητο πλεονέκτημα που είναι και δεν είναι εξοικειωμένος με το πώς να αλληλεπιδρά με ασφάλεια με αυτήν. Το SQL, που είναι ένας από τους ενήλικες του δωματίου, δεν λαμβάνει τόσο μεγάλη προσοχή όσο και άλλες λαμπερές νέες γλώσσες προγραμματισμού. Αυτό σημαίνει ότι παραμένει μια λιγότερο κοινή δεξιότητα μεταξύ σύγχρονων και αναδυόμενων προγραμματιστών.

Ως εκ τούτου, έχοντας μια σταθερή κατανόηση της SQL και τη διορατικότητα για να δείτε τις βασικές πτυχές ενός δεδομένου προβλήματος ή πρόκλησης, δίνεται η ευκαιρία να γίνετε ήρωας.

Μία από τις αγαπημένες μου προσωπικές εμπειρίες ήταν να βοηθήσω έναν πελάτη να εντοπίσει ένα αργό και περίπλοκο πρόγραμμα SAS. Ο στόχος αυτού του προγράμματος ήταν να εξαγάγει μια λίστα μεταβάσεων κατάστασης από έναν πίνακα ελέγχου, προκειμένου να μετρηθεί η μέση διάρκεια ενός widget που δαπανάται σε κάθε φάση μιας δεδομένης επιχειρηματικής ροής εργασίας. Η εφαρμογή αυτών των υπολογισμών ήταν περίπλοκη και απαιτούσε τη δημιουργία πολλαπλών τοπικών συνόλων δεδομένων.

Θυμάμαι την αντίστροφη σχεδίαση αυτού του προγράμματος και συνειδητοποιώντας ότι θα μπορούσα να λύσω το πρόβλημα πολύ πιο εύκολα χρησιμοποιώντας ένα μόνο ερώτημα SQL και τη μαγική λειτουργία παραθύρου LAG.

Ο πελάτης απλώς εκπλήχθηκε.

Όχι μόνο επειδή έμαθε για τη λειτουργία LAG, αλλά επειδή είδε πόσο ισχυρή μπορεί να είναι η SQL.

Ένα ακόμη πιο δραματικό παράδειγμα ήταν κατά τη διάρκεια μιας μεγάλης μετεγκατάστασης αποθήκης δεδομένων όπου αντικατέστησα ένα ολόκληρο πρόγραμμα Java (που χρειάστηκε περισσότερο από 20 λεπτά για να ολοκληρωθεί!) Με ένα μόνο ερώτημα SQL που έτρεξε σε δευτερόλεπτα. Ο αρχικός συγγραφέας του προγράμματος σοκαρίστηκε! Ήταν μια πολύ καλή μέρα. ;

Γι 'αυτό, σας ενθαρρύνω να εμβαθύνετε στη SQL σήμερα και να διευρύνετε το σετ δεξιοτήτων σας με ένα από τα πιο ευέλικτα εργαλεία που είχα τη χαρά να συνεργαστώ. Εάν γνωρίζετε ήδη τη SQL και συμφωνείτε, ή εάν σας έπεισα να το δοκιμάσετε, σκεφτείτε το ενδεχόμενο να μου αφήσετε ένα σχόλιο.