Περιεχόμενα

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

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

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

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

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

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

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

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

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

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

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

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

### Κλειδιά στη προβολή σχεδίασης ερωτήματος

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

## Περιήγηση

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

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

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

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

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

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

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

## Σχέσεις πίνακα

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

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

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

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

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

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

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

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

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

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

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

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

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

### Ορισμός ονομάτων πεδίων

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

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

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

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

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

#### Σχήμα

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

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

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

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

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

#### Πεδίο

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

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

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

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

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

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

    SELECT "PtNo" AS "PartNum" FROM "Parts"

#### Πίνακας

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

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

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

#### Ορατό

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

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

Καθορίζει ένα πρώτο κριτήριο βάσει του οποίου θα φιλτράρεται το περιεχόμενο του πεδίου δεδομένων.

#### ή

Εδώ μπορείτε να εισάγετε ένα πρόσθετο κριτήριο φίλτρου για κάθε γραμμή. Πολά κριτήρια σε μια μοναδική στήλη θα ερμηνευτούν ως λογικό 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("Price (Τιμή)") FROM "Article (Προϊόν)".

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

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

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

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

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

Παράδειγμα:

    SELECT COUNT(*) AS πλήθος FROM "Item (Στοιχείο)"

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

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

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

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

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

2. Συνδέστε τα πεδία "Supplier_No (Αρ_Προμηθευτή)" των δύο πεδίων εάν δεν υπάρχει ήδη μια σχέση αυτού του τύπου.

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

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

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

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

Εάν τα πεδία "price (τιμή)" (για τη μεμονωμένη τιμή ενός προϊόντος) και "Supplier_No (Αρ_προμηθευτή)" (για τον προμηθευτή του προϊόντος) υπάρχουν στον πίνακα "Item (Στοιχείο)", μπορείτε να βρείτε τη διάμεση τιμή του στοιχείου που δίνει ο προμηθευτής με το ακόλουθο ερώτημα:

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

2. Διπλοπατήστε τα πεδία "Price (Τιμή)" και "Supplier_No (Αρ_προμηθευτή)".

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

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

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

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

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

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

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

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

Εμφάνιση ή απόκρυψη της γραμμής για το όνομα του πίνακα.

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

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

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

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

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

Για ένα ερώτημα που περιλαμβάνει πολλά πεδία, ο συνδυασμός των τιμών από όλα τα πεδία πρέπει να είναι μοναδικός, έτσι ώστε το αποτέλεσμα να μπορεί να σχηματιστεί από μια συγκεκριμένη εγγραφή. Παραδείγματος χάρη, έχετε "Smith in Chicago" μια φορά στο βιβλίο διευθύνσεών σας και "Smith in London" δύο φορές. Με την εντολή Διακριτές τιμές, το ερώτημα θα χρησιμοποιήσει τα δύο πεδία "last name (επώνυμο)" και "city (πόλη)" και επιστρέψει το αποτέλεσμα του ερωτήματος μιά φορά για "Smith in Chicago" και μια φορά για "Smith in London".

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

### Όριο

Σας επιτρέπει να περιορίσετε τον μέγιστο αριθμό εγγραφών που επιστρέφεται από ένα ερώτημα.

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

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

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

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

εντολή LibreOffice | εντολή SQL | Σημασία | Η συνθήκη ικανοποιείται εάν…
--- | --- | --- | ---
IS EMPTY | IS NULL | είναι 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...) Σημειώστε ότι τα ; (semicolons) χρησιμοποιούνται ως διαχωριστικά σε όλους τους καταλόγους τιμών! | 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.' | επιστρέφει ονόματα πεδίων με το περιεχόμενο πεδίου "Ms."
<'2001-01-10' | επιστρέφει ημερομηνίες που εμφανίστηκαν πριν τις 10 Ιανουαρίου 2001
LIKE 'g?ve' | επιστρέφει εγγραφές με περιεχόμενο πεδίου όπως "give" και "gave".
LIKE 'S*' | επιστρέφει εγγραφές με περιεχόμενα πεδίου όπως "Sun".
BETWEEN 10 AND 20 | επιστρέφει εγγραφές με περιεχόμενο πεδίου μεταξύ των τιμών 10 και 20. (Τα πεδία μπορούν να είναι είτε πεδία κειμένου, είτε πεδία αριθμών).
IN (1; 3; 5; 7) | επιστρέφει εγγραφές με τις τιμές 1, 3, 5, 7. Εάν το όνομα πεδίου περιέχει έναν αριθμό στοιχείου, παραδείγματος χάρη, μπορείτε να δημιουργήσετε ένα ερώτημα που επιστρέφει το στοιχείο που έχει τον συγκεκριμένο αριθμό.
NOT IN ('Smith') | επιστρέφει εγγραφές που δεν περιέχουν το "Smith".

Like Ακολουθία διαφυγής: {escape 'escape-character'}

Παράδειγμα:

    SELECT * FROM Item WHERE ItemName LIKE 'The *%' {escape '*'}

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

Εξωτερική συνένωση Ακολουθία διαφυγής: {oj outer-join}

Παράδειγμα:

    SELECT Article.* FROM {oj item LEFT OUTER JOIN orders ON item.no=orders.ANR}

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

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

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

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

Στοιχείο τύπου ημερομηνίας | η σύνταξη διαφυγής #1 του SQL - μπορεί να είναι παρωχημένη | Σύνταξη διαφυγής #2 του SQL | Σύνταξη 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'} FROM world.years

Παράδειγμα:

    SELECT * FROM mytable WHERE years='1999-12-31'

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

### Ερωτήματα για πεδία Yes/No (Ναι/Όχι)

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

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

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

### Ερωτήματα παραμέτρου

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

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

Στην απλούστερη περίπτωση, όπου ο χρήστης εισάγει μια τιμή που αντιστοιχεί στην ισότητα, το όνομα της παραμέτρου με την προηγούμενη άνω και κάτω τελεία εισάγεται απλώς στη γραμμή Κριτήριο. Στη λειτουργία 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 || '%' ).

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

### Είσοδος παραμέτρου

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

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

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

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

Το SQL αντιπροσωπεύει το "Structured Query Language (Δομημένη Γλώσσα Ερωτημάτων)" και περιγράφει οδηγίες ενημέρωσης και διαχείρισης σχεσιακών βάσεων δεδομένων.

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

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

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

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