Λειτουργικότητα της γλώσσας SQL. Βασικές εντολές SQL Κάθε προγραμματιστής πρέπει να γνωρίζει συναρτήσεις συγκεντρωτικών και βαθμωτών

Όπως οι περισσότερες γλώσσες προγραμματισμού, η SQL έχει λειτουργίες για χειρισμό δεδομένων. Αξίζει να σημειωθεί ότι, σε αντίθεση με τις δηλώσεις SQL, οι συναρτήσεις δεν είναι τυποποιημένες για όλους τους τύπους DBMS, δηλαδή, για να εκτελούνται οι ίδιες λειτουργίες σε δεδομένα, διαφορετικά DBMS έχουν τα δικά τους ονόματα συναρτήσεων. Αυτό σημαίνει ότι ο κώδικας ερωτήματος που είναι γραμμένος σε ένα ΣΔΒΔ ενδέχεται να μην λειτουργεί σε άλλο και αυτό πρέπει να ληφθεί υπόψη στο μέλλον. Πάνω απ 'όλα, αυτό αφορά συναρτήσεις για την επεξεργασία τιμών κειμένου, τη μετατροπή τύπων δεδομένων και τη χειραγώγηση ημερομηνίας.

Συνήθως, ένα DBMS υποστηρίζει ένα τυπικό σύνολο τύπων συναρτήσεων, και συγκεκριμένα:

  • Λειτουργίες κειμένου που χρησιμοποιούνται για την επεξεργασία κειμένου (επιλογή μέρους των χαρακτήρων στο κείμενο, προσδιορισμός του μήκους του κειμένου, μετατροπή χαρακτήρων σε κεφαλαία ή πεζά...)
  • Αριθμητικές συναρτήσεις. Χρησιμοποιείται για την εκτέλεση μαθηματικών πράξεων σε αριθμητικές τιμές
  • Λειτουργίες ημερομηνίας και ώρας (χειρισμός ημερομηνίας και ώρας, υπολογισμός της περιόδου μεταξύ ημερομηνιών, έλεγχος ημερομηνιών για ορθότητα κ.λπ.)
  • Στατιστικές συναρτήσεις (για τον υπολογισμό μέγιστων/ελάχιστων τιμών, μέσες τιμές, μέτρηση ποσοτήτων και αθροισμάτων...)
  • Λειτουργίες συστήματος (παρέχουν διάφορα είδη πληροφοριών υπηρεσίας σχετικά με το DBMS, τον χρήστη κ.λπ.).

1. Λειτουργίες SQL για επεξεργασία κειμένου

Η υλοποίηση SQL στο Access DBMS έχει τις ακόλουθες λειτουργίες για την επεξεργασία κειμένου:

Ας μετατρέψουμε τα ονόματα προϊόντων σε κεφαλαία χρησιμοποιώντας τη συνάρτηση UCase():

ΕΠΙΛΕΓΩ Προϊόν, UCase(Product) AS Product_UCase FROM Sumproduct

Ας επιλέξουμε τους τρεις πρώτους χαρακτήρες στο κείμενο χρησιμοποιώντας τη συνάρτηση ΑΡΙΣΤΕΡΑ():

ΕΠΙΛΕΓΩ Προϊόν, LEFT(Product, 3) AS Product_LEFT FROM Sumproduct

2. Λειτουργίες SQL για Επεξεργασία Αριθμών

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

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

Για παράδειγμα, ας γράψουμε ένα ερώτημα για να πάρουμε την τετραγωνική ρίζα των αριθμών σε μια στήλη Ποσόχρησιμοποιώντας τη συνάρτηση SQR():

ΕΠΙΛΕΓΩ Amount, SQR(Amount) AS Amount_SQR FROM Sumproduct

3. Λειτουργίες SQL για επεξεργασία ημερομηνίας και ώρας

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

Λίστα ορισμένων λειτουργιών για την επεξεργασία της ημερομηνίας και της ώρας Πρόσβαση στο DBMS:

Ας δούμε ένα παράδειγμα για το πώς λειτουργεί η συνάρτηση DatePart():

ΕΠΙΛΕΓΩ Date1, DatePart("m", Date1) AS Month1 FROM Sumproduct

Λειτουργία DatePart()έχει μια πρόσθετη παράμετρο που μας επιτρέπει να εμφανίζουμε το απαιτούμενο τμήμα της ημερομηνίας. Στο παράδειγμα χρησιμοποιήσαμε την παράμετρο "Μ", το οποίο εμφανίζει τον αριθμό του μήνα (με τον ίδιο τρόπο μπορούμε να απεικονίσουμε το έτος - "εεεε", τέταρτο - "q", ημέρα - "ρε", εβδομάδα - "w", ώρα - "η", λεπτά - "ν", δευτερόλεπτα - "μικρό"και τα λοιπά.).

4. Στατιστικές συναρτήσεις SQL

Οι στατιστικές συναρτήσεις μας βοηθούν να έχουμε έτοιμα δεδομένα χωρίς να τα δειγματίζουμε. Τα ερωτήματα SQL με αυτές τις συναρτήσεις χρησιμοποιούνται συχνά για την ανάλυση και τη δημιουργία διαφόρων αναφορών. Ένα παράδειγμα τέτοιων επιλογών θα μπορούσε να είναι: ο προσδιορισμός του αριθμού των σειρών σε έναν πίνακα, η λήψη του αθροίσματος των τιμών για ένα συγκεκριμένο πεδίο, η αναζήτηση της μεγαλύτερης/μικρότερης ή μέσης τιμής σε μια καθορισμένη στήλη πίνακα. Σημειώστε επίσης ότι οι στατιστικές συναρτήσεις υποστηρίζονται από όλα τα DBMS χωρίς ιδιαίτερες αλλαγές γραπτώς.

Λίστα στατιστικών συναρτήσεων σε Πρόσβαση στο DBMS:

ΜΕΤΡΩ():

ΕΠΙΛΕΓΩ COUNT(*) AS Count1 FROM Sumproduct- επιστρέφει το πλήθος όλων των γραμμών στον πίνακα

ΕΠΙΛΕΓΩ COUNT(Προϊόν) AS Count2 FROM Sumproduct- επιστρέφει τον αριθμό όλων των μη κενών γραμμών στο πεδίο Προϊόν

