Πώς να γράψετε ερωτήματα SQL - λεπτομερή παραδείγματα. Απλά ερωτήματα SQL - σύντομη βοήθεια και παραδείγματα

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

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

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

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

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

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

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

Τι είναι η SQL;

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

Από το 1992, υπάρχει ένα γενικά αποδεκτό πρότυπο που ονομάζεται ANSI SQL. Καθορίζει τη βασική σύνταξη και τις λειτουργίες των τελεστών και υποστηρίζεται από όλους τους ηγέτες της αγοράς DBMS, όπως η ORACLE. Είναι αδύνατο να ληφθούν υπόψη όλες οι δυνατότητες της γλώσσας σε ένα σύντομο άρθρο, επομένως θα εξετάσουμε εν συντομία μόνο βασικά ερωτήματα SQL. Τα παραδείγματα δείχνουν ξεκάθαρα την απλότητα και τις δυνατότητες της γλώσσας:

  • δημιουργία βάσεων δεδομένων και πινάκων.
  • δειγματοληψία δεδομένων·
  • προσθήκη εγγραφών.
  • τροποποίηση και διαγραφή πληροφοριών.

Τύποι δεδομένων SQL

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

Δημιουργούμε πίνακες και βάσεις δεδομένων

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

  • Δηλώσεις SQL μέσω της κονσόλας DBMS
  • Χρησιμοποιώντας τα διαδραστικά εργαλεία διαχείρισης που περιλαμβάνονται στον διακομιστή βάσης δεδομένων.

Μια νέα βάση δεδομένων δημιουργείται από τον χειριστή ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ<наименование базы данных>; . Όπως μπορείτε να δείτε, η σύνταξη είναι απλή και συνοπτική.

Δημιουργούμε πίνακες μέσα στη βάση δεδομένων χρησιμοποιώντας την πρόταση CREATE TABLE με τις ακόλουθες παραμέτρους:

  • όνομα πίνακα
  • ονόματα στηλών και τύποι δεδομένων

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

Δημιουργήστε έναν πίνακα:

ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΟΥ Εμπορεύματος

(commodity_id CHAR(15) NOT NULL,

vendor_id CHAR(15) NOT NULL,

commodity_name CHAR(254) NULL,

commodity_price DECIMAL(8,2) NULL,

commodity_desc VARCHAR(1000) NULL);

Ο πίνακας αποτελείται από πέντε στήλες. Μετά το όνομα ακολουθεί ο τύπος δεδομένων, οι στήλες χωρίζονται με κόμμα. Η τιμή της στήλης μπορεί να δεχθεί κενές τιμές (NULL) ή πρέπει να συμπληρωθεί (NOT NULL), και αυτό καθορίζεται όταν δημιουργείται ο πίνακας.

Ανάκτηση δεδομένων από πίνακα

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

ΕΠΙΛΟΓΗ_όνομα_εμπόρευμα ΑΠΟ εμπόρευμα

Μετά την πρόταση SELECT καθορίζουμε το όνομα της στήλης για να λάβουμε πληροφορίες και το FROM ορίζει τον πίνακα.

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

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

SELECT commodity_id, commodity_name, commodity_price FROM Commodity

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

ΕΠΙΛΟΓΗ * ΑΠΟ εμπόρευμα

  • Επιπλέον, το SELECT υποστηρίζει:
  • Ταξινόμηση δεδομένων (ORDER BY operator)
  • Επιλογή σύμφωνα με τις προϋποθέσεις (ΠΟΥ)
  • Όρος ομαδοποίησης (GROUP BY)

Προσθέστε μια γραμμή

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

  • προσθέστε μια νέα ολόκληρη γραμμή.
  • μέρος κορδόνι?
  • αποτελέσματα ερωτημάτων.

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

