Εάν τα ερωτήματά σας δεν λειτουργούν αρκετά σκληρά, η προσθήκη ορισμένων βασικών προτάσεων SQL μπορεί να σας βοηθήσει να εστιάσετε τα αποτελέσματά σας. Ας δούμε μερικούς τύπους προτάσεων SQL και τους όρους ή τα τμήματα που μπορείτε να επεξεργαστείτε για να λάβετε τα αποτελέσματα που θέλετε.
Σημείωση: Αυτό το άρθρο δεν αφορά εφαρμογές Web της Access - το είδος βάσης δεδομένων που σχεδιάζετε με την Access και δημοσιεύετε στο Internet.
Σε αυτό το άρθρο
Δημιουργία πρότασης Select
Μια πρόταση επιλογής SQL έχει δύο έως τρεις όρους. Ο όρος SELECT υποδεικνύει στη βάση δεδομένων πού πρέπει να αναζητήσει τα δεδομένα και της ζητά να επιστρέψει ένα συγκεκριμένο αποτέλεσμα.
Σημείωση: Οι προτάσεις SELECT τελειώνουν πάντα με ελληνικό ερωτηματικό (;) είτε στο τέλος του τελευταίου όρου είτε σε μια γραμμή μόνη της στο τέλος της πρότασης SQL.
Η παρακάτω πρόταση επιλογής ζητά από την Access να λάβει πληροφορίες από τις στήλες Διεύθυνση ηλεκτρονικού ταχυδρομείου και Εταιρεία, από τον πίνακα "Επαφές", ειδικά από το σημείο όπου βρίσκει το όνομα "Σηάτλ" στη στήλη "Πόλη".
Το παραπάνω ερώτημα έχει τρεις όρους SELECT, FROM και WHERE.
1. Ο όρος SELECT παραθέτει τις στήλες που περιέχουν τα δεδομένα που θέλετε να χρησιμοποιήσετε και διαθέτει έναν τελεστή (SELECT) ακολουθούμενο από δύο αναγνωριστικά (Διεύθυνση ηλεκτρονικού ταχυδρομείου και Εταιρεία). Εάν ένα αναγνωριστικό έχει κενά διαστήματα ή ειδικούς χαρακτήρες (όπως "Διεύθυνση ηλεκτρονικού ταχυδρομείου"), περικλείστε το αναγνωριστικό μέσα σε αγκύλες.
2. Ο όρος FROM προσδιορίζει τον πίνακα προέλευσης. Σε αυτό το παράδειγμα, έχει έναν τελεστή (FROM) ακολουθούμενο από ένα αναγνωριστικό (Επαφές).
3. Ο όρος WHERE είναι ένας προαιρετικός όρος. Το παράδειγμα έχει έναν τελεστή (WHERE) ακολουθούμενο από μια παράσταση (Πόλη="Σιάτλ").
Για περισσότερες πληροφορίες σχετικά με τα ερωτήματα επιλογής, ανατρέξτε στο θέμα Δημιουργία απλού ερωτήματος επιλογής.
Ακολουθεί μια λίστα με κοινούς όρους SQL:
Όρος SQL |
Τι κάνει |
Απαιτείται ; |
SELECT |
Παραθέτει τα πεδία που περιέχουν δεδομένα ενδιαφέροντος. |
Ναι |
FROM |
Παραθέτει τους πίνακες που περιέχουν τα πεδία που παρατίθενται στον όρο SELECT. |
Ναι |
WHERE |
Καθορίζει τα κριτήρια πεδίου που πρέπει να πληρούνται από κάθε εγγραφή που θα συμπεριληφθεί στα αποτελέσματα. |
Όχι |
ORDER BY |
Καθορίζει τον τρόπο ταξινόμησης των αποτελεσμάτων. |
Όχι |
GROUP BY |
Σε μια πρόταση SQL που περιέχει συναρτήσεις συγκεντρωτικών αποτελεσμάτων, παραθέτει πεδία που δεν συνοψίζονται στον όρο SELECT. |
Μόνο εάν υπάρχουν τέτοια πεδία |
HAVING |
Σε μια πρόταση SQL που περιέχει συναρτήσεις συγκεντρωτικών αποτελεσμάτων, καθορίζει τις συνθήκες που ισχύουν για τα πεδία που συνοψίζονται στην πρόταση SELECT. |
Όχι |
Κάθε όρος SQL αποτελείται από όρους. Ακολουθεί μια λίστα με ορισμένους κοινούς όρους SQL.
Όρος SQL |
Ορισμός |
Παράδειγμα |
Αναγνωριστικό |
Ένα όνομα που χρησιμοποιείτε για να προσδιορίσετε ένα αντικείμενο βάσης δεδομένων, όπως το όνομα της στήλης. |
[Διεύθυνση ηλεκτρονικού ταχυδρομείου] και Εταιρεία |
τελεστής |
Μια λέξη-κλειδί που αντιπροσωπεύει μια ενέργεια ή τροποποιεί μια ενέργεια. |
AS |
σταθερά |
Μια τιμή που δεν αλλάζει, όπως αριθμός ή NULL. |
42 |
παράσταση |
Ένας συνδυασμός αναγνωριστικών, τελεστών, σταθερών και συναρτήσεων που επιστρέφει μία τιμή. |
>= Προϊόντα. [Τιμή μονάδας] |
Προσαρμογή του όρου SELECT
Προσαρμογή |
Παράδειγμα |
Για να δείτε μόνο τις διακριτές τιμές. Χρησιμοποιήστε τη λέξη-κλειδί DISTINCT στον όρο SELECT. |
Για παράδειγμα, εάν οι πελάτες σας προέρχονται από πολλά διαφορετικά υποκαταστήματα και ορισμένοι έχουν τον ίδιο αριθμό τηλεφώνου και θέλετε να δείτε έναν αριθμό τηλεφώνου να παρατίθεται μόνο μία φορά, ο όρος SELECT θα είναι ως εξής:
|
Για να αλλάξετε τον τρόπο με τον οποίο εμφανίζεται ένα αναγνωριστικό στην προβολή φύλλου δεδομένων για βελτίωση της αναγνωσιμότητας. Χρησιμοποιήστε τον τελεστή AS (Μια λέξη-κλειδί που αντιπροσωπεύει μια ενέργεια ή τροποποιεί μια ενέργεια) με ένα ψευδώνυμο πεδίου στον όρο SELECT. Το ψευδώνυμο πεδίου είναι ένα όνομα που αντιστοιχίζετε σε ένα πεδίο για να κάνετε πιο ευανάγνωστα τα αποτελέσματα. |
|
Προσαρμογή του όρου FROM
Προσαρμογή |
Παράδειγμα |
Μπορείτε να χρησιμοποιήσετε ένα ψευδώνυμο πίνακα ή ένα διαφορετικό όνομα που αντιστοιχίζετε σε έναν πίνακα σε μια πρόταση επιλογής. Ένα ψευδώνυμο πίνακα είναι χρήσιμο εάν το όνομα του ονόματος πίνακα είναι μεγάλο, ειδικά όταν έχετε πολλά πεδία που έχουν το ίδιο όνομα από διαφορετικούς πίνακες. |
Για να επιλέξετε δεδομένα από δύο πεδία, και τα δύο ονομάζονται "Αναγνωριστικό", ένα από τα οποία προέρχεται από τον πίνακα tblCustomer και το άλλο από τον πίνακα tblOrder:
Χρησιμοποιήστε τον τελεστή AS για να ορίσετε ψευδώνυμα πίνακα στον όρο FROM:
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε αυτά τα ψευδώνυμα πίνακα στον όρο SELECT, ως εξής:
|
Χρησιμοποιήστε συνδέσμους για να συνδυάσετε ζεύγη εγγραφών από δύο προελεύσεις δεδομένων σε ένα μόνο αποτέλεσμα ή για να καθορίσετε εάν θα συμπεριληφθούν εγγραφές από οποιονδήποτε πίνακα, εάν δεν υπάρχει αντίστοιχη εγγραφή στο σχετικό πίνακα. Συνδέστε τους πίνακες έτσι ώστε το ερώτημα να συνδυάζει τα στοιχεία από τους πίνακες και εξαιρεί τα στοιχεία όταν δεν υπάρχει αντίστοιχη εγγραφή στον άλλο πίνακα |
Δείτε πώς μπορεί να μοιάζει ο όρος FROM:
|
Πληροφορίες σχετικά με τη χρήση συνδέσμων
Υπάρχουν δύο τύποι συνδέσμων, οι εσωτερικοί και οι εξωτερικοί σύνδεσμοι. Οι εσωτερικοί σύνδεσμοι είναι πιο συνηθισμένοι στα ερωτήματα. Όταν εκτελείτε ένα ερώτημα με έναν εσωτερικό σύνδεσμο, το αποτέλεσμα εμφανίζει μόνο τα στοιχεία όπου υπάρχει μια κοινή τιμή και στους δύο πίνακες σύνδεσης.
Οι εξωτερικοί σύνδεσμοι καθορίζουν εάν θα συμπεριλαμβάνονται δεδομένα όπου δεν υπάρχει κοινή τιμή. Οι εξωτερικοί σύνδεσμοι είναι κατευθυντικούς, που σημαίνει ότι μπορείτε να καθορίσετε εάν θα συμπεριληφθούν όλες οι εγγραφές από τον πρώτο πίνακα που καθορίζεται στον σύνδεσμο (ονομάζεται αριστερός σύνδεσμος) ή αν θα συμπεριληφθούν όλες οι εγγραφές από τον δεύτερο πίνακα στον σύνδεσμο (που ονομάζεται δεξιός σύνδεσμος). Ένας εξωτερικός σύνδεσμος έχει την ακόλουθη σύνταξη SQL:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
Δείτε περισσότερες πληροφορίες σχετικά με τη χρήση συνδέσμων σε ένα ερώτημα στο θέμα Σύνδεση πινάκων και ερωτημάτων.
Προσαρμογή του όρου WHERE
Ο όρος WHERE περιλαμβάνει κριτήρια που βοηθούν στον περιορισμό του αριθμού των στοιχείων που επιστρέφονται σε ένα ερώτημα. Δείτε παραδείγματα κριτηρίων ερωτήματος και πώς λειτουργούν.
Ένα παράδειγμα του τρόπου με τον οποίο μπορείτε να προσαρμόσετε τον βασικό όρο WHERE είναι να περιορίσετε τα αποτελέσματα ενός ερωτήματος. Ας υποθέσουμε ότι θέλετε να εντοπίσετε τον αριθμό τηλεφώνου ενός πελάτη και μπορείτε να θυμηθείτε μόνο το επώνυμό του ως Bagel. Σε αυτό το παράδειγμα, τα επώνυμα αποθηκεύονται σε ένα πεδίο "Επώνυμο", επομένως η σύνταξη SQL θα είναι:
WHERE [LastName]='Bagel'
Χρησιμοποιήστε επίσης τον όρο WHERE για να συνδυάσετε προελεύσεις δεδομένων για στήλες που έχουν δεδομένα που ταιριάζουν, αλλά διαφορετικούς τύπους δεδομένων. Αυτό είναι χρήσιμο, καθώς δεν μπορείτε να δημιουργήσετε έναν σύνδεσμο μεταξύ πεδίων που έχουν διαφορετικούς τύπους δεδομένων. Χρησιμοποιήστε ένα πεδίο ως κριτήριο για το άλλο πεδίο, με τη λέξη-κλειδί LIKE . Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε δεδομένα από έναν πίνακα "Περιουσιακά στοιχεία" και έναν πίνακα "Υπάλληλοι", μόνο όταν ο τύπος του περιουσιακού στοιχείου στο πεδίο τύπου περιουσιακού στοιχείου του πίνακα "Πάγια" έχει τον αριθμό 3 στο πεδίο "Ποσότητα" του πίνακα "Υπάλληλοι", δείτε πώς θα εμφανίζεται ο όρος WHERE:
WHERE field1 LIKE field2
Σημαντικό: Δεν μπορείτε να καθορίσετε κριτήρια για ένα πεδίο που χρησιμοποιείται με μια συνάρτηση συγκεντρωτικών αποτελεσμάτων σε έναν όρο WHERE. Αντί για αυτό, μπορείτε να χρησιμοποιήσετε έναν όρο HAVING για να καθορίσετε κριτήρια για συγκεντρωτικά πεδία.
Προσαρμογή με τον τελεστή UNION
Χρησιμοποιήστε τον τελεστή UNION όταν θέλετε να δείτε μια συνδυασμένη προβολή των αποτελεσμάτων από πολλά παρόμοια ερωτήματα επιλογής. Για παράδειγμα, εάν η βάση δεδομένων σας έχει έναν πίνακα "Προϊόντα" και έναν πίνακα "Υπηρεσίες" και έχουν και τα δύο τρία πεδία: αποκλειστική προσφορά ή προϊόν ή υπηρεσία, τιμή, εγγύηση ή εγγύηση. Παρόλο που ο πίνακας "Προϊόντα" αποθηκεύει πληροφορίες εγγύησης και ο πίνακας "Υπηρεσίες" αποθηκεύει πληροφορίες εγγύησης, οι βασικές πληροφορίες είναι οι ίδιες. Μπορείτε να χρησιμοποιήσετε ένα ερώτημα συνένωσης για να συνδυάσετε τα τρία πεδία από τους δύο πίνακες ως εξής:
SELECT name, price, warranty, exclusive_offer
FROM Products UNION ALL SELECT name, price, guarantee, exclusive_offer FROM Services;
Όταν εκτελείτε το ερώτημα, τα δεδομένα από κάθε σύνολο αντίστοιχων πεδίων συνδυάζονται σε ένα πεδίο εξόδου. Για να συμπεριλάβετε διπλότυπες γραμμές στα αποτελέσματα, χρησιμοποιήστε τον τελεστή ALL.
Σημείωση: Η πρόταση Select πρέπει να έχει τον ίδιο αριθμό πεδίων εξόδου, με την ίδια σειρά και με τον ίδιο ή συμβατό τύπο δεδομένων. Για τους σκοπούς ενός ερωτήματος συνένωσης, οι τύποι δεδομένων "Αριθμός" και "Κείμενο" είναι συμβατοί.
Για περισσότερες πληροφορίες σχετικά με τα ερωτήματα συνένωσης, ανατρέξτε στο θέμα Χρήση ερωτήματος συνένωσης για την προβολή ενός ενοποιημένου αποτελέσματος από πολλά ερωτήματα.