Sql της Access: βασικές έννοιες, λεξιλόγιο και σύνταξη
Applies ToAccess για Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

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

Σε αυτό το άρθρο

Τι είναι το SQL;

Η SQL είναι μια γλώσσα υπολογιστή για την εργασία με σύνολα γεγονότων και τις σχέσεις μεταξύ τους. Τα προγράμματα σχεσιακών βάσεων δεδομένων, όπως η Microsoft Office Access, χρησιμοποιούν SQL για να εργαστούν με δεδομένα. Σε αντίθεση με πολλές γλώσσες υπολογιστή, το SQL δεν είναι δύσκολο να διαβαστεί και να κατανοηθεί, ακόμη και για αρχάριο. Όπως πολλές γλώσσες υπολογιστή, η SQL είναι ένα διεθνές πρότυπο που αναγνωρίζεται από οργανισμούς προτύπων όπως το ISO και το ANSI.

Μπορείτε να χρησιμοποιήσετε SQL για να περιγράψετε σύνολα δεδομένων που μπορούν να σας βοηθήσουν να απαντήσετε σε ερωτήσεις. Όταν χρησιμοποιείτε SQL, πρέπει να χρησιμοποιήσετε τη σωστή σύνταξη. Η σύνταξη είναι το σύνολο των κανόνων με τους οποίους συνδυάζονται σωστά τα στοιχεία μιας γλώσσας. Η σύνταξη SQL βασίζεται στη σύνταξη στα Αγγλικά και χρησιμοποιεί πολλά από τα ίδια στοιχεία με τη σύνταξη Visual Basic for Applications (VBA).

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

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

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

Προτάσεις SELECT

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

  • Ποιοι πίνακες περιέχουν τα δεδομένα.

  • Πώς σχετίζονται τα δεδομένα από διαφορετικές προελεύσεις.

  • Ποια πεδία ή υπολογισμοί θα παράγουν τα δεδομένα.

  • Κριτήρια που πρέπει να συμφωνούν τα δεδομένα για να συμπεριληφθούν.

  • Εάν και πώς μπορείτε να ταξινομήσετε τα αποτελέσματα.

Όροι SQL

Όπως και μια πρόταση, μια πρόταση SQL έχει όρους. Κάθε όρος εκτελεί μια συνάρτηση για την πρόταση SQL. Ορισμένοι όροι απαιτούνται σε μια πρόταση SELECT. Ο παρακάτω πίνακας παραθέτει τους πιο κοινούς όρους SQL.

Όρος SQL

Τι κάνει

Υποχρεωτικό

SELECT

Λίστες τα πεδία που περιέχουν δεδομένα ενδιαφέροντος.

Ναι

FROM

Λίστες τους πίνακες που περιέχουν τα πεδία που παρατίθενται στον όρο SELECT.

Ναι

WHERE

Καθορίζει τα κριτήρια πεδίου που πρέπει να πληρούνται από κάθε εγγραφή που θα συμπεριληφθεί στα αποτελέσματα.

Όχι

ORDER BY

Καθορίζει τον τρόπο ταξινόμησης των αποτελεσμάτων.

Όχι

GROUP BY

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

Μόνο εάν υπάρχουν τέτοια πεδία

HAVING

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

Όχι

Όροι SQL

Κάθε όρος SQL αποτελείται από όρους — συγκρίσιμους με τα μέρη του λόγου. Ο παρακάτω πίνακας παραθέτει τύπους όρων SQL.

Όρος SQL

Συγκρίσιμο μέρος της ομιλίας

Ορισμός

Παράδειγμα

Αναγνωριστικό

Ουσιαστικό

Ένα όνομα που χρησιμοποιείτε για να προσδιορίσετε ένα αντικείμενο βάσης δεδομένων, όπως το όνομα ενός πεδίου.

Τους πελάτες. [Αριθμός τηλεφώνου]

τελεστής

ρήμα ή ρήμα

Μια λέξη-κλειδί που αντιπροσωπεύει μια ενέργεια ή τροποποιεί μια ενέργεια.

AS

σταθερά

Ουσιαστικό

Μια τιμή που δεν αλλάζει, όπως αριθμός ή NULL.

42

παράσταση

Επίθετο

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

>= Προϊόντα. [Τιμή μονάδας]

