QUERIES Δημιουργία Ερωτήσεων στην ACCESS Ένα από τα πλεονεκτήματα που προσφέρουν τα ΣΔΒΔ (Συστήματα Διαχείρισης Βάσεων Δεδομένων) είναι η δυνατότητα στον χειριστή να δημιουργεί ερωτήσεις βασισμένος στα υπάρχοντα δεδομένα των πινάκων της βάσης δεδομένων. Για παράδειγμα, όπως είδαμε σε προηγούμενα μαθήματα ο τηλεφωνικός κατάλογος δεν είναι τίποτε άλλο από μια έντυπη βάση δεδομένων. Τι θα μπορούσε να χρειάζεται ένας χρήστης από τον τηλεφωνικό κατάλογο, μα τίποτε άλλο από το τηλέφωνο ενός συγκεκριμένου ατόμου. Στην παρούσα του κατάσταση, ο χρήστης θα έβρισκε την πόλη που κατοικεί το συγκεκριμένο άτομο, και μετά θα έψαχνε το πρώτο γράμμα που αρχίζει το επίθετο του, και τέλος θα ταύτιζε όλα τα δεδομένα (Επίθετο, Όνομα, Διεύθυνση) για να βρει το νούμερο του τηλεφώνου που ζητούσε. Αυτό φυσικά θα έπαιρνε κάποιο χρόνο. Με τον ίδιο τρόπο λειτουργεί και η Ηλεκτρονική Βάση δεδομένων, με την διαφορά, όλες αυτές οι ενέργειες επιτελούνται μέσα σε λίγα δευτερόλεπτα. Μπορούμε έτσι να βρούμε το τηλέφωνο της οικίας του κυρίου Αλεξάντρου Καζακουζηνού που μένει στην Λ. Μακαρίου στην Λεμεσό, ή Όλους τους κατοίκους της οδού Αρμοδίου στην Λεμεσό, ή ακόμη όλους τους ανθρώπους που έχουν το επίθετο Παπαχριστοδουλου, και όλα αυτά μέσα σε λίγα δευτερόλεπτα από την στιγμή που θα ζητήσουμε του συστήματος να κάνει την ανεύρεση. Φυσικά το αυτό δεν γίνεται δια μαγείας, για να επιτευχθεί μια έγκυρη και επιτυχής αναζήτηση θα πρέπει εμείς οι χρήστες να σχεδιάσουμε μια ορθή ερώτηση, και η ACCESS έχει έναν συγκεκριμένο τρόπο να δέχεται ερωτήσεις, μέσω του βοηθήματος QUERIES, και αυτό το βοήθημα θα μελετήσουμε σε αυτό το κεφάλαιο. Το Περιβάλλον QUERIES Για να χρησιμοποιήσουμε το βοήθημα δημιουργίας ερωτήσεων επιλέξτε την εντολή QUERIES από το γενικό παράθυρο της βάσης δεδομένων «Μαθητολόγιο» (1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας 1
Για την δημιουργία μιας νέας ερώτησης επιλέξτε το κουμπί «NEW», και από το νέο παράθυρο που εμφανίζεται επιλέξτε «Design View», ακολούθως πατήστε «ΟΚ» (3) Επιλέξτε «Design View» (2) Επιλέξτε το κουμπί «NEW (4) Στο τέλος πατήστε ΟΚ Το περιβάλλον Ερωτήσεων (QUERIES) εμφανίζεται. Αν το προσέξετε προσεκτικά θα δείτε ότι μοιάζει με ένα πίνακα. Ως πρώτο σας μέλημα είναι να επιλέξετε τον πίνακα ή πίνακες για τους οποίους θα κατασκευάσετε την ερώτηση, στο δικό μας παράδειγμα έχομε μόνο τον πίνακα μαθητολόγιο, για αυτό διαλέξτε τον και πατήστε το κουμπί «ADD» (1) Επιλέξτε τον πίνακα (2) Πατήστε το κουμπί «ADD» Με αυτό τον τρόπο επιτυγχάνουμε την εισαγωγή του πίνακα μας στο σύστημα ερωτήσεων, και το ΣΔΒΔ αντιλαμβάνεται ότι τα πεδία που θα χρησιμοποιήσει είναι από αυτό τον πίνακα. Για να φύγει το παράθυρο «Show Table» επιλέξτε το κουμπί «Close» 2
Επιλέξτε το κουμπί «Close» για να κλείσει το παράθυρο Ο επιλεγμένος πίνακας με τα πεδία του εμφανίζεται σε αυτή την θέση Δημιουργία μιας ερώτησης Αν θέλουμε για παράδειγμα να δείξουμε όλα τα στοιχεία του πίνακα πρέπει να εισάγουμε τα πεδία στην ερώτηση (QUERY), για να επιτευχθεί αυτό διπλό-πατήστε πάνω σε κάθε πεδίο του πίνακα, ή αν θέλετε σύρετε κάθε πεδίο του πίνακα σε μία στήλη της ερώτησης Πίνακας Όνομα Πεδίου εμφανίζεται στην κορυφή των Στηλών της Ερώτησης (QUERY) Όταν λείπει το το πεδίο δεν εμφανίζεται στο αποτέλεσμα της ερώτησης Όνομα Πίνακα 3
Για να τρέξετε την ερώτηση σας πατήστε το κουμπί «RUN» από την ράβδο εργαλείων Το κουμπί RUN Το αποτέλεσμα θα είναι ένας πίνακας με όλες τις εγγραφές που ικανοποιούν τα στοιχεία της ερώτησης σας, στο παράδειγμα όλες οι εγγραφές του πίνακα μαθητολόγιο, πλην του πεδίου ID Επιλέξτε την εντολή «Save As ή Save» από την ράβδο εργαλείων και ονομάστε το αρχείο ερώτησης «Κατάλογος» Αποθηκεύστε το αρχείο με το όνομα Κατάλογος Πατήστε το κουμπί «ΟΚ» Για να επιστρέψετε πίσω στην σχεδίαση της ερώτησης, πατήστε το κουμπί View Design Ταξινόμηση Αν παρατηρήσουμε τα δεδομένα της απάντησης που λάβαμε για την ερώτηση μας, θα αντιληφθούμε ότι αυτά δεν είναι με κάποια λογική σειρά. Θα ήταν καλό να τα βάλουμε σε αλφαβητική σειρά χρησιμοποιώντας το επίθετο, και σε περίπτωση που έχουν το ίδιο επίθετο το Όνομα (φυσικά θα μπορούσαμε να χρησιμοποιήσουμε το πεδίο αύξων αριθμός σε αόρατη μορφή, αλλά ας το αφήσουμε σε αυτό το σημείο). Η ταξινόμηση μπορεί να είναι ΑΥΞΟΥΣΑ (από το μικρό στο μεγάλο) ή ΦΘΙΝΟΥΣΑ (από το μεγάλο στο μικρό). 4
Κάνετε «ΚΛΙΚ» στην γραμμή «SORT» της στήλης «ΕΠΩΝΥΜΟ», έτσι όπως εμφανίζονται τα πεδία στην ερώτηση σας, επιλέξτε το βελάκι, και από την λίστα που εμφανίζεται επιλέξτε «Ascending» (Αύξουσα) (2) Γραμμή «Sort» (1) Πεδίο ΕΠΩΝΥΜΟ (3) Κάντε «ΚΛΙΚ» στο Βέλος, και επιλέξτε την εντολή «Ascending» Τρέξτε την ερώτηση σας πατώντας το κουμπί σε μια λίστα Αύξουσας μορφής. RUN. Το αποτέλεσμα θα μετατραπεί Τα δεδομένα βρίσκονται σε αύξουσα αλφαβητική σειρά Με τον ίδιο τρόπο θα μπορούσαμε να βάλουμε τα δεδομένα να εμφανίζονται σε Φθίνουσα αλφαβητική σειρά επωνύμου. Προσπαθήστε να το κάνετε χρησιμοποιώντας ξανά τα πεδία «ΕΠΩΝΥΜΟ» και «ΟΝΟΜΑ» αλλά την εντολή «Descending» αυτή την φορά. Η πιο κάτω εικόνα δείχνει πως θα μοιάζουν τα πεδία που θα χρησιμοποιήσετε 5
Ερωτήσεις Σύγκρισης ή Συνθηκών Στο υπόλοιπο κεφάλαιο θα ασχοληθούμε με την δημιουργία ερωτήσεων που ή θα πρέπει να συγκρίνουν δύο τιμές ή να ικανοποιήσουν μία συνθήκη. Για παράδειγμα θα θέλαμε να δημιουργήσουμε μια ερώτηση που να έχει ως αποτέλεσμα της, το σύνολο των ονομάτων των μαθητών που είναι εκτοπισθέντες. Αν θυμάστε το πεδίο «ΕΚΤΟΠΙΣΘΗΣ» είναι τύπου «BOOLENA» δηλαδή παίρνει μόνο δυο τιμές «Yes/No». Με αυτή την μορφή το είχαμε δηλώσει όταν σχεδιάζαμε τον πίνακα. Η εμφάνιση αυτού του πεδίου στον πίνακα δεδομένων ή στο πίνακα αποτελεσμάτων μιας ερώτησης είναι σαν ένα κουτάκι, που μέσα έχει ή δεν έχει ένα. Ναι Ναι Το Πεδίο «ΕΚΤΟΠΙΣΘΗΣ», παιρνει δύο τιμές μόνο, Yes ή No, όπως εμφανίζεται, αν το τετραγωνάκι του πεδίου περιέχει το συμβολο τότε σημαίνει ότι η τιμή είναι YES (NAI), αν είναι κενό σημαίνει ΝΟ (ΟΧΙ) Οχι Ναι Οχι Ναι Ναι Οχι Αρχίστε μια καινούργια Ερώτηση (QUERY) για τον πίνακα μαθητολόγιο, επιλέξτε τα πεδία «ΕΠΩΝΥΜΟ», «ΟΝΟΜΑ» και «ΕΚΤΟΠΙΣΘΗΣ». Γραψετε στην γραμμή «Critreria» της στήλης «ΕΚΤΟΠΙΣΘΗΣ» την αγγλική λέξη «YES», και τρέξτε την ερώτηση σας. 6
(1) Επιλέξτε τα πεδία «ΕΠΩΝΥΜΟ», «ΟΝΟΜΑ», «ΕΚΤΟΠΙΣΘΗΣ» (2) Γραψετε στην γραμμή «Critreria» της στήλης «ΕΚΤΟΠΙΣΘΗ Σ» την αγγλική λέξη «YES» Το αποτέλεσμα της ερώτησης δείχνει όλους τους εκτοπισθέντες μαθητές της βάσης δεδομένων μας. Οι εκτοπισθέντες μαθητές Αποθηκεύστε την Ερώτηση σας με το όνομα «Εκτοπισθέντες». Χρησιμοποίησε το κουμπί σχεδιαστικό περιβάλλον από την ράβδο εργαλείων για να επιστρέψετε στο Πρόσθεσε το πεδίο «ΦΥΛΛΟ» στην ερώτηση σου. Με το να διπλό-πατήσετε πάνω στο πεδίο «ΦΥΛΛΟ» αυτό θα προστεθεί αυτόματα στην ερώτηση σας. Στη γραμμή «Criteria» της στήλης «ΦΥΛΛΟ» γράψτε την λέξη «Κορίτσι». Τρέξτε την ερώτηση σας 7
(1) Διπλοπατήστε πάνω στο πεδίο «ΦΥΛΛΟ» και αυτό θα προστεθεί στην (2) Γράψετε την λέξη «Κορίτσι» στη γραμμή«criteria» της στήλης Τρέξτε την ερώτηση σας, το αποτέλεσμα είναι να μας δείξει όλα τα κορίτσια που είναι εκτοπισθέντες Αποθηκεύστε αυτή την ερώτηση με το όνομα «ΕκτοπισθηςΚοριτσι» Στην επόμενη ερώτηση θα προσπαθήσουμε να δείξουμε τους μαθητές που είναι Εκτοπισθέντες ή κορίτσια. Στην προηγούμενη ερώτηση δείχναμε τα άτομα που είναι Εκτοπισθέντες και κορίτσια. Έχομε εδώ δύο όρους, το ΚΑΙ και τον Ή. Στην ερώτηση «Ποιοι είναι Εκτοπισθέντες και Κορίτσι» το αποτέλεσμα είναι ορθό μόνο όταν το άτομο ικανοποιεί και τους δύο όρους της ερώτησης: Εκτοπισθέντα ΚΑΙ Κορίτσι. Ένα τώρα η ερώτηση μετατραπεί σε «Ποιοι είναι Εκτοπισθέντες ή Κορίτσια» το αποτέλεσμα θα είναι ορθό όταν ικανοποιεί τουλάχιστο ένα από τα δύο σκέλη της ερώτησης, ή «κορίτσι» ή «εκτοπισθέντα». Για να δημιουργήσουμε μία ερώτηση τύπου «ή» (OR) σβήστε την λέξη «Yes» από την γραμμή «Criteria» της στήλης «ΕΚΤΟΠΙΣΘΗΣ»και γράψετε την στην γραμμή «or:» της στήλης «ΕΚΤΟΠΙΣΘΗΣ» 8
Γράψετε την λέξη «Yes» στην γραμμή «or:» της στήλης «ΕΚΤΟΠΙΣΘΗΣ» Τρέξτε την ερώτηση σας Παρόμοια περίπτωση είναι όταν θέλουμε το σύστημα να μας υποδείξει όλους τους μαθητές των τμημάτων «Γ4» και «Γ5» Προσπαθήστε εσείς να δημιουργήσετε αυτή την ερώτηση. Το αποτέλεσμα βασισμένο πάνω στα δεδομένα που εμείς βάλαμε θα είναι 9
Αριθμητικές Συγκρίσεις Αριθμητικές Συγκρίσεις γίνονται με τα γνωστά μας συγκριτικά σύμβολα μεγαλύτερο μικρότερο, ίσο κτλ. Ο πιο κάτω πίνακας μας δείχνει τα μαθηματικά σύμβολα και τα αντίστοιχα σύμβολα στην πληροφορική Πίνακας Συμβόλων Σύγκρισης Εξήγηση Μαθηματικά Πληροφορική Μεγαλύτερο > > Μεγαλύτερο Ίσο >= Μικρότερο < < Μικρότερο Ίσο <= Ίσο = = Άνισο <> Ας υποθέσουμε ότι θέλουμε να δούμε όλους τους μαθητές με βαθμό μεγαλύτερο του 15. Δημιουργήστε μια καινούργια ερώτησης με τα πεδία «ΕΠΩΝΥΜΟ», «ΟΝΟΜΑ», «ΤΜΗΜΑ», «ΒΑΘΜΟΣ». Στην γραμμή «Criteria» της στήλης «ΒΑΘΜΟΣ» γράψετε >15 (1) Επιλέξτε τα πεδία «ΕΠΩΝΥΜΟ», «ΟΝΟΜΑ», «ΤΜΗΜΑ», «ΒΑΘΜΟΣ» (2) Γράψετε την συνθήκη >15. Το αποτέλεσμα φαίνεται πιο κάτω, δείχνοντας τα Επώνυμα, Ονόματα, Τμήματα και βαθμό, όλων των μαθητών που ικανοποιούν την συνθήκη, δηλαδή που ο βαθμός τους είναι μεγαλύτερος του 15 10
Στην επόμενη ερώτηση θα δείξουμε τους μαθητές με βαθμό ίσο ή μεγαλύτερο του 15. Όπως θα καταλάβατε η ερώτηση είναι σχεδόν η ίδια με την προηγούμενη, με την μόνη διαφορά να βρίσκεται στο σύμβολο της σύγκρισης. Σε αυτή την περίπτωση χρησιμοποιούμε το σύμβολο >= Το αποτέλεσμα φαίνεται πιο κάτω. Οι βαθμοί των μαθητών που φαίνονται στην απάντηση της ερώτησης είναι όλοι ίσοι ή μεγαλύτεροι του 15 11
Με τον ίδιο τρόπο θα μπορούσαμε να βρούμε τα ονόματα των μαθητών με βαθμό μικρότερο του 15, ή μικρότερο ίσο με το 15 Βαθμός μικρότερος από 15 Βαθμός Μικρότερος Ίσο με 15 12
Σύνδεση δύο αριθμητικών συγκριτικών συνθηκών με την εντολή AND Η εντολή AND όπως μάθαμε σε προηγούμενο μάθημα συνδέει δύο συνθήκες μαζί, και εκτελείται από τον υπολογιστή, όταν και οι δύο συνθήκες αποδειχθεί ότι είναι ορθές. Για παράδειγμα, θέλουμε να βρούμε τα ονοματεπώνυμα και τμήματα όλων των μαθητών που έχουν βαθμό μεγαλύτερο ίσο του 16, αλλά μικρότερο ίσο του 17 Μεγαλύτερο ίσο του 16 Η εντολή AND Μικρότερο ίσο του 17 Το αποτέλεσμα αυτής της ερώτησης θα είναι Σύνδεση δύο αριθμητικών συγκριτικών συνθηκών με την εντολή OR Η εντολή OR μπορεί να συνδέσει δυο συνθήκες μαζί, και επαληθεύεται όταν τουλάχιστο μία από τις συνθήκες αποδειχθεί ότι είναι ορθή. Στην ερώτηση να βρεθούν οι μαθητές με βαθμό μικρότερο του 14 ή μεγαλύτερο του 17, προδιαγράφουμε την χρήση της εντολής OR. 13
Μικρότερο του 14 Μεγαλύτερο του 17 14