Καταργήσαμε σκόπιμα μία τιμή στη στήλη Προϊόνγια να δείξει τη διαφορά στον τρόπο λειτουργίας των δύο ερωτημάτων.

Παραδείγματα χρήσης της συνάρτησης ΑΘΡΟΙΣΜΑ():

ΕΠΙΛΕΓΩ SUM(Quantity) AS Sum1 FROM Sumproduct WHERE Μήνας = "Απρίλιος"

Με αυτό το αίτημα αντικατοπτρίσαμε τη συνολική ποσότητα των αγαθών που πωλήθηκαν τον Απρίλιο.

ΕΠΙΛΕΓΩ SUM(Ποσότητα*Ποσό) ΩΣ Άθροισμα2 ΑΠΟ άθροισμα προϊόντος

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

Παράδειγμα χρήσης της συνάρτησης MIN():

ΕΠΙΛΕΓΩ MIN (Ποσό) ΩΣ Ελάχιστο 1 FROM Sumproduct

Παράδειγμα χρήσης της συνάρτησης ΜΕΓΙΣΤΗ():

ΕΠΙΛΕΓΩ MAX(Ποσό) AS Max1 FROM Sumproduct

Παράδειγμα χρήσης της συνάρτησης AVG():

ΕΠΙΛΕΓΩ AVG(Ποσό) AS Μέσο 1 FROM Sumproduct

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

ΜΕΤΡΩ()

ΜΕΤΡΩ()- μια συνάρτηση που επιστρέφει τον αριθμό των εγγραφών (γραμμών) του πίνακα. Η σύνταξη μιας συνάρτησης που καθορίζει μια στήλη θα επιστρέψει τον αριθμό των εγγραφών μιας συγκεκριμένης στήλης εξαιρουμένων των εγγραφών NULL. Σύνταξη συνάρτησης:

COUNT(όνομα_στήλης);

Η εγγραφή μιας συνάρτησης με τη μάσκα "*" θα επιστρέψει τον αριθμό όλων των εγγραφών στον πίνακα. Σύνταξη:

ΜΕΤΡΩ(*);

Ας δούμε παραδείγματα. Υπάρχει ο παρακάτω πίνακας Πανεπιστημίων:

ταυτότητα Όνομα Πανεπιστημίου Φοιτητές Σχολές Καθηγητές Τοποθεσία Ιστοσελίδα
1 Εθνικό Πανεπιστήμιο Ερευνών του Περμ 12400 12 1229 Περμανάντ psu.ru
2 Κρατικό Πανεπιστήμιο της Αγίας Πετρούπολης 21300 24 13126 Αγία Πετρούπολη spbu.ru
3 Κρατικό Πανεπιστήμιο του Νοβοσιμπίρσκ 7200 13 1527 Νοβοσιμπίρσκ nsu.ru
4 Κρατικό Πανεπιστήμιο της Μόσχας 35100 39 14358 Μόσχα msu.ru
5 Ανώτερη Οικονομική Σχολή 20335 12 1615 Μόσχα hse.ru
6 Ομοσπονδιακό Πανεπιστήμιο Ural 57000 19 5640 Αικατερινούπολη urfu.ru
7 Εθνικό Ερευνητικό Πυρηνικό Πανεπιστήμιο 8600 10 936 Μόσχα mephi.ru

Παράδειγμα 1. Εκτυπώστε τον αριθμό των εγγραφών πίνακα χρησιμοποιώντας τη συνάρτηση COUNT:

ΕΠΙΛΟΓΗ COUNT(*)
ΑΠΟ Πανεπιστήμια? // εκτυπώσεις 7

Παράδειγμα 2. Βρείτε τον αριθμό των πανεπιστημίων που βρίσκονται στη Μόσχα χρησιμοποιώντας τη συνάρτηση COUNT:

SELECT COUNT(*) FROM Universities WHERE Location = "Moscow"; // εκτυπώσεις 3

AVG()

AVG()- μια συνάρτηση που επιστρέφει τη μέση τιμή μιας στήλης. Αυτή η συνάρτηση ισχύει μόνο για αριθμητικές στήλες. Σύνταξη:

AVG(όνομα_στήλης);

Ας δούμε ένα παράδειγμα. Ας πάρουμε τον πίνακα των Πανεπιστημίων μας. Παράδειγμα. Χρησιμοποιώντας τη συνάρτηση AVG, βρείτε τον μέσο αριθμό φοιτητών (Φοιτητών) όλων των πανεπιστημίων:

ΕΠΙΛΕΞΤΕ AVG(Φοιτητές) ΑΠΟ Πανεπιστήμια. // θα εκτυπώσει 23133

MIN()

MIN()- μια συνάρτηση που επιστρέφει την ελάχιστη τιμή μιας στήλης. Η συνάρτηση έχει την ακόλουθη σύνταξη:

MIN(όνομα_στήλης);

Ας δούμε ένα παράδειγμα. Ας πάρουμε τον πίνακα των Πανεπιστημίων μας. Παράδειγμα. Χρησιμοποιώντας τη συνάρτηση MIN, βρείτε την ελάχιστη τιμή της στήλης Καθηγητές:

ΕΠΙΛΕΞΤΕ MIN(Καθηγητές) ΑΠΟ Πανεπιστήμια. // θα εκτυπώσει 936

ΜΕΓΙΣΤΗ()

ΜΕΓΙΣΤΗ()- μια συνάρτηση που επιστρέφει τη μέγιστη τιμή μιας στήλης πίνακα. Η συνάρτηση έχει την ακόλουθη σύνταξη:

MAX(όνομα_στήλης);

Ας δούμε ένα παράδειγμα. Ας πάρουμε τον πίνακα των Πανεπιστημίων μας. Παράδειγμα. Χρησιμοποιώντας τη συνάρτηση MAX, βρείτε τη μέγιστη τιμή της στήλης Students:

ΕΠΙΛΕΞΤΕ ΜΕΓΙΣΤΟ (Φοιτητές) ΑΠΟ Πανεπιστήμια. // θα βγει 57000

ΑΘΡΟΙΣΜΑ()

ΑΘΡΟΙΣΜΑ()- μια συνάρτηση που επιστρέφει το άθροισμα των τιμών μιας στήλης πίνακα. Χρησιμοποιείται μόνο για αριθμητικές στήλες. Σύνταξη συνάρτησης:

SUM(έκφραση);

