Σχεδιασμός ερωτήματος

Άρθρωμα
Περιεχόμενα
Δείκτης 🔎︎

# Σχεδίαση ερωτήματος

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

Για να έχετε πρόσβαση σε αυτήν τη λειτουργία...

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

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

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

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

## Η Προβολή σχεδίασης

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

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

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

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

### Πλήκτρα στην προβολή σχεδίασης ερωτήματος

Πλήκτρο | Συνάρτηση
F4 | Προεπισκόπηση
F5 | Εκτέλεση ερωτήματος
F7 | Προσθήκη πίνακα ή ερωτήματος

## Εξερεύνηση

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

Διπλοπατήστε στα πεδία για να τα προσθέσετε στο ερώτημα. Για να ορίσετε τις σχέσεις χρησιμοποιείστε μεταφορά και απόθεση.

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

### Αφαίρεση πινάκων

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

### Μετακίνηση πίνακα και αλλαγή μεγέθους του

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

## Σχέσεις πινάκων

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

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

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

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

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

### Καθορισμός του τύπου σχέσης

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

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

### Διαγραφή σχέσεων

Για να διαγράψετε μια σχέση μεταξύ δύο πινάκων, πατήστε στη γραμμή σύνδεσης και στη συνέχεια πατήστε το πλήκτρο Delete.

Εναλλακτικά, διαγράψτε τις αντίστοιχες καταχωρίσεις στο Εμπλεκόμενα Πεδία στον διάλογο Σχέσεις. Ή πατήστε το πλήκτρο Tab μέχρι το διάνυσμα σύνδεσης να εμφανιστεί επισημασμένο, μετά πατήστε τον συνδυασμό πλήκτρων Shift+F10 για να ανοίξει το μενού περιβάλλοντος και επιλέξτε την εντολή Διαγραφή.

## Καθορισμός του ερωτήματος

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

### Καθορισμός ονομάτων πεδίου

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

### Διαγραφή ονομάτων πεδίου

Για να διαγράψετε ένα όνομα πεδίου από το ερώτημα, πατήστε στην κεφαλίδα του πεδίου και επιλέξτε την εντολή Διαγραφή από το μενού περιβάλλοντος της στήλης.

### Αποθήκευση του ερωτήματος

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

#### Σχήμα

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

#### Όνομα ερωτήματος ή όνομα προβολής πίνακα

Εισαγάγετε το όνομα του ερωτήματος ή της προβολής πίνακα.

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

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

#### Πεδίο

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

#### Ψευδώνυμο

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

Στις δηλώσεις SQL, τα ψευδώνυμα ορίζονται ως εξής:

SELECT στήλη AS ψευδώνυμο FROM πίνακας.

Παραδείγματος χάρη:

SELECT "ΑρΠαρ" AS "ΑριθμΠαρτίδας" FROM "Παρτίδες"

#### Πίνακας

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

#### Ταξινόμηση

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

#### Ορατό

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

#### Κριτήρια

Ορίζει τα κριτήρια με τα οποία θα φιλτράρονται τα περιεχόμενα των πεδίων δεδομένων.

#### ή

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

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

### Συναρτήσεις

Οι συναρτήσεις που είναι διαθέσιμες εδώ εξαρτώνται από αυτές που παρέχονται από τη μηχανή της βάσης δεδομένων.

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

Επιλογή | SQL | Αποτέλεσμα
Καμία συνάρτηση |  | Δεν θα εκτελεστεί καμία συνάρτηση.
Μέσος όρος | AVG | Υπολογίζει τον αριθμητικό μέσο όρο του πεδίου.
Καταμέτρηση | COUNT | Προσδιορίζει τον αριθμό των εγγραφών του πίνακα. Για τα κενά πεδία μπορείτε είτε να μετρηθούν (a), ή να αποκλειστούν (b). a) COUNT(*): Μεταβιβάζοντας έναν αστερίσκος ως το όρισμα μετράει όλες τις εγγραφές στον πίνακα. b) COUNT(στήλη): Περνώντας ένα όνομα πεδίου ως πλήθος ορισμάτων υπολογίζει μόνο αυτές τις εγγραφές για πεδία στα οποία το εξεταζόμενο όνομα πεδίου περιέχει τιμή. Οι εγγραφές με πεδία που έχουν μηδενική τομή (Null ) (δηλαδή πεδία που δεν περιέχουν χαρακτήρες) δεν θα μετρηθεί.
Μέγιστο | MAX | Προσδιορίζει τη μέγιστη τιμή μιας εγγραφής για αυτό το πεδίο.
Ελάχιστο | MIN | Προσδιορίζει την ελάχιστη τιμή μιας καταχώρισης για αυτό το πεδίο.
Άθροισμα | SUM | Υπολογίζει το άθροισμα των τιμών των εγγραφών για τα συσχετισμένα πεδία.
Ομαδοποίηση | GROUP BY | Ομαδοποιεί τα δεδομένα του ερωτήματος σύμφωνα με το επιλεγμένο όνομα πεδίου. Οι συναρτήσεις εκτελούνται σύμφωνα με τις καθορισμένες ομάδες. Στην SQL, αυτή η επιλογή αντιστοιχεί στην πρόταση GROUP BY. Εάν προστεθεί ένα κριτήριο, αυτή η καταχώρηση εμφανίζεται στην SQL ως υποπρόταση HAVING.