Αρχή της σελίδας

Βασικοί όροι SQL: SELECT, FROM και WHERE

Μια πρόταση SQL έχει τη γενική μορφή:

SELECT field_1FROM table_1WHERE criterion_1;

Σημειώσεις: 

  • Η Access παραβλέπει αλλαγές γραμμής σε μια πρόταση SQL. Ωστόσο, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε μια γραμμή για κάθε όρο για να βελτιώσετε την αναγνωσιμότητα των προτάσεων SQL για εσάς και τους άλλους.

  • Κάθε πρόταση SELECT τελειώνει σε ελληνικό ερωτηματικό (;). Το ελληνικό ερωτηματικό μπορεί να εμφανιστεί στο τέλος του τελευταίου όρου ή σε μια γραμμή μόνο του στο τέλος της πρότασης SQL.

Παράδειγμα στην Access

Παρακάτω παρουσιάζεται η εμφάνιση μιας πρότασης SQL για ένα απλό ερώτημα επιλογής στην Access:

Καρτέλα αντικειμένου SQL που παρουσιάζει μια πρόταση SELECT

1. Όρος SELECT

2. Όρος FROM

3. Όρος WHERE

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

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

Ο όρος SELECT

SELECT [E-mail Address], Company

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

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

Ένας όρος SELECT δεν χρειάζεται να αναφέρει ποιοι πίνακες περιέχουν τα πεδία και δεν μπορεί να καθορίσει οποιεσδήποτε συνθήκες που πρέπει να πληρούνται από τα δεδομένα που θα συμπεριληφθούν.

Ο όρος SELECT εμφανίζεται πάντα μπροστά από τον όρο FROM σε μια πρόταση SELECT.

Ο όρος FROM

FROM Contacts

Αυτός είναι ο όρος FROM. Αποτελείται από έναν τελεστή (FROM) ακολουθούμενο από ένα αναγνωριστικό (Επαφές).

Ο όρος FROM δεν παραθέτει τα πεδία που θα επιλεγούν.

Ο όρος WHERE

WHERE City="Seattle"

Αυτός είναι ο όρος WHERE. Αποτελείται από έναν τελεστή (WHERE) ακολουθούμενο από μια παράσταση (City="Seattle").

Σημείωση: Σε αντίθεση με τους όρους SELECT και FROM, ο όρος WHERE δεν είναι απαραίτητο στοιχείο μιας πρότασης SELECT.

Μπορείτε να πραγματοποιήσετε πολλές από τις ενέργειες που σας επιτρέπει η SQL, χρησιμοποιώντας τους όρους SELECT, FROM και WHERE. Περισσότερες πληροφορίες σχετικά με τον τρόπο με τον οποίο χρησιμοποιείτε αυτούς τους όρους παρουσιάζονται σε αυτά τα πρόσθετα άρθρα:

Αρχή της σελίδας

Ταξινόμηση των αποτελεσμάτων: ORDER BY

Όπως και στο Microsoft Excel, η Access σάς επιτρέπει να ταξινομείτε τα αποτελέσματα ενός ερωτήματος σε ένα φύλλο δεδομένων. Μπορείτε επίσης να καθορίσετε στο ερώτημα πώς θέλετε να ταξινομούνται τα αποτελέσματα κατά την εκτέλεση του ερωτήματος, χρησιμοποιώντας έναν όρο ORDER BY. Εάν χρησιμοποιείτε έναν όρο ORDER BY, είναι ο τελευταίος όρος στην πρόταση SQL.

Ο όρος ORDER BY περιέχει μια λίστα με τα πεδία που θέλετε να χρησιμοποιήσετε για την ταξινόμηση, με την ίδια σειρά που θέλετε να εφαρμόσετε τις λειτουργίες ταξινόμησης.

Για παράδειγμα, ας υποθέσουμε ότι θέλετε τα αποτελέσματά σας να ταξινομηθούν πρώτα με βάση την τιμή του πεδίου Εταιρεία σε φθίνουσα σειρά και , εάν υπάρχουν εγγραφές με την ίδια τιμή για την Εταιρεία — ταξινομημένες στη συνέχεια κατά τις τιμές στο πεδίο Διεύθυνση ηλεκτρονικού ταχυδρομείου σε αύξουσα σειρά. Ο όρος ORDER BY θα μοιάζει με τον ακόλουθο:

ORDER BY Company DESC, [E-mail Address]

Σημείωση: Από προεπιλογή, η Access ταξινομεί τις τιμές με αύξουσα σειρά (Α-Ω, από τη μικρότερη προς τη μεγαλύτερη). Χρησιμοποιήστε τη λέξη-κλειδί DESC για να ταξινομήσετε τις τιμές με φθίνουσα σειρά.

Για περισσότερες πληροφορίες σχετικά με τον όρο ORDER BY, ανατρέξτε στο θέμα Όρος ORDER BY.

Αρχή της σελίδας

Εργασία με συνοπτικά δεδομένα: GROUP BY και HAVING

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

SELECT COUNT([E-mail Address]), Company

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

Καθορισμός πεδίων που δεν χρησιμοποιούνται σε μια συνάρτηση συγκεντρωτικών αποτελεσμάτων: Ο όρος GROUP BY

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

Ένας όρος GROUP BY ακολουθεί αμέσως τον όρο WHERE ή τον όρο FROM, εάν δεν υπάρχει όρος WHERE. Ένας όρος GROUP BY παραθέτει τα πεδία όπως εμφανίζονται στον όρο SELECT.

Για παράδειγμα, συνεχίζοντας το προηγούμενο παράδειγμα, εάν ο όρος SELECT εφαρμόζει μια συνάρτηση συγκεντρωτικών αποτελεσμάτων στην τιμή [Διεύθυνση ηλεκτρονικού ταχυδρομείου] αλλά όχι στην Εταιρεία, ο όρος GROUP BY θα μοιάζει με τον ακόλουθο:

GROUP BY Company

Για περισσότερες πληροφορίες σχετικά με τον όρο GROUP BY, ανατρέξτε στο θέμα Όρος GROUP BY.

Περιορισμός συγκεντρωτικών τιμών με χρήση κριτηρίων ομάδας: ο όρος HAVING

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

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

SELECT COUNT([E-mail Address]), Company

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

HAVING COUNT([E-mail Address])>1

Σημείωση: Ένα ερώτημα μπορεί να έχει έναν όρο WHERE και έναν όρο HAVING — κριτήρια για πεδία που δεν χρησιμοποιούνται σε μια συνάρτηση συγκεντρωτικών αποτελεσμάτων πηγαίνουν στον όρο WHERE και τα κριτήρια για πεδία που χρησιμοποιούνται με συναρτήσεις συγκεντρωτικών αποτελεσμάτων πηγαίνουν στον όρο HAVING.

Για περισσότερες πληροφορίες σχετικά με τον όρο HAVING, ανατρέξτε στο θέμα Όρος HAVING.

Αρχή της σελίδας

Συνδυασμός αποτελεσμάτων ερωτήματος: UNION

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

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

Σημείωση: Για τους σκοπούς ενός ερωτήματος συνένωσης, οι τύποι δεδομένων "Αριθμός" και "Κείμενο" είναι συμβατοί.

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

Η βασική σύνταξη SQL για ένα ερώτημα συνένωσης που συνδυάζει δύο προτάσεις SELECT είναι η εξής:

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

Για παράδειγμα, ας υποθέσουμε ότι έχετε έναν πίνακα με το όνομα Products και έναν άλλο πίνακα με το όνομα Services. Και οι δύο πίνακες έχουν πεδία που περιέχουν το όνομα του προϊόντος ή της υπηρεσίας, την τιμή, την εγγύηση ή τη διαθεσιμότητα, καθώς και αν προσφέρετε αποκλειστικά το προϊόν ή την υπηρεσία. Παρόλο που ο πίνακας Προϊόντα αποθηκεύει πληροφορίες εγγύησης και ο πίνακας Υπηρεσίες αποθηκεύει πληροφορίες εγγύησης, οι βασικές πληροφορίες είναι οι ίδιες (είτε ένα συγκεκριμένο προϊόν είτε μια υπηρεσία περιλαμβάνει υπόσχεση ποιότητας). Μπορείτε να χρησιμοποιήσετε ένα ερώτημα συνένωσης, όπως το ακόλουθο, για να συνδυάσετε τα τέσσερα πεδία από τους δύο πίνακες:

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

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

Αρχή της σελίδας

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

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