Εισαγωγή στις βασικές αρχές του SQL

Το Structured Query Language (SQL) είναι ένα από τα θεμελιώδη δομικά στοιχεία της σύγχρονης αρχιτεκτονικής βάσης δεδομένων. Η SQL καθορίζει τις μεθόδους που χρησιμοποιούνται για τη δημιουργία και τον χειρισμό σχεσιακών βάσεων δεδομένων σε όλες τις μεγάλες πλατφόρμες. Με την πρώτη ματιά, η γλώσσα μπορεί να φαίνεται εκφοβιστική και περίπλοκη, αλλά δεν είναι τόσο δύσκολο.

Σχετικά με τη SQL

Η σωστή προφορά της SQL είναι ένα αμφιλεγόμενο ζήτημα στην κοινότητα βάσεων δεδομένων. Στο πρότυπο SQL, το Αμερικανικό Ινστιτούτο Εθνικών Προτύπων δήλωσε ότι η επίσημη προφορά είναι "ουρά el. "Ωστόσο, πολλοί επαγγελματίες της βάσης δεδομένων έχουν ακολουθήσει την προφορά της αργκό" συνέχεια. "Όπως και στην προφορά του GIF, δεν υπάρχει σωστή απάντηση.

Το SQL έρχεται σε πολλές γεύσεις. Οι βάσεις δεδομένων της Oracle χρησιμοποιούν το ιδιόκτητο PL / SQL. Ο Microsoft SQL Server χρησιμοποιεί το Transact-SQL. Όλες οι παραλλαγές βασίζονται στο βιομηχανικό πρότυπο ANSI SQL.

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

instagram viewer

DDL και DML

Οι εντολές SQL μπορούν να χωριστούν σε δύο κύριες υπο-γλώσσες. Η Γλώσσα Ορισμού Δεδομένων περιέχει τις εντολές που χρησιμοποιούνται για τη δημιουργία και καταστροφή βάσεων δεδομένων και αντικειμένων βάσης δεδομένων. Αφού οριστεί η δομή της βάσης δεδομένων με το DDL, οι διαχειριστές βάσης δεδομένων και οι χρήστες μπορούν να χρησιμοποιήσουν τη Γλώσσα Χειρισμού Δεδομένων για να εισάγουν, να ανακτήσουν και να τροποποιήσουν τα δεδομένα που περιέχονται σε αυτήν.

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

Εντολές γλώσσας ορισμού δεδομένων

Η Γλώσσα Ορισμού Δεδομένων χρησιμοποιείται για τη δημιουργία και καταστροφή βάσεων δεδομένων και αντικειμένων βάσης δεδομένων. Αυτές οι εντολές χρησιμοποιούνται κυρίως από τους διαχειριστές βάσεων δεδομένων κατά τη φάση εγκατάστασης και κατάργησης ενός έργου βάσης δεδομένων. Το DDL περιστρέφεται γύρω από τέσσερις κύριες εντολές—δημιουργώ, χρήση, αλλάζω, και πτώση.

Δημιουργώ

ο δημιουργώ Η εντολή δημιουργεί βάσεις δεδομένων, πίνακες ή ερωτήματα στην πλατφόρμα σας. Για παράδειγμα, η εντολή:

ΔΗΜΙΟΥΡΓΙΑ εργαζομένων ΔΕΔΟΜΕΝΩΝ

δημιουργεί μια κενή βάση δεδομένων με το όνομα υπαλλήλους στο DBMS σας. Μετά τη δημιουργία της βάσης δεδομένων, το επόμενο βήμα είναι να δημιουργήσετε πίνακες που περιέχουν δεδομένα. Μια άλλη παραλλαγή του δημιουργώ εντολή επιτυγχάνει αυτόν τον σκοπό. Η εντολή:

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ personal_info (first_name char (20) not null, last_name char (20) not null, pegawai_id int not null);

δημιουργεί έναν πίνακα με τίτλο προσωπικές πληροφορίες στην τρέχουσα βάση δεδομένων. Στο παράδειγμα, ο πίνακας περιέχει τρία χαρακτηριστικά: όνομα, επίθετο, και Ταυτότητα Υπαλλήλου μαζί με μερικές πρόσθετες πληροφορίες.