Μπορείτε, επίσης, να εισαγάγετε κλήσεις συναρτήσεων απευθείας στην πρόταση SQL. Η σύνταξη είναι:

SELECT FUNCTION(στήλη) FROM πίνακας.

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

SELECT SUM("Τιμή") FROM "Αντικείμενο".

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

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

You can also assign aliases to function calls. If you do not want to display the query string in the column header, enter a desired substitute name under Alias.

Η αντίστοιχη συνάρτηση σε μια πρόταση SQL είναι:

SELECT FUNCTION() AS ψευδώνυμο FROM πίνακας

Παράδειγμα:

SELECT COUNT(*) AS πλήθος FROM "Αντικείμενο"

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

Παραδείγματα

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

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

1. Εισαγάγετε τους πίνακες "Αντικείμενο" και "Προμηθευτές" στη σχεδίαση του ερωτήματος.

2. Συνδέστε τα πεδία "Κωδ._προμηθευτή" των δύο πινάκων, εάν δεν υφίσταται ήδη μια σχέση αυτού του τύπου.

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

4. Εισαγάγετε ως κριτήριο >3 και απενεργοποιήστε το ορατό πεδίο.

5. Διπλοπατήστε στο πεδίο "Όνομα_προμηθευτή" του πίνακα "Προμηθευτές" και επιλέξτε τη συνάρτηση Group.

6. Εκτελέστε το ερώτημα.

Εάν τα πεδία "Τιμή" (για την μεμονωμένη τιμή ενός αντικειμένου) και "Κωδ.προμηθευτή" (για τον προμηθευτή του είδους) υπάρχουν στον πίνακα "Αντικείμενο", μπορείτε να λάβετε τη μέση τιμή του είδους που παρέχει ένας προμηθευτής με το εξής ερώτημα:

1. Εισαγάγετε τον πίνακα "Αντικείμενο" στη σχεδίαση του ερωτήματος.

2. Διπλοπατήστε στα πεδία "Τιμή" και "Κωδ._προμηθευτή".

3. Ενεργοποιήστε τη γραμμή Συνάρτηση και επιλέξτε τη συνάρτηση Average από το πεδίο "Τιμή".

4. Μπορείτε, επίσης, να εισαγάγετε "Average" στη γραμμή για το όνομα του ψευδωνύμου (χωρίς τα εισαγωγικά).

5. Επιλέξτε Group για το πεδίο "Κωδ._προμηθευτή".

6. Εκτελέστε το ερώτημα.

Οι παρακάτω εντολές μενού περιβάλλοντος και τα σύμβολα είναι διαθέσιμες :

### Συναρτήσεις

Εμφανίζει ή κρύβει μια γραμμή για την επιλογή συναρτήσεων.

### Όνομα πίνακα

Εμφανίζει ή αποκρύπτει τη γραμμή για το όνομα του πίνακα.

### Όνομα ψευδωνύμου

Εμφανίζει ή αποκρύπτει τη γραμμή για το όνομα του ψευδωνύμου.

### Διακριτές τιμές

Ανακτά μόνο διακριτές τιμές από το ερώτημα. Αυτό εφαρμόζεται σε πολλαπλές εγγραφές που μπορεί να περιέχουν πολλές επαναλαμβανόμενες εμφανίσεις δεδομένων στα επιλεγμένα πεδία. Εάν η εντολή Distinct Values (Διακριτές τιμές) είναι ενεργή, θα δείτε μόνο μία εγγραφή στο ερώτημα (DISTINCT). Ειδάλλως, θα δείτε όλες τις εγγραφές που αντιστοιχούν στα κριτήρια του ερωτήματος (ALL).

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

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