Παράμετρος ΟΛΑ- είναι η προεπιλεγμένη επιλογή. Υπολογίζεται το άθροισμα όλων των γραμμών. Κατά τον καθορισμό μιας παραμέτρου ΔΙΑΚΡΙΤΗ- υπολογίζονται μόνο οι μοναδικές τιμές.

Ας δούμε παραδείγματα. Ας πάρουμε τον πίνακα των Πανεπιστημίων μας. Παράδειγμα 1. Χρησιμοποιώντας τη συνάρτηση SUM, βρείτε τον αριθμό των Φοιτητών όλων των πανεπιστημίων στον πίνακα:

ΕΠΙΛΕΞΤΕ ΑΘΡΟ (Φοιτητές) ΑΠΟ Πανεπιστήμια. // θα εκτυπώσει 161935

Παράδειγμα 2. Χρησιμοποιώντας τη συνάρτηση SUM, μετρήστε τις μοναδικές τιμές της στήλης Σχολές:

ΕΠΙΛΕΞΤΕ ΣΥΝΟΛΟ (ΔΙΑΚΡΙΤΕΣ Σχολές) ΑΠΟ Πανεπιστήμια. // θα εμφανίσει 117 (στη στήλη Σχολές υπάρχουν 2 ίδιες εγγραφές, κάτω από το ID 1 και το 5. Η τιμή της στήλης κάτω από το ID 5 δεν αθροίζεται.)

ΓΥΡΟΣ()

ΓΥΡΟΣ()- λειτουργία στρογγυλοποίησης δεκαδικών αριθμών. Λειτουργεί μόνο με αριθμητικές στήλες ή αυθαίρετους πραγματικούς αριθμούς. Σύνταξη συνάρτησης:

ROUND (έκφραση, μήκος);

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

Ας δούμε ένα παράδειγμα. Ας πάρουμε τον πίνακα Πλανήτες:

ταυτότητα Όνομα πλανήτη Ακτίνα κύκλου SunSeason Έτος έναρξης HavingRings Ανοιχτήρι
1 Άρης 3396 687.58 1659 Οχι Κρίστιαν Χάιγκενς
2 Κρόνος 60268 10759.22 - Ναί -
3 Ποσειδώνας 24764 60190.91 1846 Ναί John Couch Adams
4 Ερμής 2439 115.88 1631 Οχι Νικόλαος Κοπέρνικος
5 Αφροδίτη 6051 243.56 1610 Οχι Galileo Galilei

Παράδειγμα. Χρησιμοποιώντας τη συνάρτηση ROUND, στρογγυλοποιήστε τη στήλη SunSeason σε ένα δεκαδικό ψηφίο:

ΕΠΙΛΕΞΤΕ ΣΤΡΟΓΓΥΛΟ(SunSeason, 1) FROM Planets;

UCASE()

UCASE()- μια συνάρτηση που επιστρέφει τις τιμές μιας στήλης ή στηλών με κεφαλαία γράμματα. Στο DBMS του MS SQL Server, ένα ανάλογο της UCASE() είναι η UPPER συνάρτηση με την ίδια σύνταξη:

UCASE(όνομα_στήλης)

Ας δούμε ένα παράδειγμα. Ας πάρουμε το τραπέζι μας Planets. Παράδειγμα. Εκτυπώστε τα ονόματα των πλανητών με κεφαλαία που δεν έχουν δακτυλίους, χρησιμοποιώντας τη συνάρτηση UCASE:

SELECT UCASE(PlanetName) FROM Planets WHERE HavingRings = "No";

LCASE()

LCASE()- μια συνάρτηση που επιστρέφει τις τιμές μιας στήλης ή στηλών με πεζά γράμματα. Στο MS SQL Server DBMS, το ανάλογο του τελεστή SQL LCASE() είναι η συνάρτηση LOWER με την ίδια σύνταξη:

LCASE(όνομα_στήλης);

Ας δούμε ένα παράδειγμα. Ας πάρουμε το τραπέζι μας Planets. Παράδειγμα. Χρησιμοποιώντας τη συνάρτηση LCASE, εκτυπώστε με πεζά τα ονόματα των πλανητών που έχουν δακτυλίους:

SELECT LCASE(PlanetName) FROM Planets WHERE HavingRings = "Yes";

LEN()

LEN()- μια συνάρτηση που επιστρέφει το μήκος της τιμής στο πεδίο εγγραφής. Η συνάρτηση εξαιρεί τα υστερούντα κενά από την καταμέτρηση. Σύνταξη:

LEN(όνομα_στήλης);

Ας δούμε ένα παράδειγμα. Ας πάρουμε το τραπέζι μας Planets. Παράδειγμα. Εκτυπώστε τον ανιχνευτή του πλανήτη (Άνοιγμα) και το μήκος του ονόματος του πλανήτη που ανακάλυψε, χρησιμοποιώντας τη συνάρτηση LEN:

SELECT Opener, LEN(PlanetName) FROM Planets;

ΣΤΑ ΜΕΣΑ()

ΣΤΑ ΜΕΣΑ()- μια συνάρτηση που εμφανίζει έναν ορισμένο αριθμό χαρακτήρων σε ένα πεδίο κειμένου πίνακα. Σύνταξη συνάρτησης:

MID(όνομα_στήλης,έναρξη [,μήκος]);

Παράμετρος αρχήκαθορίζει τη θέση του αρχικού χαρακτήρα. Παράμετρος μήκοςορίζει τον αριθμό των χαρακτήρων που θα εξάγονται ξεκινώντας από τη θέση που καθορίζεται στην παράμετρο έναρξης.

Ας δούμε ένα παράδειγμα. Ας πάρουμε τον παλιό μας πίνακα των Πανεπιστημίων. Παράδειγμα. Εκτυπώστε τους 3 πρώτους χαρακτήρες του ονόματος της πόλης (Τοποθεσία) χρησιμοποιώντας τη συνάρτηση MID:

SELECT MID(Τοποθεσία, 1, 3) FROM University;

ΤΩΡΑ()

ΤΩΡΑ()- μια συνάρτηση που επιστρέφει την ώρα και την ημερομηνία του συστήματος. Σύνταξη συνάρτησης:

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

SELECT UniversityName, Students, NOW() AS Curdate FROM University;

Για να ενοποιήσετε το υλικό, εκτελέστε μόνοι σας ένα παράδειγμα κάθε λειτουργίας. Εάν έχετε οποιεσδήποτε ερωτήσεις, γράψτε στα σχόλια και σίγουρα θα τις απαντήσω.