Χρήση

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

ΧΡΗΣΗ υπαλλήλους;

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

Αλλάζω

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

ALTER TABLE personal_info ΠΡΟΣΘΗΚΗ χρημάτων μηδέν;

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

Πτώση

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

ΣΤΑΣΗ ΠΙΝΑΚΑΣ personal_info;

Ομοίως, η παρακάτω εντολή θα χρησιμοποιηθεί για την κατάργηση ολόκληρης της βάσης δεδομένων εργαζομένων:

ΑΠΟΣΤΟΛΗ ΔΕΔΟΜΕΝΩΝ υπαλλήλων

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

Εντολές γλωσσών χειρισμού δεδομένων

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

Εισάγετε

ο εισάγετε Η εντολή προσθέτει εγγραφές σε έναν υπάρχοντα πίνακα. Επιστρέφοντας στο παράδειγμα personal_info από την προηγούμενη ενότητα, φανταστείτε ότι το τμήμα Ανθρώπινου Δυναμικού μας πρέπει να προσθέσει έναν νέο υπάλληλο στη βάση δεδομένων του. Χρησιμοποιήστε μια εντολή παρόμοια με αυτήν:

ΕΙΣΑΓΩΓΗ ΣΤΟ personal_info
τιμές ("bart", "simpson", 12345, 45000 $);

Σημειώστε ότι υπάρχουν τέσσερις τιμές που καθορίζονται για την εγγραφή. Αυτά αντιστοιχούν στα χαρακτηριστικά του πίνακα με τη σειρά που ορίστηκαν: όνομα, επίθετο, Ταυτότητα Υπαλλήλου και Μισθός.

Επιλέγω

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

Η παρακάτω εντολή ανακτά όλες τις πληροφορίες που περιλαμβάνονται στον πίνακα προσωπικών πληροφοριών. Ο αστερίσκος είναι χαρακτήρας μπαλαντέρ στο SQL.

ΕΠΙΛΟΓΗ *
ΑΠΟ personal_info

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

ΕΠΙΛΕΞΤΕ το τελευταίο όνομα
ΑΠΟ personal_info

ο όπου Η ρήτρα περιορίζει τις εγγραφές που ανακτώνται σε αυτές που πληρούν συγκεκριμένα κριτήρια. Ο Διευθύνων Σύμβουλος μπορεί να ενδιαφέρεται να αναθεωρήσει τα αρχεία προσωπικού όλων των υψηλόμισθων υπαλλήλων. Η ακόλουθη εντολή ανακτά όλα τα δεδομένα που περιέχονται στο personal_info για εγγραφές που έχουν αξία μισθού μεγαλύτερη από 50.000 $:

ΕΠΙΛΟΓΗ *
ΑΠΟ personal_info
ΠΟΥ ΜΙΣΘΟΣ> 50000 $;

Εκσυγχρονίζω

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

ΕΝΗΜΕΡΩΣΗ του personal_info
SET μισθός = μισθός * 1,03;

Όταν ο νέος υπάλληλος Bart Simpson επιδεικνύει επιδόσεις πάνω και πέρα ​​από την κλήση του καθήκοντος, η διοίκηση επιθυμεί να αναγνωρίσει τα αστρικά του επιτεύγματα με αύξηση $ 5.000. Ο όρος WHERE ξεχωρίζει τον Bart για αυτό το raise:

ΕΝΗΜΕΡΩΣΗ του personal_info
SET μισθός = μισθός + 5000
WHERE υπάλληλος_id = 12345;

Διαγράφω

Τέλος, ας ρίξουμε μια ματιά στο διαγράφω εντολή. Θα διαπιστώσετε ότι η σύνταξη αυτής της εντολής είναι παρόμοια με αυτήν των άλλων εντολών DML. Η εντολή DELETE, με ένα όπου ρήτρα, αφαιρέστε μια εγγραφή από έναν πίνακα:

ΔΙΑΓΡΑΦΗ ΑΠΟ personal_info
WHERE υπάλληλος_id = 12345;