Στην SQL, αυτή η εντολή αντιστοιχεί στο κατηγόρημα DISTINCT.

### Όριο

Επιτρέπει τον περιορισμό του μέγιστου αριθμού των εγγραφών που επιστρέφονται από ερώτημα.

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

### Διατύπωση των συνθηκών φιλτραρίσματος

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

Τελεστής | Σημαίνει | Η συνθήκη ικανοποιείται εάν...
= | ισούται με | ... το περιεχόμενο του πεδίου είναι ταυτόσημο με την εμφανιζόμενη έκφραση. Ο τελεστής = δεν θα εμφανίζεται στα πεδία του ερωτήματος. Εάν εισαγάγετε τιμή χωρίς τελεστή, ο τελεστής = θα επιλεγεί αυτόματα .
<> | δεν ισούται με | ... το περιεχόμενο του πεδίου δεν αντιστοιχεί στην καθορισμένη παράσταση.
> | μεγαλύτερο από | ... το περιεχόμενο του πεδίου είναι μεγαλύτερο από την καθορισμένη παράσταση.
< | μικρότερο από | ... το περιεχόμενο του πεδίου είναι μικρότερο από την καθορισμένη παράσταση.
>= | μεγαλύτερο από ή ίσο με | ... το περιεχόμενο του πεδίου είναι μεγαλύτερο ή ίσο από την καθορισμένη παράσταση.
<= | μικρότερο από ή ίσο με | ... το περιεχόμενο του πεδίου είναι μικρότερο από ή ίσο με την καθορισμένη παράσταση.

εντολή του LibreOffice | Εντολή SQL | Σημαίνει | Η συνθήκη ικανοποιείται εάν...
IS EMPTY | IS NULL | είναι κενή | ... το πεδίο δεν περιέχει δεδομένα. Για τα πεδία Ναι/Όχι με τρεις δυνατές καταστάσεις, αυτή η εντολή ελέγχει αυτόματα τη μη προσδιορισμένη κατάσταση (ούτε Ναι ούτε Όχι).
IS NOT EMPTY | IS NOT NULL | δεν είναι κενό | ... το πεδίο δεν είναι κενό, δηλαδή περιέχει δεδομένα.
LIKE δεσμευτικό θέσης (*) για οποιονδήποτε αριθμό χαρακτήρων δεσμευτικό θέσης (?) για ακριβώς έναν χαρακτήρα | LIKE δεσμευτικό θέσης (%) για οποιονδήποτε αριθμό χαρακτήρων Δεσμευτικό θέσης (_) για ακριβώς έναν χαρακτήρα | είναι στοιχείο του | ... το πεδίο δεδομένων πρέπει να περιέχει την εμφανιζόμενη συμβολοσειρά αναζήτησης στη δεδομένη σειρά. Η θέση του δεσμευτικού θέσης (*) δείχνει εάν η αναζήτηση για συμβολοσειρά (x) συμβαίνει πριν το δεσμευτικό θέσης (x*), μετά το δεσμευτικό θέσης (*x) ή μεταξύ των δεσμευτικών θέσης (*x*). Αντί για το οικείο δεσμευτικό θέσης (*) του συστήματος αρχείων, μπορείτε επίσης να χρησιμοποιήσετε τον χαρακτήρα (%) της SQL ως δεσμευτικό θέσης σε ερωτήματα SQL στη διεπαφή του LibreOffice. Το δεσμευτικό θέσης (*) ή (%) αντιπροσωπεύει οποιονδήποτε αριθμό χαρακτήρων. Το ερωτηματικό (?) στη διεπαφή του LibreOffice ή ο χαρακτήρας υπογράμμισης (_) σε ερωτήματα της SQL χρησιμοποιούνται για την αναπαράσταση ενός χαρακτήρα ακριβώς.
NOT LIKE | NOT LIKE | δεν είναι στοιχείο του | ... το πεδίο δεν περιέχει δεδομένα που να έχουν τη συγκεκριμένη έκφραση.
BETWEEN x AND y | BETWEEN x AND y | βρίσκεται στο διάστημα [x,y] | ... το πεδίο περιέχει μια τιμή δεδομένων που βρίσκεται μεταξύ των τιμών x και y.
NOT BETWEEN x AND y | NOT BETWEEN x AND y | Δεν βρίσκεται στο διάστημα [x,y] | ... το πεδίο περιέχει μια τιμή δεδομένων που δεν βρίσκεται μεταξύ των τιμών x και y.
IN (a; b; c...) Σημειώστε ότι το ελληνικό ερωτηματικό (αγγλικό ;) χρησιμοποιείται ως διαχωριστικό σε όλους τους καταλόγους τιμών! | IN (a, b, c...) | περιέχει τα a, b, c... | ... το όνομα του πεδίου περιέχει μία από τις καθορισμένες παραστάσεις a, b, c,... Οποιοσδήποτε αριθμός εκφράσεων μπορεί να καθοριστεί και το αποτέλεσμα του ερωτήματος θα ορίζεται από έναν τελεστή Μπουλ OR. Οι εκφράσεις a, b, c... μπορεί να είναι αριθμοί ή χαρακτήρες.
NOT IN (a; b; c...) | NOT IN (a, b, c...) | δεν περιέχει τα a, b, c... | .. το πεδίο δεν περιέχει καμία από τις καθορισμένες εκφράσεις a, b, c,...
= TRUE | = TRUE | έχει τιμή True | ... το όνομα του πεδίου έχει την τιμή True.
= FALSE | = FALSE | έχει την τιμή false | ... η τιμή δεδομένων πεδίου είναι ορισμένη σε false.