INSERT INTO Commodity VALUES("106", "50", "Coca-Cola", "1.68", "Χωρίς αλκοόλη ,)

Το παράδειγμα προσθέτει ένα νέο προϊόν στον πίνακα. Οι τιμές παρατίθενται μετά τις VALUES για κάθε στήλη. Εάν δεν υπάρχει αντίστοιχη τιμή για τη στήλη, τότε πρέπει να καθοριστεί NULL. Οι στήλες συμπληρώνονται με τιμές με τη σειρά που καθορίστηκε κατά τη δημιουργία του πίνακα.

Εάν προσθέσετε μόνο μέρος μιας σειράς, πρέπει να καθορίσετε ρητά τα ονόματα των στηλών, όπως στο παράδειγμα:

INSERT INTO Commodity (commodity_id, vendor_id, commodity_name)

VALUES("106", "50", "Coca-Cola")

Εισαγάγαμε μόνο τα αναγνωριστικά του προϊόντος, τον προμηθευτή και το όνομά του και αφήσαμε κενά τα υπόλοιπα πεδία.

Προσθήκη αποτελεσμάτων ερωτήματος

Το INSERT χρησιμοποιείται κυρίως για την προσθήκη σειρών, αλλά μπορεί επίσης να χρησιμοποιηθεί για την προσθήκη των αποτελεσμάτων μιας πρότασης SELECT.

Αλλαγή δεδομένων

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

  • Όλες οι σειρές στον πίνακα ενημερώνονται.
  • Μόνο για μια συγκεκριμένη γραμμή.

Το UPDATE αποτελείται από τρία κύρια στοιχεία:

  • πίνακα στον οποίο πρέπει να γίνουν αλλαγές·
  • ονόματα πεδίων και οι νέες τιμές τους.
  • προϋποθέσεις για την επιλογή σειρών προς αλλαγή.

Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι η τιμή ενός προϊόντος με ID=106 έχει αλλάξει, επομένως αυτή η γραμμή πρέπει να ενημερωθεί. Γράφουμε τον παρακάτω τελεστή:

ΕΝΗΜΕΡΩΣΗ ΣΕΤ Εμπορευμάτων commodity_price = "3.2" WHERE commodity_id = "106"

Καθορίσαμε το όνομα του πίνακα, στην περίπτωσή μας Commodity, όπου θα γίνει η ενημέρωση, μετά το SET - τη νέα τιμή της στήλης και βρήκαμε την επιθυμητή εγγραφή ορίζοντας την απαιτούμενη τιμή ID στο WHERE.

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

ΕΝΗΜΕΡΩΣΗ ΣΕΤ Εμπορευμάτων commodity_name='Fanta', commodity_price = "3.2" WHERE commodity_id = "106"

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

ΕΝΗΜΕΡΩΣΗ ΣΕΤ Εμπορευμάτων commodity_desc = NULL WHERE commodity_id = "106"

Αφαίρεση σειρών

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

  • Ορισμένες σειρές στον πίνακα διαγράφονται.
  • Όλες οι σειρές στον πίνακα διαγράφονται.

Ένα παράδειγμα διαγραφής μιας γραμμής από έναν πίνακα:

DELETE FROM Commodity WHERE commodity_id = "106"

Μετά το DELETE FROM υποδεικνύουμε το όνομα του πίνακα στον οποίο θα διαγραφούν οι σειρές. Ο όρος WHERE περιέχει την συνθήκη με την οποία οι σειρές θα επιλεγούν για διαγραφή. Στο παράδειγμα, διαγράφουμε τη σειρά προϊόντων με ID=106. Το να προσδιορίσετε το WHERE είναι πολύ σημαντικό γιατί Η παράλειψη αυτής της δήλωσης θα διαγράψει όλες τις σειρές στον πίνακα. Αυτό ισχύει και για την αλλαγή της τιμής των πεδίων.

Η δήλωση DELETE δεν προσδιορίζει ονόματα στηλών ή μεταχαρακτήρες. Διαγράφει πλήρως τις γραμμές, αλλά δεν μπορεί να διαγράψει μία στήλη.

Χρήση SQL στη Microsoft Access

Συνήθως χρησιμοποιείται διαδραστικά για τη δημιουργία πινάκων, βάσεων δεδομένων, για τη διαχείριση, τροποποίηση, ανάλυση δεδομένων σε μια βάση δεδομένων και για την υλοποίηση ερωτημάτων SQL Access μέσω ενός βολικού διαδραστικού σχεδιαστή ερωτημάτων (Query Designer), χρησιμοποιώντας τον οποίο μπορείτε να δημιουργήσετε και να εκτελέσετε αμέσως δηλώσεις SQL οποιασδήποτε πολυπλοκότητας .

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

Επεκτάσεις SQL

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

Οι πιο κοινές διάλεκτοι της γλώσσας:

  • Oracle Database - PL/SQL
  • Interbase, Firebird - PSQL
  • Microsoft SQL Server - Transact-SQL
  • PostgreSQL - PL/pgSQL.

SQL στο Διαδίκτυο

Το MySQL DBMS διανέμεται υπό τη δωρεάν άδεια GNU General Public License. Υπάρχει εμπορική άδεια με δυνατότητα ανάπτυξης προσαρμοσμένων μονάδων. Ως στοιχείο, περιλαμβάνεται στις πιο δημοφιλείς συγκροτήσεις διακομιστών Internet, όπως XAMPP, WAMP και LAMP, και είναι το πιο δημοφιλές DBMS για την ανάπτυξη εφαρμογών στο Διαδίκτυο.

Αναπτύχθηκε από την Sun Microsystems και επί του παρόντος υποστηρίζεται από την Oracle Corporation. Υποστηρίζονται βάσεις δεδομένων μεγέθους έως 64 terabyte, πρότυπο σύνταξης SQL:2003, αναπαραγωγή βάσεων δεδομένων και υπηρεσίες cloud.

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

Γι' αυτό ετοιμάσαμε μια σύντομη περιήγηση στα βασικά της SQL. Ας αρχίσουμε!

1. Δημιουργήστε έναν πίνακα

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

Ας δημιουργήσουμε έναν απλό πίνακα με το όνομα μήνας. Αποτελείται από 3 στήλες:

  • ταυτότητα– Αριθμός μήνα στο ημερολογιακό έτος (ακέραιος).
  • όνομα– Όνομα μήνα (συμβολοσειρά, έως 10 χαρακτήρες).
  • ημέρες– Αριθμός ημερών αυτού του μήνα (ακέραιος).

Έτσι θα μοιάζει το αντίστοιχο ερώτημα SQL:

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ μήνες (αναγνωριστικό int, όνομα varchar(10), ημέρες int)

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

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ μηνών (αναγνωριστικό int, όνομα varchar(10), ημέρες int, ΚΥΡΙΑ ΚΛΕΙΔΙ (όνομα));

ημερομηνία και ώρα
Τύπος δεδομένωνΠεριγραφή
ΗΜΕΡΟΜΗΝΙΑΤιμές ημερομηνίας
ΗΜΕΡΟΜΗΝΙΑ ΩΡΑΟι τιμές ημερομηνίας και ώρας είναι ακριβείς ανά λεπτό
ΧΡΟΝΟΣΧρονικές αξίες

2. Εισαγωγή σειρών

Τώρα ας συμπληρώσουμε τον πίνακα μας μήνεςΧΡΗΣΙΜΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Η προσθήκη εγγραφών σε έναν πίνακα γίνεται χρησιμοποιώντας την πρόταση INSERT. Υπάρχουν δύο τρόποι για να γράψετε αυτήν την οδηγία.

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

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

Εδώ είναι η πρώτη τιμή στη λίστα ΑΞΙΕΣταιριάζει με το όνομα της πρώτης καθορισμένης στήλης κ.λπ.

3. Εξαγωγή δεδομένων από πίνακες

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

Η απλούστερη χρήση της πρότασης SELECT είναι ένα ερώτημα που επιστρέφει όλες τις στήλες και τις σειρές από έναν πίνακα (για παράδειγμα, πίνακες με όνομα χαρακτήρες):

ΕΠΙΛΟΓΗ * ΑΠΟ "χαρακτήρες"

Το σύμβολο του αστερίσκου (*) σημαίνει ότι θέλουμε να λάβουμε δεδομένα από όλες τις στήλες. Δεδομένου ότι οι βάσεις δεδομένων SQL αποτελούνται συνήθως από περισσότερους από έναν πίνακες, είναι απαραίτητο να καθορίσετε τη λέξη-κλειδί FROM, ακολουθούμενη από το όνομα του πίνακα, διαχωρισμένα με ένα κενό.

Μερικές φορές δεν θέλουμε να λαμβάνουμε δεδομένα από όλες τις στήλες ενός πίνακα. Για να γίνει αυτό, αντί για αστερίσκο (*), πρέπει να γράψουμε τα ονόματα των επιθυμητών στηλών, διαχωρισμένα με κόμμα.

SELECT id, όνομα ΑΠΟ μήνα

Επιπλέον, σε πολλές περιπτώσεις θέλουμε τα αποτελέσματα που προκύπτουν να ταξινομούνται με συγκεκριμένη σειρά. Στην SQL το κάνουμε αυτό χρησιμοποιώντας ORDER BY. Μπορεί να δεχθεί έναν προαιρετικό τροποποιητή - ASC (προεπιλογή) ταξινόμηση με αύξουσα σειρά ή DESC, ταξινόμηση με φθίνουσα σειρά:

ΕΠΙΛΟΓΗ αναγνωριστικού, όνομα ΑΠΟ μήνα ΤΑΞΗ ΑΝΑ Όνομα DESC

Όταν χρησιμοποιείτε ORDER BY, βεβαιωθείτε ότι είναι τελευταίο στη δήλωση SELECT. Διαφορετικά θα εμφανιστεί ένα μήνυμα σφάλματος.

4. Φιλτράρισμα δεδομένων

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

Σε αυτό το ερώτημα επιλέγουμε μόνο αυτούς τους μήνες από τον πίνακα μήνας, στις οποίες υπάρχουν περισσότερες από 30 ημέρες χρησιμοποιώντας τον τελεστή μεγαλύτερο από (>).

SELECT ID, όνομα ΑΠΟ μήνα WHERE ημέρες > 30

5. Προηγμένο φιλτράρισμα δεδομένων. τελεστές AND και OR

Προηγουμένως, χρησιμοποιούσαμε φιλτράρισμα δεδομένων χρησιμοποιώντας ένα μόνο κριτήριο. Για πιο σύνθετο φιλτράρισμα δεδομένων, μπορείτε να χρησιμοποιήσετε τους τελεστές AND και OR και τους τελεστές σύγκρισης (=,<,>,<=,>=,<>).

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


ΕΠΙΛΟΓΗ * ΑΠΟ άλμπουμ WHERE είδος = "rock" ΚΑΙ πωλήσεις_σε_εκατομμύρια<= 50 ORDER BY released

6. In/Between/Like

Το WHERE υποστηρίζει επίσης πολλές ειδικές εντολές, επιτρέποντάς σας να ελέγχετε γρήγορα τα πιο συχνά χρησιμοποιούμενα ερωτήματα. Εδώ είναι:

  • IN – χρησιμεύει για να υποδείξει μια σειρά από συνθήκες, οποιαδήποτε από τις οποίες μπορεί να εκπληρωθεί
  • BETWEEN – ελέγχει εάν μια τιμή βρίσκεται εντός του καθορισμένου εύρους
  • LIKE – αναζητά συγκεκριμένα μοτίβα

Για παράδειγμα, αν θέλουμε να επιλέξουμε άλμπουμ με κρότοςΚαι ψυχήμουσική, μπορούμε να χρησιμοποιήσουμε IN("value1","value2") .

ΕΠΙΛΟΓΗ * ΑΠΟ άλμπουμ WHERE IN ("pop","soul");

Αν θέλουμε να κυκλοφορήσουμε όλα τα άλμπουμ μεταξύ 1975 και 1985, πρέπει να γράψουμε:

ΕΠΙΛΟΓΗ * ΑΠΟ άλμπουμ WHERE που κυκλοφόρησε Μεταξύ 1975 ΚΑΙ 1985.

7. Λειτουργίες

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

  • COUNT() – επιστρέφει τον αριθμό των σειρών
  • SUM() - επιστρέφει το συνολικό άθροισμα μιας αριθμητικής στήλης
  • AVG() - επιστρέφει τον μέσο όρο ενός συνόλου τιμών
  • MIN() / MAX() – Λαμβάνει την ελάχιστη/μέγιστη τιμή από μια στήλη

Για να λάβουμε το πιο πρόσφατο έτος στον πίνακά μας, πρέπει να γράψουμε το ακόλουθο ερώτημα SQL:

SELECT MAX (κυκλοφόρησε) ΑΠΟ άλμπουμ.

8. Υποερωτήματα

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

Γνωρίζουμε πώς να λάβουμε αυτές τις συγκεκριμένες στήλες:

ΕΠΙΛΟΓΗ καλλιτέχνη, άλμπουμ, που κυκλοφόρησε ΑΠΟ άλμπουμ.

Ξέρουμε επίσης πώς να αποκτήσουμε το νωρίτερο έτος:

ΕΠΙΛΟΓΗ MIN (κυκλοφόρησε) ΑΠΟ άλμπουμ.

Το μόνο που χρειάζεται τώρα είναι να συνδυάσετε τα δύο ερωτήματα χρησιμοποιώντας WHERE:

ΕΠΙΛΟΓΗ καλλιτέχνη,άλμπουμ,κυκλοφόρησε ΑΠΟ άλμπουμ WHERE κυκλοφορήσει = (ΕΠΙΛΟΓΗ MIN(κυκλοφόρησε) FROM άλμπουμ);

9. Συνένωση τραπεζιών

Σε πιο σύνθετες βάσεις δεδομένων, υπάρχουν πολλοί πίνακες που σχετίζονται μεταξύ τους. Για παράδειγμα, παρακάτω είναι δύο πίνακες σχετικά με βιντεοπαιχνίδια ( βιντεοπαιχνίδια) και προγραμματιστές βιντεοπαιχνιδιών ( game_developers).


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

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

ΕΠΙΛΕΞΤΕ video_games.name, video_games.genre, game_developers.name, game_developers.country ΑΠΟ video_games Εσωτερική συμμετοχή στο game_developers ON video_games.developer_id = game_developers.id;

Αυτός είναι ο απλούστερος και πιο κοινός τύπος JOIN. Υπάρχουν πολλές άλλες επιλογές, αλλά αυτές ισχύουν για λιγότερο συνηθισμένες περιπτώσεις.

10. Ψευδώνυμα

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

Μπορούμε επίσης να συντομεύσουμε το ερώτημα με το ψευδώνυμο των ονομάτων του πίνακα: βιντεοπαιχνίδιαας καλέσουμε Παιχνίδια, game_developers - προγραμματιστές:

ΕΠΙΛΕΞΤΕ games.name, games.genre, devs.name AS προγραμματιστής, devs.country ΑΠΟ video_games AS παιχνίδια INNER JOIN game_developers AS προγραμματιστές ON games.developer_id = devs.id;

11. Ενημέρωση δεδομένων

Συχνά χρειάζεται να αλλάξουμε τα δεδομένα σε ορισμένες σειρές. Στην SQL αυτό γίνεται χρησιμοποιώντας την πρόταση UPDATE. Η δήλωση UPDATE αποτελείται από:

  • Ο πίνακας στον οποίο βρίσκεται η τιμή αντικατάστασης.
  • Ονόματα στηλών και οι νέες τους τιμές.
  • Οι σειρές που επιλέχθηκαν χρησιμοποιώντας το WHERE που θέλουμε να ενημερώσουμε. Εάν αυτό δεν γίνει, όλες οι σειρές στον πίνακα θα αλλάξουν.

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

Δεδομένα πίνακα tv_series UPDATE tv_series SET genre = "drama" WHERE id = 2;

12. Διαγραφή δεδομένων

Η διαγραφή μιας γραμμής πίνακα χρησιμοποιώντας SQL είναι μια πολύ απλή διαδικασία. Το μόνο που χρειάζεται να κάνετε είναι να επιλέξετε τον πίνακα και τη σειρά που θέλετε να διαγράψετε. Ας διαγράψουμε την τελευταία σειρά στον πίνακα από το προηγούμενο παράδειγμα Τηλεοπτική σειρά. Αυτό γίνεται χρησιμοποιώντας την εντολή >ΔΙΑΓΡΑΦΗ.

ΔΙΑΓΡΑΦΗ ΑΠΟ tv_series WHERE id = 4

Να είστε προσεκτικοί όταν γράφετε τη δήλωση DELETE και να βεβαιωθείτε ότι υπάρχει η ρήτρα WHERE, διαφορετικά όλες οι σειρές στον πίνακα θα διαγραφούν!

13. Διαγραφή πίνακα

Εάν θέλουμε να διαγράψουμε όλες τις σειρές αλλά να αφήσουμε τον ίδιο τον πίνακα, χρησιμοποιήστε την εντολή TRUNCATE:

TRUNCATE TABLE table_name;

Στην περίπτωση που θέλουμε πραγματικά να διαγράψουμε τόσο τα δεδομένα όσο και τον ίδιο τον πίνακα, τότε η εντολή DROP θα μας είναι χρήσιμη:

DOP TABLE table_name;

Να είστε πολύ προσεκτικοί με αυτές τις εντολές. Δεν μπορούν να ακυρωθούν!/p>

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

Η δήλωση SQL SELECT προορίζεται για ερωτήματα για την επιλογή δεδομένων από μια βάση δεδομένων. Μπορεί να χρησιμοποιηθεί είτε χωρίς όρους (επιλογή όλων των γραμμών σε όλες τις στήλες ή όλων των γραμμών σε συγκεκριμένες στήλες) είτε με πολλαπλές συνθήκες (επιλογή συγκεκριμένων γραμμών) που καθορίζονται στον όρο WHERE. Ας εξοικειωθούμε με τα εργαλεία SQL που μπορούν να χρησιμοποιηθούν για τη ρύθμιση αυτών των συνθηκών για την επιλογή δεδομένων και επίσης να μάθουμε πώς να χρησιμοποιείτε τη δήλωση SELECT σε υποερωτήματα.

ΕΠΙΛΟΓΗ για να επιλέξετε στήλες πίνακα

Ένα ερώτημα με μια πρόταση SELECT για την επιλογή όλων των στηλών ενός πίνακα έχει την ακόλουθη σύνταξη:

ΕΠΙΛΟΓΗ * ΑΠΟ ΤΟ TABLE_NAME

Δηλαδή, για να επιλέξετε όλες τις στήλες ενός πίνακα, πρέπει να βάλετε έναν αστερίσκο μετά τη λέξη ΕΠΙΛΟΓΗ.

Παράδειγμα 1.Υπάρχει βάση δεδομένων εταιρείας - Εταιρεία. Περιέχει πίνακα Οργάνωση (Δομή Εταιρίας) και Προσωπικό (Εργαζόμενοι). Πρέπει να επιλέξετε όλες τις στήλες από πίνακες. Το αντίστοιχο ερώτημα για την επιλογή όλων των στηλών από τον πίνακα Org είναι το εξής:

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

Αυτό το ερώτημα θα επιστρέψει τα ακόλουθα (για να μεγεθύνετε την εικόνα, κάντε αριστερό κλικ πάνω της):

Το ερώτημα για την επιλογή όλων των στηλών από τον πίνακα Staff μοιάζει με αυτό:

ΕΠΙΛΟΓΗ * ΑΠΟ ΠΡΟΣΩΠΙΚΟ

Αυτό το ερώτημα θα επιστρέψει τα ακόλουθα:


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

ΕΠΙΛΕΞΤΕ ΕΠΙΛΕΓΜΕΝΕΣ_ΣΤΗΛΕΣ ΑΠΟ ΤΟ TABLE_NAME

Παράδειγμα 2.Ας υποθέσουμε ότι πρέπει να επιλέξετε τις στήλες Depnumb και Deptname από τον πίνακα Org, οι οποίες περιέχουν δεδομένα για τους αριθμούς των τμημάτων της εταιρείας και τα ονόματά τους, αντίστοιχα. Το ερώτημα για τη λήψη ενός τέτοιου δείγματος θα είναι το εξής:

ΕΠΙΛΟΓΗ DEPNUMB, DEPTNAME ΑΠΟ ΟΡΓ

Και από τον πίνακα Staff πρέπει να επιλέξετε τις στήλες DEPT, NAME, JOB, οι οποίες αντίστοιχα περιέχουν δεδομένα σχετικά με τον αριθμό του τμήματος στο οποίο εργάζεται ο υπάλληλος, το όνομα και τη θέση του:

ΕΠΙΛΟΓΗ και ORDER BY - ταξινόμηση (παραγγελία) σειρών

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

Παράδειγμα 15.Ας είναι η απαίτηση να επιλέξετε από τον πίνακα Προσωπικού υπαλλήλους που εργάζονται στο τμήμα 84 και να ταξινομήσετε (παραγγείλετε) τις εγγραφές κατά τον αριθμό των ετών εργασίας με αύξουσα σειρά:

Η λέξη ASC υποδηλώνει ότι η σειρά ταξινόμησης είναι αύξουσα. Αυτή η λέξη είναι προαιρετική επειδή η αύξουσα σειρά ταξινόμησης είναι η προεπιλογή. Αποτέλεσμα της αίτησης:


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

Έτσι, στη βάση δεδομένων του φόρουμ μας υπάρχουν τρεις πίνακες: χρήστες (χρήστες), θέματα (θέματα) και αναρτήσεις (μηνύματα). Και θέλουμε να δούμε τι δεδομένα περιέχουν. Υπάρχει ένας τελεστής για αυτό στην SQL ΕΠΙΛΕΓΩ. Η σύνταξη για τη χρήση του είναι η εξής:

SELECT what_select FROM where_select;


Αντί για "what_select" πρέπει να καθορίσουμε είτε το όνομα της στήλης της οποίας τις τιμές θέλουμε να δούμε, είτε τα ονόματα πολλών στηλών που χωρίζονται με κόμμα, είτε το σύμβολο αστερίσκου (*), που σημαίνει την επιλογή όλων των στηλών του πίνακα . Αντί για "from_select" θα πρέπει να καθορίσετε το όνομα του πίνακα.

Ας δούμε πρώτα όλες τις στήλες από τον πίνακα χρηστών:

ΕΠΙΛΟΓΗ * ΑΠΟ χρήστες.

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

ΕΠΙΛΕΞΤΕ id_user ΑΠΟ χρήστες.

Λοιπόν, αν θέλουμε να δούμε, για παράδειγμα, τα ονόματα και τα e-mail των χρηστών μας, τότε θα παραθέσουμε τις στήλες ενδιαφέροντος διαχωρισμένες με κόμματα:

ΕΠΙΛΕΞΤΕ όνομα, email ΑΠΟ χρήστες.

Ομοίως, μπορείτε να δείτε ποια δεδομένα περιέχουν οι άλλοι πίνακες μας. Ας δούμε τι θέματα έχουμε:

ΕΠΙΛΟΓΗ * ΑΠΟ ΘΕΜΑΤΑ.

Τώρα έχουμε μόνο 4 θέματα, αλλά τι γίνεται αν υπάρχουν 100 από αυτά; Θα ήθελα να εμφανίζονται, για παράδειγμα, με αλφαβητική σειρά. Υπάρχει μια λέξη-κλειδί για αυτό στην SQL ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑακολουθούμενο από το όνομα της στήλης με την οποία θα γίνει η ταξινόμηση. Η σύνταξη έχει ως εξής:

ΕΠΙΛΟΓΗ_όνομα_στήλης ΑΠΟ όνομα_πίνακα ΤΑΞΗ ΚΑΤΑ sort_column_name;



Από προεπιλογή η ταξινόμηση είναι σε αύξουσα σειρά, αλλά αυτή μπορεί να αλλάξει προσθέτοντας μια λέξη-κλειδί DESC

Τώρα τα δεδομένα μας ταξινομούνται με φθίνουσα σειρά.

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

Συγκρίνετε το αποτέλεσμα με το αποτέλεσμα του προηγούμενου ερωτήματος.

Πολύ συχνά δεν χρειαζόμαστε όλες τις πληροφορίες από τον πίνακα. Για παράδειγμα, θέλουμε να μάθουμε ποια θέματα δημιουργήθηκαν από τον χρήστη sveta (id=4). Υπάρχει μια λέξη-κλειδί για αυτό στην SQL ΟΠΟΥ, η σύνταξη για ένα τέτοιο αίτημα είναι η εξής:

Για το παράδειγμά μας, η συνθήκη είναι το αναγνωριστικό χρήστη, δηλ. Χρειαζόμαστε μόνο αυτές τις σειρές των οποίων η στήλη id_author περιέχει 4 (user ID sveta):

Ή θέλουμε να μάθουμε ποιος δημιούργησε το θέμα "ποδήλατα":

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

Χειριστής Περιγραφή
= (ίσο) Επιλέγονται τιμές ίσες με την καθορισμένη τιμή

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ ΘΕΜΑΤΑ WHERE id_author=4;

Αποτέλεσμα:

> (περισσότερα) Επιλέγονται τιμές μεγαλύτερες από τις καθορισμένες

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ θέματα WHERE id_author>2;

Αποτέλεσμα:

< (меньше) Επιλέγονται τιμές μικρότερες από τις καθορισμένες

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ θέματα WHERE id_author
Αποτέλεσμα:

>= (μεγαλύτερο ή ίσο με) Επιλέγονται τιμές μεγαλύτερες και ίσες με την καθορισμένη τιμή

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ θέματα WHERE id_author>=2;

Αποτέλεσμα:

<= (меньше или равно) Επιλέγονται τιμές μικρότερες και ίσες με την καθορισμένη τιμή

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ θέματα WHERE id_author
Αποτέλεσμα:

!= (όχι ίσο) Επιλέγονται τιμές που δεν είναι ίσες με την καθορισμένη τιμή

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ θέματα WHERE id_author!=1;

Αποτέλεσμα:

ΔΕΝ ΕΙΝΑΙ ΜΗΧΑΝΟ Επιλέγει σειρές που έχουν τιμές στο καθορισμένο πεδίο

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ ΘΕΜΑΤΑ ΟΠΟΥ το id_author ΔΕΝ ΕΙΝΑΙ NULL.

Αποτέλεσμα:

ΕΙΝΑΙ ΜΗΧΑΝΟ Επιλέγει σειρές που δεν έχουν αξία στο καθορισμένο πεδίο

Παράδειγμα:

ΕΠΙΛΕΞΤΕ * ΑΠΟ ΘΕΜΑΤΑ ΠΟΥ το id_author ΕΙΝΑΙ NULL.

Αποτέλεσμα:

Κενό σύνολο - δεν υπάρχουν τέτοιες γραμμές.

ΜΕΣΑ (μεταξύ) Επιλέγονται οι τιμές μεταξύ των καθορισμένων τιμών

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ ΘΕΜΑΤΑ WHERE id_author BETWEEN 1 AND 3;

Αποτέλεσμα:

IN (περιέχεται η τιμή) Επιλέγονται τιμές που αντιστοιχούν στις καθορισμένες τιμές

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ θέματα WHERE id_author IN (1, 4);

Αποτέλεσμα:

ΔΕΝ ΣΕ (Η τιμή δεν περιλαμβάνεται) Επιλέγονται τιμές άλλες από αυτές που καθορίζονται

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ ΘΕΜΑΤΑ WHERE id_author NOT IN (1, 4);

Αποτέλεσμα:

LIKE (ταίριασμα) Επιλέγονται τιμές που ταιριάζουν με το μοτίβο

Παράδειγμα:

ΕΠΙΛΕΞΤΕ * ΑΠΟ ΘΕΜΑΤΑ ΟΠΟΥ το όνομα_του θέματος LIKE "led%";

Αποτέλεσμα:

Οι πιθανοί μεταχαρακτήρες για τον τελεστή LIKE θα συζητηθούν παρακάτω.

ΔΕΝ ΑΡΕΣΕΙ (δεν ταιριάζει) Επιλέγονται τιμές που δεν ταιριάζουν με το μοτίβο

Παράδειγμα:

ΕΠΙΛΟΓΗ * ΑΠΟ ΘΕΜΑΤΑ ΟΠΟΥ το όνομα_του θέματος ΔΕΝ ΑΡΕΣΕΙ στο "led%";

Αποτέλεσμα:

ΣΑΝ μεταχαρακτήρες χειριστή

Οι αναζητήσεις που χρησιμοποιούν μεταχαρακτήρες μπορούν να πραγματοποιηθούν μόνο σε πεδία κειμένου.

Ο πιο συνηθισμένος μεταχαρακτήρας είναι % . Σημαίνει οποιαδήποτε σύμβολα. Για παράδειγμα, αν θέλουμε να βρούμε λέξεις που ξεκινούν με τα γράμματα "vel", τότε θα γράψουμε LIKE "vel%", και αν θέλουμε να βρούμε λέξεις που περιέχουν τους χαρακτήρες "club", τότε θα γράψουμε LIKE "% Λέσχη%". Για παράδειγμα:

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

Δώστε προσοχή στο διάστημα μεταξύ του μεταχαρακτήρα και του «ψαριού», εάν το παραλείψετε, το αίτημα δεν θα λειτουργήσει, επειδή μεταχαρακτήρας _ σημαίνει ακριβώς έναν χαρακτήρα και ένα διάστημα είναι επίσης χαρακτήρας.

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