Το DML υποστηρίζει επίσης συγκεντρωτικά πεδία. Σε ένα επιλέγω δήλωση, μαθηματικοί τελεστές αρέσει άθροισμα και μετρώ συνοψίστε τα δεδομένα σε ένα ερώτημα. Για παράδειγμα, το ερώτημα:

επιλέξτε μέτρηση (*) από το personal_info.

μετρά τον αριθμό των εγγραφών στον πίνακα.

Η βάση δεδομένων ενώνεται

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

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

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ πειθαρχικής_ δράσης (action_id int not null, ملازم_id int not null, σχόλια char (500));

Αυτός ο πίνακας περιέχει τα αποτελέσματα πειθαρχικών ενεργειών για υπαλλήλους της εταιρείας. Δεν περιέχει πληροφορίες για τον υπάλληλο εκτός από τον αριθμό του υπαλλήλου.

Ας υποθέσουμε ότι έχετε επιφορτιστεί με τη δημιουργία μιας αναφοράς που παραθέτει τις πειθαρχικές ενέργειες που έχουν ληφθεί εναντίον όλων των υπαλλήλων με μισθό μεγαλύτερο από 40.000 $. Η χρήση μιας λειτουργίας JOIN, σε αυτήν την περίπτωση, είναι απλή. Ανακτήστε αυτές τις πληροφορίες χρησιμοποιώντας την ακόλουθη εντολή:

SELECT προσωπικό_info.first_name, personal_info.last_name, disiplinary_action.comments
ΑΠΟ personal_info ΕΙΣΑΓΩΓΗ ΕΙΣΑΓΩΓΗ disiplinary_action ON personal_info.employee_id =iplinlin_action.employee_id
WHERE personal_info.salary> 40000;

Τύποι ενώνει

Συμμετοχή τύπων σε SQL

Οι ενότητες έρχονται σε διάφορες γεύσεις. Στη δήλωση SQL, ο πρώτος πίνακας (συνήθως καλείται Πίνακας Α ή το Αριστερός πίνακας) συμμετέχει στο δεύτερο τραπέζι (συνήθως καλείται Πίνακας Β ή το Δεξί πίνακα) με γνώση της θέσης. Έτσι, εάν αλλάξετε τη σειρά των πινάκων στη δήλωση σύνδεσης, τα αποτελέσματα της λειτουργίας θα διαφέρουν. Οι κύριοι τύποι σύνδεσης περιλαμβάνουν:

  • Εσωτερική σύνδεση: Ταιριάζει μόνο με εγγραφές όπου το επί συνθήκη ταιριάζει με τις ίδιες εγγραφές και στους δύο πίνακες.
  • Εξωτερική συμμετοχή: Ταιριάζει μόνο με εγγραφές και από τους δύο πίνακες αποκλείω τα αποτελέσματα που προσδιορίζονται στο επί κατάσταση.
  • Δεξιά εγγραφή: Ταιριάζει με όλες τις εγγραφές από τον Πίνακα Β συν τις εγγραφές από τον Πίνακα Α που ταιριάζουν με επί κατάσταση.
  • Αριστερά Συμμετοχή: Ταιριάζει με όλες τις εγγραφές από τον Πίνακα Α συν τις εγγραφές από τον Πίνακα Β που ταιριάζουν με επί κατάσταση.
  • Συμμετοχή: Ταιριάζει σε όλες τις εγγραφές σαν να ήταν οι πίνακες ίδιοι. Αυτή η διαδικασία δημιουργεί κάτι που ονομάζεται καρτεσιανό προϊόν. Συχνά, οι διασταυρούμενες συνδέσεις είναι ανεπιθύμητες, επειδή ταιριάζουν με κάθε σειρά του Πίνακα Α, μεμονωμένα, με κάθε σειρά του Πίνακα Β. Έτσι, εάν ο Πίνακας Α προσέφερε πέντε εγγραφές και ο Πίνακας Β προσέφερε 9 εγγραφές, ένα ερώτημα διασταυρούμενης σύνδεσης προσφέρει 45 σειρές που προκύπτουν.