### Παραδείγματα

='Ms.' | επιστρέφει τα ονόματα των πεδίων με περιεχόμενο πεδίου "Κα"
<'2001-01-10' | επιστρέφει τις ημερομηνίες πριν τις 10 Ιανουαρίου 2001
LIKE 'g?ve' | επιστρέφει εγγραφές με περιεχόμενο πεδίου όπως "καλό" και "κακό".
LIKE 'S*' | επιστρέφει εγγραφές με περιεχόμενα πεδίου όπως "Φως".
BETWEEN 10 AND 20 | επιστρέφει εγγραφές με περιεχόμενο πεδίου μεταξύ των τιμών 10 και 20. (Τα πεδία μπορεί να είναι πεδία κειμένου ή αριθμών).
IN (1; 3; 5; 7) | επιστρέφει εγγραφές με τιμές 1, 3, 5, 7. Εάν το όνομα πεδίου περιέχει, παραδείγματος χάρη, τον αριθμό ενός προϊόντος, μπορείτε να δημιουργήσετε ένα ερώτημα, το οποίο θα επιστρέφει το προϊόν με τον συγκεκριμένο αριθμό.
NOT IN ('Smith') | επιστρέφει εγγραφές που δεν περιέχουν το "Παπαδόπουλος".

Like Escape Sequence: {escape 'escape-character'}

Παράδειγμα: Επιλέξτε * από αντικείμενα με όνομα του αντικειμένου όπως 'Το *%' {escape '*'}

Το παράδειγμα αυτό σας παρέχει όλες τις καταχωρήσεις όπου το όνομα του αντικειμένου ξεκινά με 'Το *'. Αυτό σημαίνει ότι μπορείτε επίσης να αναζητάτε χαρακτήρες που σε άλλη περίπτωση θα ερμηνευόντουσαν ως δεσμευτικά θέσης, όπως τα *, ?, _, % ή η τελεία.

Outer Join Escape Sequence: {oj outer-join}

Παράδειγμα: select Article.* from {oj item LEFT OUTER JOIN orders ON item.no=orders.ANR}

### Ερωτήματα πεδίων κειμένου

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

### Ερωτήματα για πεδία ημερομηνίας

Τα Πεδία ημερομηνίας αναπαριστάνονται ως #Date# για τον σαφή καθορισμό τους ως ημερομηνίες. Οι σταθερές ημερομηνίας, ώρας και ημερομηνίας/ώρας (κυριολεκτικές) που χρησιμοποιούνται στις συνθήκες μπορούν να είναι είτε του τύπου σύνταξης SQL Escape, ή της προεπιλεγμένης σύνταξης SQL2.

Στοιχείο τύπου ημερομηνίας | Η σύνταξη #1 του SQL Escape - μπορεί να είναι κατηργημένη | Η σύνταξη #2 του SQL Escape | Σύνταξη SQL2
Ημερομηνία | {D'YYYY-MM-DD'} | {d 'YYYY-MM-DD'} | 'YYYY-MM-DD'
Ώρα | {D'HH:MM:SS'} | {t 'HH:MI:SS[.SS]'} | 'HH:MI:SS[.SS]'
ΗμερομηνίαΏρα | {D'YYYY-MM-DD HH:MM:SS'} | {ts 'YYYY-MM-DD HH:MI:SS[.SS]'} | 'YYYY-MM-DD HH:MI:SS[.SS]'

Παράδειγμα: select {d '1999-12-31'} από world.years

Παράδειγμα: επιλέξτε * από τον πινακαμου όπου τα έτη='1999-12-31'

Όλες οι εκφράσεις ημερομηνίας (κυριολεκτικές ημερομηνίες) πρέπει να περικλείονται με απλά εισαγωγικά. (Συμβουλευτείτε την παραπομπή για τη συγκεκριμένη βάση δεδομένων και τον συνδυασμό που χρησιμοποιείτε για περισσότερες λεπτομέρειες.)

### Ερωτήματα με πεδία Ναι/Όχι

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

Κατάσταση | Κριτήριο ερωτήματος | Παράδειγμα
Ναι | για πίνακες dBASE: άνιση με οποιαδήποτε δοθείσα τιμή | Το =1 επιστρέφει όλες τις εγγραφές όπου το πεδίο Ναι/Όχι βρίσκεται στην κατάσταση "Ναι" ή "Ενεργό" (επιλεγμένο με μαύρο),
Όχι | . | Το =0 επιστρέφει όλες τις εγγραφές για τις οποίες το πεδίο Ναι/Όχι βρίσκεται στην κατάσταση "Όχι" ή "Ανενεργό" (χωρίς επιλογή).
Κενό | IS NULL | Το IS NULL επιστρέφει όλες τις εγγραφές για τις οποίες το πεδίο Ναι/Όχι δεν έχει καμία από τις καταστάσεις Ναι ή Όχι (επιλεγμένες με γκρι).

Η σύνταξη εξαρτάται από το χρησιμοποιούμενο σύστημα της βάσης δεδομένων. Θα πρέπει να σημειώσετε επίσης ότι τα πεδία Ναι/Όχι μπορούν να οριστούν διαφορετικά (μόνο 2 καταστάσεις αντί για 3).

### Παραμετρικά ερωτήματα

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

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

Στην πιο απλή περίπτωση, όπου ο χρήστης εισάγει μια τιμή που συμφωνεί με ισότητα, το παραμετρικό όνομα με την προηγούμενη διπλή τελεία-colon εισάγεται απλά στη γραμμή κριτηρίων. Στην κατάσταση SQL αυτό πρέπει να πληκτρολογηθεί ως WHERE "Field" = :Parameter_name

Τα παραμετρικά ονόματα δεν πρέπει να περιέχουν οποιονδήποτε από τους χαρακτήρες <space>`!"$%^*()+={}[]@'~#<>?/,. Δεν μπορούν να είναι τα ίδια με τα ονόματα πεδίων ή τις κρατημένες λέξεις του SQL. Μπορούν να είναι τα ίδια με ψευδώνυμα.

Μια χρήσιμη δόμηση για επιλογή καταχωρίσεων με βάση τμήματα περιεχομένου ενός πεδίου κειμένου είναι να προσθέσετε μια κρυφή στήλη με το "LIKE '%' || :Part_of_field || '%'" ως κριτήριο. Αυτό θα επιλέξει τις εγγραφές με ακριβή συμφωνία. Αν επιθυμείτε έλεγχο δοκιμής μη διάκρισης πεζών-κεφαλαίων, μια λύση είναι η χρήση του LOWER (Field_Name) ως πεδίου και του LIKE LOWER ( '%' || :Part_of_field || '%' ) ως κριτηρίου. Σημειώστε ότι τα κενά στο κριτήριο είναι σημαντικά· αν παραληφθούν, ο αναλυτής SQL ερμηνεύει το συνολικό κριτήριο ως μια συμβολοσειρά προς συμφωνία. Στην κατάσταση SQL αυτό πρέπει να πληκτρολογηθεί ως LOWER ( "Field_Name" ) LIKE LOWER ( '%' || :Part_of_field || '%' ).

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

### Εισαγωγή παραμέτρων

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

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

Ο χρήστης μπορεί να χρησιμοποιήσει τους χαρακτήρες υποκατάστασης θέσης της SQL "%" (τυχαία συμβολοσειρά) ή "_" (τυχαίος μοναδικός χαρακτήρας) ως τμήμα της τιμής για να ανακτήσει εγγραφές με πιο σύνθετα κριτήρια.

## Κατάσταση SQL

SQL σημαίνει "Structured Query Language" και περιγράφει οδηγίες για ενημέρωση και διαχείριση σχεσιακών βάσεων δεδομένων.

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

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

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

By clicking the Run SQL command directly icon in the SQL view, you can formulate a query that is not processed by LibreOffice and sent directly to the database engine.