Σε αυτό το σεμινάριο θα μάθετε πώς δημιουργία και διαγραφή συναρτήσεων στον SQL Server(Transact-SQL) με σύνταξη και παραδείγματα.

Περιγραφή

Στον SQL Server, μια συνάρτηση είναι ένα αποθηκευμένο πρόγραμμα στο οποίο μπορείτε να μεταβιβάσετε παραμέτρους και να επιστρέψετε μια τιμή.

Δημιουργία συνάρτησης

Μπορείτε να δημιουργήσετε τις δικές σας συναρτήσεις στον SQL Server (Transact-SQL). Ας ρίξουμε μια πιο προσεκτική ματιά.

Σύνταξη

Σύνταξη συναρτήσεων στον SQL Server (Transact-SQL):

CREATE FUNCTION όνομα_συνάρτησης
(Τύπος δεδομένων [ @parameter [ AS ]
[=προεπιλογή] [ΜΟΝΟ ΑΝΑΓΝΩΣΗ]
, @parameter [ AS ] τύπος δεδομένων
[ = προεπιλογή ] [ ΜΟΝΟ ΑΝΑΓΝΩΣΗ ] ]
RETURNS return_type
[ ΜΕ ( ΚΡΥΠΤΩΣΗ
| ΣΧΗΜΑΤΙΣΜΟΣ
| ΕΠΙΣΤΡΕΦΕΙ NULL ΣΤΗΝ NULL INPUT
| ΚΛΗΣΗ ΜΕ ΜΗΝ ΕΙΣΟΔΟ
| ΕΚΤΕΛΕΣΤΕ ΩΣ ρήτρα ]
[ΟΠΩΣ ΚΑΙ]
ΑΡΧΙΖΟΥΝ
εκτελέσιμο_τμήμα
RETURN return_value
ΤΕΛΟΣ;

Παράμετροι ή επιχειρήματα

schema_name είναι το όνομα του σχήματος στο οποίο ανήκει αυτή η συνάρτηση.
function_name είναι το όνομα της συνάρτησης στον SQL Server.
@parameter - μία ή περισσότερες παράμετροι που μεταβιβάζονται στη συνάρτηση.
type_schema_name είναι το σχήμα στο οποίο ανήκει ο τύπος δεδομένων, εάν υπάρχει.
τύπος δεδομένων — τύπος δεδομένων για @parameter .
προεπιλογή είναι η προεπιλεγμένη τιμή που πρέπει να εκχωρηθεί στην παράμετρο @parameter.
READONLY - αυτό σημαίνει ότι η @παράμετρος δεν μπορεί να αντικατασταθεί από τη συνάρτηση.
return_datatype — τύπος δεδομένων της συνάρτησης που επιστρέφει την τιμή.
ENCRYPTION - Αυτό σημαίνει ότι η πηγή για τη συνάρτηση δεν θα αποθηκευτεί ως απλό κείμενο σε προβολές συστήματος SQL Server.
SCHEMABINDING - Αυτό σημαίνει ότι τα υποκείμενα αντικείμενα δεν μπορούν να τροποποιηθούν για να επηρεάσουν τη λειτουργία.
RETURNS NULL ON NULL INPUT - Αυτό σημαίνει ότι η συνάρτηση θα επιστρέψει NULL εάν κάποιες παράμετροι είναι NULL, χωρίς να χρειάζεται να εκτελεστεί η συνάρτηση.
CALL ON NULL INPUT - αυτό σημαίνει ότι η συνάρτηση θα εκτελεστεί ακόμα κι αν κάποιες παράμετροι είναι NULL.
EXECUTE AS - Ορίζει το πλαίσιο ασφαλείας για την εκτέλεση της συνάρτησης.
return_value είναι η τιμή που επιστρέφεται από τη συνάρτηση.

Παράδειγμα

Ας δούμε ένα παράδειγμα δημιουργίας συνάρτησης στον SQL Server (Transact-SQL).
Παρακάτω είναι ένα απλό παράδειγμα συνάρτησης:

Transact-SQL

ΔΗΜΙΟΥΡΓΙΑ ΣΥΝΑΡΤΗΣΗΣ ReturnSite (@site_id INT) ΕΠΙΣΤΡΕΦΕΙ VARCHAR(50) ΩΣ ΑΡΧΗ ΔΗΛΩΣΤΕ @site_name VARCHAR(50); ΑΝ @site_id< 10 SET @site_name = "yandex.com"; ELSE SET @site_name = "google.com"; RETURN @site_name; END;

ΔΗΜΙΟΥΡΓΙΑ ΛΕΙΤΟΥΡΓΙΑΣ ReturnSite

(@site_id int)

ΕΠΙΣΤΡΟΦΕΣ ΒΑΡΧΑΡ (50 )

ΑΡΧΙΖΟΥΝ

ΔΗΛΩΣΤΕ @site_name VARCHAR(50);

IF@site_id< 10

SET @ site_name = "yandex.com" ;

ΑΛΛΟΥ

SET @site_name = "google.com" ;

ΕΠΙΣΤΡΟΦΗ @ site_name ;

ΤΕΛΟΣ ;

Αυτή η συνάρτηση ονομάζεται ReturnSite. Έχει μια παράμετρο που ονομάζεται @site_id που είναι τύπος δεδομένων INT. Η συνάρτηση επιστρέφει την τιμή VARCHAR(50) που καθορίζεται στον όρο RETURNS.
Στη συνέχεια, μπορείτε να ανατρέξετε στη νέα λειτουργία ReturnSite όπως αυτή.

Τελευταία ενημέρωση: 29/07/2017

Οι ακόλουθες συναρτήσεις μπορούν να χρησιμοποιηθούν για την εργασία με συμβολοσειρές στην T-SQL:

    LEN: Επιστρέφει τον αριθμό των χαρακτήρων σε μια γραμμή. Ως παράμετρος, μια συμβολοσειρά περνά στη συνάρτηση για την οποία πρέπει να βρεθεί το μήκος:

    SELECT LEN ("Apple") -- 5

    LTRIM: Αφαιρεί τα κύρια κενά από μια συμβολοσειρά. Λαμβάνει τη συμβολοσειρά ως παράμετρο:

    SELECT LTRIM (" Apple")

    RTRIM: Αφαιρεί τα τελικά κενά από μια συμβολοσειρά. Λαμβάνει τη συμβολοσειρά ως παράμετρο:

    SELECT RTRIM(" Apple")

    CHARINDEX: Επιστρέφει το ευρετήριο στο οποίο βρίσκεται η πρώτη εμφάνιση μιας υποσυμβολοσειράς σε μια συμβολοσειρά. Μια υποσυμβολοσειρά μεταβιβάζεται ως πρώτη παράμετρος και η συμβολοσειρά στην οποία γίνεται η αναζήτηση μεταβιβάζεται ως δεύτερη:

    ΕΠΙΛΟΓΗ CHARINDEX("pl", "Apple") -- 3

    PATINDEX: Επιστρέφει το ευρετήριο στο οποίο βρίσκεται η πρώτη εμφάνιση ενός συγκεκριμένου μοτίβου σε μια συμβολοσειρά:

    ΕΠΙΛΟΓΗ PATINDEX("%p_e%", "Apple") -- 3

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

    SELECT LEFT("Apple", 3) -- App

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

    SELECT RIGHT("Apple", 3) -- ple

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

    SELECT SUBSTRING("Galaxy S8 Plus", 8, 2) -- S8

    REPLACE: Αντικαθιστά μια υποσυμβολοσειρά με μια άλλη μέσα σε μια συμβολοσειρά. Η πρώτη παράμετρος της συνάρτησης είναι μια συμβολοσειρά, η δεύτερη είναι η υποσυμβολοσειρά που πρέπει να αντικατασταθεί και η τρίτη είναι η υποσυμβολοσειρά που πρέπει να αντικατασταθεί με:

    ΕΠΙΛΟΓΗ ΑΝΤΙΚΑΤΑΣΤΗΣΗΣ ("Galaxy S8 Plus", "S8 Plus", "Note 8") -- Galaxy Note 8

    REVERSE : αντιστρέφει τη συμβολοσειρά:

    SELECT REVERSE("123456789") -- 987654321

    CONCAT: Συνενώνει δύο χορδές σε μία. Ως παράμετρος, δέχεται 2 ή περισσότερες συμβολοσειρές που πρέπει να συνδεθούν:

    SELECT CONCAT("Tom", " ", "Smith") -- Tom Smith

    LOWER : Μετατρέπει τη συμβολοσειρά σε πεζά:

    SELECT LOWER("Apple") -- apple

    UPPER : μετατρέπει τη συμβολοσειρά σε κεφαλαία

    SELECT UPPER("Apple") -- APPLE

    SPACE: επιστρέφει μια συμβολοσειρά που περιέχει έναν καθορισμένο αριθμό διαστημάτων

Για παράδειγμα, ας πάρουμε τον πίνακα:

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ προϊόντων (Αναγνωριστικό INT IDENTITY PRIMARY KEY, Όνομα προϊόντος NVARCHAR(30) NOT NULL, Κατασκευαστής NVARCHAR(20) NOT NULL, ProductCount INT ΠΡΟΕΠΙΛΟΓΗ 0, Τιμή ΧΡΗΜΑ ΟΧΙ NULL);

Και κατά την ανάκτηση δεδομένων, θα χρησιμοποιήσουμε συναρτήσεις συμβολοσειράς:

SELECT UPPER(LEFT(Manufacturer,2)) AS Συντομογραφία, CONCAT(ProductName, " - ", Manufacturer) AS FullProdName FROM Products ORDER BY Abreviation

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

Εισαγωγή

Χρησιμοποιώντας δηλώσεις SQL, γίνεται διαχείριση και λήψη τιμών και πινάκων για περαιτέρω ανάλυση και εμφάνιση. Είναι ένα σύνολο λέξεων-κλειδιών με τις οποίες το σύστημα κατανοεί τι να κάνει με τα δεδομένα.

Ορίζονται διάφορες κατηγορίες δηλώσεων SQL:

  • ορισμός αντικειμένων βάσης δεδομένων.
  • χειραγώγηση των αξιών?
  • προστασία και έλεγχος·
  • παράμετροι συνεδρίας.
  • πληροφορίες σχετικά με τη βάση δεδομένων·
  • στατική SQL;
  • δυναμική SQL.

Δηλώσεις SQL για χειρισμό δεδομένων

ΕΙΣΑΓΕΤΕ. Εισάγει σειρές σε έναν υπάρχοντα πίνακα. Μπορεί να χρησιμοποιηθεί για μία ή περισσότερες τιμές, που ορίζονται από μια συγκεκριμένη συνθήκη. Για παράδειγμα:

όνομα πίνακα (όνομα στήλης 1, όνομα στήλης 2)

VALUES(τιμή 1, τιμή 2).

Για να χρησιμοποιήσετε την πρόταση INSERT σε πολλαπλές τιμές, χρησιμοποιήστε την ακόλουθη σύνταξη:

όνομα πίνακα 1 (όνομα στήλης 1, όνομα στήλης 2)

ΕΠΙΛΟΓΗ όνομα στήλης 1, όνομα στήλης 2

ΑΠΟ το όνομα του πίνακα 2

ΠΟΥ όνομα πίνακα 2.όνομα στήλης 1>2

Αυτό το ερώτημα θα επιλέξει όλα τα δεδομένα από τον πίνακα 2 που είναι μεγαλύτερα από 2 στη στήλη 1 και θα τα εισαγάγει στην πρώτη.

ΕΚΣΥΓΧΡΟΝΙΖΩ. Όπως υποδηλώνει το όνομα, αυτή η δήλωση ερωτήματος SQL ενημερώνει τα δεδομένα σε έναν υπάρχοντα πίνακα με βάση ένα συγκεκριμένο χαρακτηριστικό.

ΕΝΗΜΕΡΩΣΗ ονόματος πίνακα 1

SET όνομα στήλης 2 = "Vasily"

ΠΟΥ όνομα πίνακα 1.όνομα στήλης 1 = 1

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

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

ΔΙΑΓΡΑΦΗ ΑΠΟ το όνομα του πίνακα

WHERE όνομα πίνακα.όνομα στήλης 1 = 1

Το παραπάνω ερώτημα θα αφαιρέσει από τη βάση δεδομένων όλα τα δεδομένα με την τιμή ένα στην πρώτη στήλη. Δείτε πώς μπορείτε να καθαρίσετε ολόκληρο τον πίνακα:

Δήλωση SELECT

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

Για να επιλέξετε όλα τα δεδομένα από έναν συγκεκριμένο πίνακα, χρησιμοποιήστε το σύμβολο "*".

ΑΠΟ το όνομα του πίνακα 1

Το αποτέλεσμα αυτού του ερωτήματος θα είναι ένα ακριβές αντίγραφο του πίνακα 1.

Και εδώ γίνεται μια επιλογή χρησιμοποιώντας τη συνθήκη WHERE, η οποία ανακτά από τον πίνακα 1 όλες τις τιμές μεγαλύτερες από 2 στη στήλη 1.

ΑΠΟ το όνομα του πίνακα 1

WHERE όνομα πίνακα 1.όνομα στήλης 1 > 2

Μπορείτε επίσης να καθορίσετε στην επιλογή ότι χρειάζονται μόνο ορισμένες στήλες.

ΕΠΙΛΟΓΗ ονόματος πίνακα 1.όνομα στήλης 1

ΑΠΟ το όνομα του πίνακα 1

Το αποτέλεσμα αυτού του ερωτήματος θα είναι όλες οι σειρές με τιμές από τη στήλη 1. Χρησιμοποιώντας εντολές MS SQL, μπορείτε να δημιουργήσετε τον δικό σας πίνακα, αντικαθιστώντας, υπολογίζοντας και αντικαθιστώντας ορισμένες τιμές εν κινήσει.

όνομα πίνακα 1.όνομα στήλης 1

όνομα πίνακα 1.όνομα στήλης 2

όνομα πίνακα 1.όνομα στήλης 3

όνομα πίνακα 1.όνομα στήλης 2 * όνομα πίνακα 1.όνομα στήλης 3 AS SUMMA

ΑΠΟ το όνομα του πίνακα 1

Αυτό το φαινομενικά πολύπλοκο ερώτημα ανακτά όλες τις τιμές από τον Πίνακα 1 και, στη συνέχεια, δημιουργεί νέες στήλες EQ και SUMMA. Το πρώτο είναι γεμάτο με το σύμβολο "+" και το δεύτερο είναι το γινόμενο των δεδομένων από τις στήλες 2 και 3. Το αποτέλεσμα που προκύπτει μπορεί να παρουσιαστεί με τη μορφή πίνακα για να κατανοήσετε πώς λειτουργεί:

Όταν χρησιμοποιείτε τη δήλωση SELECT, μπορείτε να ταξινομήσετε αμέσως τα δεδομένα σύμφωνα με οποιοδήποτε κριτήριο. Η λέξη ORDER BY χρησιμοποιείται για αυτό.

όνομα πίνακα 1.όνομα στήλης 1

όνομα πίνακα 1.όνομα στήλης 2

όνομα πίνακα 1.όνομα στήλης 3

ΑΠΟ το όνομα του πίνακα 1

ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ όνομα στήλης 2

Ο πίνακας που προκύπτει θα μοιάζει με αυτό:

Δηλαδή, όλες οι σειρές ορίστηκαν με τέτοια σειρά ώστε οι τιμές στη στήλη 2 να είναι σε αύξουσα σειρά.

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

Πίνακας "Εργαζόμενοι"

Πίνακας "Μισθός"

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

Υπάλληλοι.Αριθμός

Το ονομα του υπαλληλου

Μισθός.Ποσοστό

Μισθός. Δεδουλευμένα

ΑΠΟ Υπαλλήλους, Μισθός

ΠΟΥ Υπάλληλοι.Αριθμός = Μισθός.Αριθμός

Εδώ επιλέγουμε από δύο διαφορετικούς πίνακες τιμών, συνδυασμένους με αριθμό. Το αποτέλεσμα θα είναι το ακόλουθο σύνολο δεδομένων:

Λίγα περισσότερα για το SELECT. Χρήση αθροιστικών συναρτήσεων

Ένας από τους κύριους χειριστές μπορεί να εκτελέσει ορισμένους υπολογισμούς κατά την ανάκτηση. Για να το κάνει αυτό, χρησιμοποιεί ορισμένες συναρτήσεις και τύπους.

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

ΕΠΙΛΕΞΤΕ ΑΡΘΡΟ (*) ΩΣ Ν

ΑΠΟ Εργαζόμενους

Το αποτέλεσμα είναι ένας πίνακας με μία τιμή και μια στήλη.

Μπορείτε να εκτελέσετε ένα ερώτημα όπως αυτό και να δείτε τι συμβαίνει:

ΠΟΣΟ (Μισθός. Δεδουλευμένα) ΩΣ ΠΟΣΟ

MAX(Μισθός. Δεδομένα) AS MAX

MIN (Μισθός. Δεδομένα) ΩΣ ΕΛΑΧ

AVG (Μισθός. Δεδομένα) ΩΣ SRED

ΑΠΟ Μισθό

Το τελικό τραπέζι θα είναι ως εξής:

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

Ένωση, διασταύρωση και διαφορές

Συνδυάστε πολλαπλά ερωτήματα σε SQL

ΕΠΙΛΟΓΗ Εργαζομένων.Όνομα

ΑΠΟ Εργαζόμενους

ΠΟΥ Εργαζόμενοι.Αριθμός = 1

ΕΠΙΛΟΓΗ Εργαζομένων.Όνομα

ΑΠΟ Υπαλλήλους, Μισθός

ΠΟΥ Μισθός.Αριθμός = 1

Θα πρέπει να ληφθεί υπόψη ότι με μια τέτοια ένωση, οι πίνακες πρέπει να είναι συμβατοί. Δηλαδή, να έχετε τον ίδιο αριθμό στηλών.

ΕΠΙΛΟΓΗ σύνταξης δήλωσης και σειρά επεξεργασίας

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

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

Εάν το ερώτημα περιέχει GROUP BY, τότε οι τιμές ομαδοποιούνται σύμφωνα με τις καθορισμένες παραμέτρους.

Χειριστές για σύγκριση δεδομένων

Υπάρχουν διάφοροι τύποι. Στην SQL, οι τελεστές σύγκρισης μπορούν να δοκιμάσουν διαφορετικούς τύπους τιμών.

    "=". Υποδηλώνει, όπως μπορείτε να μαντέψετε, την ισότητα δύο εκφράσεων. Για παράδειγμα, έχει ήδη χρησιμοποιηθεί στα παραπάνω παραδείγματα - WHERE Μισθός.Αριθμός = 1.

    ">". Περισσότερο σημάδι. Εάν η τιμή της αριστερής πλευράς της παράστασης είναι μεγαλύτερη, τότε επιστρέφεται η λογική TRUE και η συνθήκη θεωρείται ότι ικανοποιείται.

    «<». Знак меньше. Обратный предыдущему оператор.

    σημάδια"<=» и «>=". Διαφέρει από τους απλούς περισσότερο και λιγότερους τελεστές στο ότι αν οι τελεστές είναι ίσοι, η συνθήκη θα είναι επίσης αληθής.

ΑΡΕΣΕΙ

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

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

ΑΠΟ Εργαζόμενους

ΠΟΥ Όνομα ΣΑΝ '%i'

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

ΥΠΟΘΕΣΗ

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

Για παράδειγμα, πρέπει να επιλέξετε τις μέγιστες και ελάχιστες τιμές από τον πίνακα "Μισθός".

Τότε το ερώτημα μπορεί να γραφτεί ως εξής:

ΑΠΟ Μισθό

ΣΕ ΠΕΡΙΠΤΩΣΗ ΟΤΑΝ ΕΠΙΛΕΞΤΕ ΜΕΓΙΣΤΟ(Συσσωρευμένο) ΤΟΤΕ Μέγιστο

ΟΤΑΝ ΕΠΙΛΕΞΕΤΕ MIN(Συσσωρευμένα) ΤΟΤΕ Ελάχιστο

Σε αυτό το πλαίσιο, το σύστημα αναζητά τη μέγιστη και την ελάχιστη τιμή στη στήλη Δεδομένα. Στη συνέχεια, χρησιμοποιώντας το ΤΕΛΟΣ, δημιουργείται ένα πεδίο «σύνολο» στο οποίο θα καταχωρηθεί «Μέγιστο» ή «Ελάχιστο», ανάλογα με το αποτέλεσμα της συνθήκης.

Παρεμπιπτόντως, η SQL έχει επίσης μια πιο συμπαγή μορφή CASE - COALESCE.

Ορισμός δεδομένων χειριστές

Αυτή η προβολή σάς επιτρέπει να πραγματοποιείτε διάφορες τροποποιήσεις σε πίνακες - δημιουργία, διαγραφή, τροποποίηση και εργασία με ευρετήρια.

Το πρώτο που αξίζει να εξετάσετε είναι το CREATE TABLE. Δεν κάνει τίποτα περισσότερο από τη δημιουργία ενός πίνακα. Εάν πληκτρολογήσετε απλώς το ερώτημα CREATE TABLE, δεν θα συμβεί τίποτα, καθώς πρέπει να καθορίσετε πολλές παραμέτρους.

Για παράδειγμα, για να δημιουργήσετε τον ήδη γνωστό πίνακα "Εργαζόμενοι", πρέπει να χρησιμοποιήσετε τις εντολές:

ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΟΥ Εργαζόμενοι

(Αριθμός(10) ΟΧΙ ΜΗΧΑΝΟΣ

Όνομα varchar(50) NOT NULL

Επώνυμο varchar(50) ΟΧΙ NULL)

Σε αυτό το ερώτημα, τα ονόματα των πεδίων και οι τύποι τους καθορίζονται αμέσως σε παρένθεση, καθώς και αν μπορεί να είναι ίσο με NULL.

ΠΡΩΤΟΤΡΑΠΕΖΙ

Εκτελεί μια απλή εργασία - απόρριψη του καθορισμένου πίνακα. Έχει μια πρόσθετη παράμετρο ΑΝ ΥΠΑΡΧΕΙ. Απορροφά ένα σφάλμα πτώσης εάν ο πίνακας που αναζητάτε δεν υπάρχει. Παράδειγμα χρήσης:

DROP TABLE Υπάλληλοι ΑΝ ΥΠΑΡΧΕΙ.

ΔΗΜΙΟΥΡΓΙΑ ΕΥΡΕΤΗΡΙΟΥ

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

ΔΗΜΙΟΥΡΓΙΑ INDEX index_name

ON πίνακα_όνομα(όνομα_στήλης)

Αυτός ο τελεστής χρησιμοποιείται σε T-SQL, Oracle, PL SQL και πολλές άλλες τεχνολογίες ερμηνείας.

ALTER TABLE

Ένας πολύ λειτουργικός χειριστής με πολλές επιλογές. Γενικά, αλλάζει τη δομή, τον ορισμό και την τοποθέτηση των πινάκων. Χρησιμοποιημένος τελεστής σε Oracle SQL, Postgres και πολλούς άλλους.

    ΠΡΟΣΘΗΚΗ. Προσθέτει μια στήλη στον πίνακα. Η σύνταξή του είναι η εξής: ALTER TABLE table_name ADD column_name stored_data_type. Ενδέχεται να έχει μια επιλογή ΑΝ ΔΕΝ ΥΠΑΡΧΕΙ για να αποκρύψει το σφάλμα εάν η στήλη που δημιουργείται υπάρχει ήδη.

    ΠΤΩΣΗ. Αφαιρεί μια στήλη. Διαθέτει επίσης ένα κλειδί IF EXISTS, χωρίς το οποίο θα δημιουργηθεί ένα σφάλμα που θα υποδεικνύει ότι λείπει η απαιτούμενη στήλη.

    ΑΛΛΑΓΗ. Χρησιμεύει για τη μετονομασία του ονόματος πεδίου στο καθορισμένο. Παράδειγμα χρήσης: ALTER TABLE table_name CHANGE old_name new_name;

    ΤΡΟΠΟΠΟΙΩ. Αυτή η εντολή θα σας βοηθήσει να αλλάξετε τον τύπο και τα πρόσθετα χαρακτηριστικά μιας συγκεκριμένης στήλης. Και χρησιμοποιείται ως εξής: ALTER TABLE table_name ΤΡΟΠΟΠΟΙΗΣΗ στήλη_όνομα data_type χαρακτηριστικά.

ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΒΟΛΗ

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

Η διαδικασία δημιουργίας πραγματοποιείται χρησιμοποιώντας ένα απλό αίτημα:

ΔΗΜΙΟΥΡΓΙΑ ονόματος προβολής ΠΡΟΒΟΛΗ ΩΣ ΕΠΙΛΟΓΗ ΑΠΟ * όνομα πίνακα

Η δειγματοληψία μπορεί να πραγματοποιηθεί είτε από ολόκληρη τη βάση δεδομένων είτε βάσει κάποιας συνθήκης.

Λίγα λόγια για τις λειτουργίες

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

    ΜΕΤΡΩ. Μετρά εγγραφές ή σειρές σε έναν συγκεκριμένο πίνακα. Μπορείτε να καθορίσετε το όνομα της στήλης ως παράμετρο και, στη συνέχεια, τα δεδομένα θα ληφθούν από αυτήν. SELECT COUNT * FROM Employes;

    AVG. Ισχύει μόνο για στήλες με αριθμητικά δεδομένα. Το αποτέλεσμά του είναι ο προσδιορισμός του αριθμητικού μέσου όρου όλων των τιμών.

    MIN και MAX. Αυτές οι λειτουργίες έχουν ήδη χρησιμοποιηθεί σε αυτό το άρθρο. Καθορίζουν τις μέγιστες και ελάχιστες τιμές από μια καθορισμένη στήλη.

    ΑΘΡΟΙΣΜΑ. Είναι απλό - η συνάρτηση υπολογίζει το άθροισμα των τιμών της στήλης. Ισχύει αποκλειστικά για αριθμητικά δεδομένα. Με την προσθήκη της παραμέτρου DISTINCT στο ερώτημα, θα αθροίζονται μόνο μοναδικές τιμές.

    ΓΥΡΟΣ. Λειτουργία στρογγυλοποίησης δεκαδικών κλασμάτων. Η σύνταξη χρησιμοποιεί το όνομα της στήλης και τον αριθμό των δεκαδικών ψηφίων.

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

    ΤΩΡΑ. Αυτή η λέξη-κλειδί χρησιμοποιείται για τον υπολογισμό της τρέχουσας ημερομηνίας και ώρας.

Πρόσθετοι Χειριστές

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

    ΟΠΩΣ ΚΑΙ. Χρησιμοποιείται όταν χρειάζεται να μορφοποιήσετε οπτικά το αποτέλεσμα εκχωρώντας το καθορισμένο όνομα στον πίνακα που προκύπτει.

    ΜΕΤΑΞΥ. Ένα πολύ βολικό εργαλείο δειγματοληψίας. Καθορίζει το εύρος των τιμών μεταξύ των οποίων τα δεδομένα πρόκειται να ανακτηθούν. Λαμβάνει ως είσοδο μια παράμετρο από και προς ποιον αριθμό χρησιμοποιείται το εύρος.

    ΔΕΝ. Ο χειριστής δίνει το αντίθετο της έκφρασης.

    ΚΟΛΟΒΟΣ. Διαγράφει δεδομένα από την καθορισμένη ενότητα της βάσης δεδομένων. Διαφέρει από παρόμοιους χειριστές στο ότι είναι αδύνατη η επαναφορά δεδομένων μετά τη χρήση τους. Αξίζει να ληφθεί υπόψη ότι η υλοποίηση αυτής της λέξης-κλειδιού σε διαφορετικές ερμηνείες SQL μπορεί να διαφέρει. Επομένως, πριν προσπαθήσετε να χρησιμοποιήσετε το TRUNCATE, είναι καλύτερο να διαβάσετε τις πληροφορίες βοήθειας.

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

    ΕΝΩΣΗ. Ένας πολύ βολικός τελεστής για το συνδυασμό πολλαπλών ερωτημάτων. Έχει ήδη βρεθεί ανάμεσα σε παραδείγματα αυτού σε αυτό το άρθρο. Μπορείτε να εμφανίσετε τις επιθυμητές σειρές από πολλούς πίνακες συνδυάζοντάς τις με το UNION για πιο βολική χρήση. Η σύνταξή του είναι η εξής: SELECT column_name FROM table_name UNION SELECT other_column_name FROM other_table_name. Το αποτέλεσμα είναι ένας συγκεντρωτικός πίνακας με τα συνδυασμένα ερωτήματα.

    ΠΡΩΤΕΥΩΝ ΚΛΕΙΔΙ. Μεταφράζεται ως "πρωτεύον κλειδί". Στην πραγματικότητα, αυτή είναι ακριβώς η ορολογία που χρησιμοποιείται στα υλικά αναφοράς. Σημαίνει ένα μοναδικό αναγνωριστικό σειράς. Χρησιμοποιείται, κατά κανόνα, κατά τη δημιουργία ενός πίνακα για να υποδείξει το πεδίο που θα τον περιέχει.

    ΠΡΟΚΑΘΟΡΙΣΜΕΝΟ. Ακριβώς όπως ο προηγούμενος τελεστής, χρησιμοποιείται κατά την εκτέλεση της αίτησης δημιουργίας. Καθορίζει την προεπιλεγμένη τιμή με την οποία θα συμπληρωθεί το πεδίο όταν δημιουργηθεί.

    ΜΗΔΕΝΙΚΟ. Οι αρχάριοι και όχι μόνο οι προγραμματιστές, όταν γράφουν ερωτήματα, πολύ συχνά ξεχνούν τη δυνατότητα απόκτησης της τιμής NULL. Ως αποτέλεσμα, ένα σφάλμα εισχωρεί στον κώδικα, το οποίο είναι δύσκολο να εντοπιστεί κατά τον εντοπισμό σφαλμάτων. Επομένως, κατά τη δημιουργία πινάκων, την επιλογή ή τον επανυπολογισμό τιμών, πρέπει να σταματήσετε και να σκεφτείτε εάν λαμβάνεται υπόψη η εμφάνιση NULL σε αυτό το τμήμα του ερωτήματος.

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

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

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

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

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

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

    Τύποι. Για να εξοικονομήσετε χώρο και πόρους, πρέπει να είστε ευαίσθητοι στους τύπους δεδομένων που χρησιμοποιείτε. Εάν είναι δυνατό να χρησιμοποιήσετε έναν τύπο που είναι λιγότερο «βαρύς» για τη μνήμη, τότε θα πρέπει να τον χρησιμοποιήσετε. Για παράδειγμα, εάν γνωρίζετε ότι η αριθμητική τιμή σε ένα δεδομένο πεδίο δεν θα υπερβαίνει το 255, τότε γιατί να χρησιμοποιήσετε ένα INT 4 byte εάν υπάρχει ένα TINYINT 1 byte.

συμπέρασμα

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

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

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



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: