Εισαγωγή, διαγραφή, ενημέρωση εγγραφών στη βάση δεδομένων. Εισαγωγή στις δηλώσεις SQL. δημιουργία των απλούστερων ερωτημάτων SQL στην Access χρησιμοποιώντας την εντολή SELECT χρησιμοποιώντας τους τελεστές IN, BETWEEN, LIKE GROUP BY

06.04.2023

Κανόνες Οι αγκύλες σημαίνουν [προαιρετικό μέρος] της κατασκευής. Η κάθετη γραμμή υποδεικνύει την επιλογή μεταξύ των επιλογών (var1|var2). Μια έλλειψη σημαίνει μια πιθανή επανάληψη πολλές φορές - φορές 1, φορές 2 [, ...]

Δήλωση SELECT

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

Σύνταξη

ΕΠΙΛΕΓΩ[ κατηγορούμενο] { * | τραπέζι.* | [τραπέζι.]πεδίο 1

[, [τραπέζι.]πεδίο 2 [, ...]]}
ΑΠΟ table_expression [, ...]




Η πρόταση SELECT περιλαμβάνει τα ακόλουθα στοιχεία.

Στοιχείο

Περιγραφή

Κατηγορούμενο

Ένα από τα ακόλουθα κατηγορήματα: ALL, DISTINCT, DISTINCTROW ή TOP. Τα κατηγορήματα χρησιμοποιούνται για τον περιορισμό του αριθμού των εγγραφών που επιστρέφονται. Εάν δεν έχει καθοριστεί κατηγόρημα, η προεπιλογή είναι ΟΛΑ.

Καθορίζει ότι όλα τα πεδία επιλέγονται από τον συγκεκριμένο πίνακα ή πίνακες

Τραπέζι

Το όνομα του πίνακα από τα πεδία του οποίου επιλέγονται οι εγγραφές

πεδίο 1, πεδίο 2

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

ψευδώνυμο 1, ψευδώνυμο2

Ονόματα που χρησιμοποιούνται ως επικεφαλίδες στηλών αντί των αρχικών ονομάτων στηλών τραπέζια

table_expression

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

εξωτερική_βάση δεδομένων

Το όνομα της βάσης δεδομένων που περιέχει τους πίνακες που καθορίζονται στο στοιχείο table_expressionεάν δεν βρίσκονται στην τρέχουσα βάση δεδομένων

Παρατηρήσεις

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

Οι δηλώσεις SELECT δεν αλλάζουν τα δεδομένα της βάσης δεδομένων.

Η πρόταση SELECT είναι συνήθως η πρώτη λέξη μιας πρότασης SQL (δήλωση SQL (string). Μια έκφραση που ορίζει μια εντολή SQL, όπως SELECT, UPDATE ή DELETE, και περιλαμβάνει προτάσεις, όπως WHERE ή ORDER BY. Προτάσεις SQL/ Οι συμβολοσειρές χρησιμοποιούνται συνήθως σε ερωτήματα και σε συναρτήσεις συγκεντρωτικών .). Οι περισσότερες εντολές SQL είναι είτε προτάσεις SELECT είτε προτάσεις SELECT...INTO.

Η ελάχιστη σύνταξη για μια πρόταση SELECT είναι η εξής:

ΕΠΙΛΕΓΩ χωράφιαΑΠΟ τραπέζι

Μπορείτε να χρησιμοποιήσετε έναν αστερίσκο (*) για να επιλέξετε όλα τα πεδία σε έναν πίνακα. Το ακόλουθο παράδειγμα επιλέγει όλα τα πεδία στον πίνακα Υπάλληλοι.

ΕΠΙΛΟΓΗ * ΑΠΟ Υπαλλήλους.

Εάν το όνομα του πεδίου περιλαμβάνεται σε περισσότερους από έναν πίνακες στην πρόταση FROM, πριν από αυτό το όνομα του πίνακα και τη δήλωση «.» (τελεία). Στο παρακάτω παράδειγμα, το πεδίο Τμήμα υπάρχει στους πίνακες Υπάλληλοι και Προϊστάμενοι. Η δήλωση SQL επιλέγει τα τμήματα από τον πίνακα Υπάλληλοι και τα ονόματα των αφεντικών από τον πίνακα Bosses.

ΕΠΙΛΕΞΤΕ Εργαζόμενους. Τμήματος, Προϊστάμενοι. Όνομα στελέχους ΑΠΟ Υπαλλήλους ΕΣΩΤΕΡΙΚΟ ΣΥΜΜΕΤΟΧΗ Στελέχη ΟΠΟΥ Εργαζόμενοι. Τμήμα = Προϊστάμενοι. Τμήμα;

Κατά τη δημιουργία ενός αντικειμένου RecordSet, το όνομα του πεδίου πίνακα χρησιμοποιείται από τη μηχανή βάσης δεδομένων της Microsoft Access ως το όνομα του αντικειμένου "Πεδίο" στο αντικείμενο. ρεκόρ. Εάν το όνομα του πεδίου πρέπει να αλλάξει ή δεν παρέχεται από την έκφραση που δημιουργεί το πεδίο, χρησιμοποιήστε μια δεσμευμένη λέξη (Δεσμευμένη λέξη. Μια λέξη που είναι στοιχείο γλώσσας, όπως η γλώσσα της Visual Basic. τελεστές και αντικείμενα.) AS. Το ακόλουθο παράδειγμα δείχνει πώς χρησιμοποιείται η κεφαλίδα "Ημέρα" για την ονομασία του επιστρεφόμενου αντικειμένου Πεδίοστο ληφθέν αντικείμενο ρεκόρ.

ΕΠΙΛΕΞΤΕ γενέθλια ΩΣ ΗΜΕΡΑ ΑΠΟ Εργαζόμενους.

Όταν εργάζεστε με συγκεντρωτικές συναρτήσεις ή ερωτήματα που επιστρέφουν διφορούμενα ή πανομοιότυπα ονόματα αντικειμένων Πεδίο, θα πρέπει να χρησιμοποιήσετε τον όρο AS για να δημιουργήσετε ένα άλλο όνομα αντικειμένου Πεδίο. Στο παρακάτω παράδειγμα, το επιστρεφόμενο αντικείμενο Πεδίοστο ληφθέν αντικείμενο ρεκόρμε το όνομα «Απογραφή».

SELECT COUNT(EmployeeCode) AS Census FROM Employees;

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

Ρήτρα ΑΠΟ

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

Σύνταξη

ΕΠΙΛΕΓΩ field_list
ΑΠΟ table_expression

Η πρόταση SELECT που περιέχει τον όρο FROM περιλαμβάνει τα ακόλουθα στοιχεία:

Στοιχείο

Περιγραφή

field_list

table_expression

Μια έκφραση που ορίζει έναν ή περισσότερους πίνακες - πηγές δεδομένων. Η έκφραση μπορεί να είναι ένα όνομα πίνακα, ένα αποθηκευμένο όνομα ερωτήματος ή μια έκφραση αποτελέσματος που συντίθεται χρησιμοποιώντας τις λειτουργίες ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ, ΑΡΙΣΤΕΡΗ ΣΥΝΔΕΣΗ ή ΔΕΞΙΑ ΣΥΝΔΕΣΗ

εξωτερική_βάση δεδομένων

Πλήρης διαδρομή προς την εξωτερική βάση δεδομένων που περιέχει όλους τους πίνακες που καθορίζονται στο table_expression

Παρατηρήσεις


Η παρουσία του όρου FROM μετά τη δήλωση SELECT είναι υποχρεωτική.

Σειρά καταχώρισης πινάκων σε table_expressionδεν έχει σημασία.

Χρήση συνδεδεμένων πινάκων (Συνδεδεμένος πίνακας. Πίνακας που αποθηκεύεται σε αρχείο που δεν ανήκει σε ανοιχτή βάση δεδομένων, αλλά είναι προσβάσιμο από τη Microsoft Access. Ο χρήστης έχει τη δυνατότητα να προσθέτει, να διαγράφει και να τροποποιεί εγγραφές στον συνδεδεμένο πίνακα, αλλά δεν μπορεί να αλλάξει τη δομή του.) αντί για πρόταση IN, μπορείτε να κάνετε τη διαδικασία εξαγωγής δεδομένων από εξωτερική βάσηδεδομένα πιο απλά και αποτελεσματικά.

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

ΕΠΙΛΟΓΗ Επώνυμο, Όνομα

ΑΠΟ Εργαζόμενους?

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

Σύνταξη

ΕΠΙΛΟΓΗ ]]
ΑΠΟ τραπέζι

Η πρόταση SELECT που περιέχει αυτά τα κατηγορήματα περιλαμβάνει τα ακόλουθα στοιχεία:

Συστατικό

Περιγραφή

Υπονοείται εάν δεν περιλαμβάνεται κανένα από τα κατηγορήματα. Η μηχανή βάσης δεδομένων της Microsoft Access επιλέγει όλες τις εγγραφές που ταιριάζουν με τις συνθήκες μιας πρότασης SQL (δήλωση SQL (string). Μια έκφραση που ορίζει μια εντολή SQL, όπως SELECT, UPDATE ή DELETE, και περιλαμβάνει προτάσεις, όπως WHERE ή ORDER BY Οι δηλώσεις/συμβολοσειρές SQL χρησιμοποιούνται συνήθως σε ερωτήματα και σε συγκεντρωτικές συναρτήσεις.). Τα ακόλουθα δύο πανομοιότυπα παραδείγματα δείχνουν πώς να επιστρέψετε όλες τις εγγραφές στον πίνακα Υπάλληλοι.

ΑΠΟ Εργαζόμενους

ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ EmployeeCode.

ΑΠΟ Εργαζόμενους

ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ EmployeeCode.

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

ΕΠΙΛΕΞΤΕ ΔΙΑΚΡΙΤΗ

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

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

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

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

ΕΠΙΛΕΞΤΕ ΔΙΑΚΡΙΤΙΚΟ Όνομα ΑΠΟ Πελάτες ΕΣΩΤΕΡΙΚΗ ΣΥΜΜΕΤΟΧΗ Παραγγελιών

ON Πελάτες. CustomerCode = Παραγγελίες. Κωδικός πελάτη

ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ Τίτλο.

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

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

ΜΠΛΟΥΖΑ n

Επιστρέφει έναν καθορισμένο αριθμό εγγραφών που είναι μεταξύ των πρώτων ή πρόσφατες καταχωρήσειςτο εύρος που καθορίζεται από τον όρο ORDER BY. Ας υποθέσουμε ότι θέλετε να εμφανίσετε τα ονόματα των κορυφαίων 25 μαθητών στην τάξη του 1994.

Ονομα επίθετο

ΠΟΥ Έτος Αποφοίτησης = 2003

ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ Βαθμού Μέσος όρος DESC.

Εάν δεν συμπεριλάβετε έναν όρο ORDER BY, το ερώτημα θα επιστρέψει ένα τυχαίο σύνολο 25 εγγραφών από τον πίνακα Students που ικανοποιεί τον όρο WHERE.

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

Μπορείτε επίσης να χρησιμοποιήσετε τη δεσμευμένη λέξη PERCENT για να επιστρέψετε κάποιο ποσοστό των πρώτων ή των τελευταίων καταχωρήσεων στο εύρος που καθορίζεται από τον όρο ORDER BY. Ας υποθέσουμε ότι αντί για τους κορυφαίους 25, θέλετε να εμφανίσετε το χαμηλότερο 10% των μαθητών σε μια αποφοίτηση.

ΕΠΙΛΕΞΤΕ ΚΟΡΥΦΑΙΟ 10 τοις εκατό

Ονομα επίθετο

ΠΟΥ Έτος Αποφοίτησης = 2003

ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ GradePointAverage ASC.

Το κατηγόρημα ASC καθορίζει την έξοδο των τιμών από το κάτω μέρος του εύρους. Η τιμή που ακολουθεί το κατηγόρημα TOP πρέπει να είναι μια τιμή τύπου Integer (Integer type data. Ο βασικός τύπος δεδομένων που χρησιμοποιείται για την αποθήκευση ακέραιων τιμών. Μια μεταβλητή Integer αποθηκεύεται ως αριθμός 64-bit (8-byte) στην περιοχή -32768 έως 32767. ) ανυπόγραφο.

Το κατηγόρημα TOP δεν επηρεάζει τη δυνατότητα ενημέρωσης του ερωτήματος.

τραπέζι

Το όνομα του πίνακα από τον οποίο ανακτώνται οι εγγραφές.

δείτε επίσης

Δήλωση SELECT

Ρήτρα ΑΠΟ

ρήτρα WHERE

Καθορίζει ποιες εγγραφές από τους πίνακες που παρατίθενται στον όρο FROM υποβάλλονται σε επεξεργασία από τις προτάσεις SELECT, UPDATE ή DELETE.

Σύνταξη

ΕΠΙΛΕΓΩ field_list
ΑΠΟ table_expression
ΟΠΟΥ επιλογή_συνθήκες

Μια δήλωση SELECT που περιέχει μια πρόταση WHERE έχει τα ακόλουθα μέρη.

Μέρος

Περιγραφή

field_list

Το όνομα του πεδίου ή των πεδίων που ανακτήθηκαν μαζί με τυχόν ψευδώνυμα (Ψευδώνυμο (SQL). Ένα εναλλακτικό όνομα για έναν πίνακα ή ένα πεδίο σε μια έκφραση. Τα ψευδώνυμα συνήθως χρησιμοποιούνται ως συντομότερα ονόματα πινάκων ή πεδίων για ευκολία μεταγενέστερης αναφοράς σε προγράμματα, για την αποφυγή διφορούμενων παραπομπών και περισσότερων περιγραφικών ονομάτων κατά την εμφάνιση αποτελεσμάτων ερωτήματος.), κατηγορήματα (ALL, DISTINCT, DISTINCTROW ή TOP) ή με οποιαδήποτε άλλη επιλογή της πρότασης SELECT.

table_expression

Το όνομα του πίνακα ή των πινάκων από τους οποίους ανακτώνται τα δεδομένα.

επιλογή_συνθήκες

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

Παρατηρήσεις

Η μηχανή βάσης δεδομένων της Microsoft Access επιλέγει εγγραφές που πληρούν τις προϋποθέσεις που αναφέρονται στον όρο WHERE. Εάν δεν έχει καθοριστεί όρος WHERE, το ερώτημα επιστρέφει όλες τις σειρές στον πίνακα. Εάν ένα ερώτημα καθορίζει πολλούς πίνακες αλλά δεν καθορίζει μια πρόταση WHERE ή JOIN, το ερώτημα παράγει ένα καρτεσιανό προϊόν (καρτεσιανό προϊόν. Είναι το αποτέλεσμα μιας πρότασης SQL SELECT που έχει έναν όρο FROM που αναφέρεται σε δύο ή περισσότερους πίνακες και όχι WHERE ή JOIN ρήτρα που καθορίζει τη μέθοδο ένωσης.) πίνακες.

Η ρήτρα WHERE δεν απαιτείται, αλλά αν είναι, πρέπει να ακολουθεί την ρήτρα FROM. Για παράδειγμα, μπορείτε να επιλέξετε όλους τους υπαλλήλους από το τμήμα πωλήσεων (WHERE Τμήμα = "Πωλήσεις") ή όλους τους πελάτες ηλικίας 18 έως 30 ετών (ΠΟΥ Ηλικία μεταξύ 18 και 30).

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

Η πρόταση WHERE είναι παρόμοια με την ρήτρα HAVING και ορίζει τις επιλεγμένες εγγραφές. Αφού οι εγγραφές ομαδοποιηθούν με τον όρο GROUP BY, ο όρος HAVING καθορίζει επίσης ποια εγγραφή θα εμφανιστεί.

Ο όρος WHERE χρησιμοποιείται για τον αποκλεισμό εγγραφών που δεν χρειάζεται να ομαδοποιηθούν χρησιμοποιώντας τον όρο GROUP BY.

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

ΕΠΙΛΕΞΤΕ Επώνυμο, Μισθός ΑΠΟ Εργαζόμενους ΟΠΟΥ Μισθός > 21000;

Η πρόταση WHERE μπορεί να περιέχει έως και 40 εκφράσεις που συνδέονται με λογικούς τελεστές (για παράδειγμα, ΚΑΙΚαι Ή).

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

ΕΠΙΛΟΓΗ [Το αγαπημένο εστιατόριο του πελάτη]

Δίνοντας επιχείρημα επιλογή_συνθήκες, κυριολεκτικά ημερομηνία (Μια κυριολεκτική ημερομηνία. Οποιαδήποτε ακολουθία χαρακτήρων έγκυρης μορφής περικλείεται σε αριθμητικά σημάδια (#). Οι έγκυρες μορφές είναι η μορφή ημερομηνίας που καθορίζεται στις ρυθμίσεις γλώσσας και προτύπων και η καθολική μορφή ημερομηνίας.) θα πρέπει να αντιπροσωπεύονται σε μορφή ΗΠΑ, ακόμη και εάν χρησιμοποιείται μορφή εκτός ΗΠΑ. έκδοση του μηχανισμού βάσης δεδομένων Microsoft Access. Για παράδειγμα, η ημερομηνία "10 Μαΐου 1996" γράφεται ως 10/5/96 στο Ηνωμένο Βασίλειο και ως 05/10/1996 στη Ρωσία. Θυμηθείτε να εσωκλείσετε τα κυριολεκτικά της ημερομηνίας σε αριθμούς (#), όπως φαίνεται στα παρακάτω παραδείγματα.

Για να βρείτε εγγραφές για τις 10 Μαΐου 1996 στη βάση δεδομένων του Ηνωμένου Βασιλείου, χρησιμοποιήστε την ακόλουθη δήλωση SQL:

SELECT * FROM Orders WHERE Ημερομηνία Αποστολής = #10.05.1996#;

Μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία DateValue, αναγνωρίζοντας διεθνείς παραμέτρους που ορίζονται από Microsoft Windows®. Για παράδειγμα, για τη Ρωσία, χρησιμοποιήστε τον ακόλουθο κώδικα:

SELECT * FROM Orders WHERE Ημερομηνία αποστολής = DateValue("05/10/1996");

Και ο ακόλουθος κώδικας είναι για το Ηνωμένο Βασίλειο:

SELECT * FROM Orders WHERE ShippingDate = DateValue("10/5/96");

Σημείωση.Εάν η στήλη που καθορίζεται στη σειρά κριτηρίων επιλογής είναι τύπου GUID (Replica ID (GUID). Ένα πεδίο 16 byte σε μια βάση δεδομένων της Microsoft Access που χρησιμοποιείται για μοναδικά αναγνωριστικά στην αναπαραγωγή. Τα GUID χρησιμοποιούνται για την αναγνώριση αντιγράφων, συνόλων αντιγράφων, πινάκων, εγγραφών και άλλα αντικείμενα.Στις βάσεις δεδομένων της Microsoft Access, τα GUID ονομάζονται αντίγραφα αναγνωριστικά.), η σύνταξη που χρησιμοποιείται σε συνθήκες φίλτρου είναι ελαφρώς διαφορετική.

WHERE ReplicaID=(GUID(AB-CDEF0ABCDEF))

Βεβαιωθείτε ότι οι ένθετες αγκύλες και οι παύλες έχουν τοποθετηθεί σωστά.

Πηγή σελίδα: http://office. /en-us/access/HA.aspx? pid=CH

ΟΜΑΔΑ ΑΝΑ προσφορά

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

Σύνταξη

ΕΠΙΛΕΓΩ field_list
ΑΠΟ τραπέζι
ΟΠΟΥ επιλογή_κατάσταση

Η πρόταση SELECT που περιέχει τον όρο GROUP BY περιλαμβάνει τα ακόλουθα στοιχεία:

Στοιχείο

Περιγραφή

field_list

Ονόματα πεδίων που ανακτώνται μαζί με τυχόν ψευδώνυμα (Ψευδώνυμο (SQL). Εναλλακτικό όνομα για έναν πίνακα ή ένα πεδίο σε μια έκφραση. Τα ψευδώνυμα χρησιμοποιούνται συνήθως ως συντομότερα ονόματα πινάκων ή πεδίων για ευκολία μεταγενέστερων αναφορών σε προγράμματα, για την αποφυγή διφορούμενων παραπομπών, και για να αποκτήσετε πιο ενημερωτικά ονόματα κατά την εμφάνιση των αποτελεσμάτων ερωτημάτων.) και στατιστικά Συναρτήσεις SQL, κατηγορήματα (ALL, DISTINCT, DISTINCTROW ή TOP) ή άλλες επιλογές της πρότασης SELECT

τραπέζι

επιλογή_συνθήκες

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

group_field_list

group_field_list

Παρατηρήσεις

Η ρήτρα GROUP BY είναι προαιρετική.

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

GROUP BY τιμές πεδίου που είναι Null (Null. Μια τιμή που μπορεί να εισαχθεί σε ένα πεδίο ή να χρησιμοποιηθεί σε εκφράσεις και ερωτήματα για να υποδείξει δεδομένα που λείπουν ή άγνωστα. Στη Visual Basic λέξη-κλειδίΤο Null καθορίζει μια τιμή Null. Ορισμένα πεδία, όπως τα πεδία πρωτεύοντος κλειδιού, δεν μπορούν να περιέχουν μηδενικές τιμές.) ομαδοποιούνται και δεν παραλείπονται. Ωστόσο, οι αξίες Μηδενικόκαμία από τις στατιστικές συναρτήσεις SQL δεν αξιολογείται.

Ο όρος WHERE χρησιμοποιείται για τον αποκλεισμό σειρών που δεν χρειάζεται να ομαδοποιηθούν. Η ρήτρα HAVING χρησιμοποιείται για το φιλτράρισμα εγγραφών μετά την ομαδοποίηση.

Πεδία από τη λίστα πεδίων GROUP BY που δεν περιέχουν δεδομένα τύπου Memo (Τύπος δεδομένων "MEMO Field". Τύπος δεδομένων του πεδίου στη βάση δεδομένων της Microsoft Access. Ένα πεδίο Memo μπορεί να περιέχει έως 65535 χαρακτήρες.) ή OLE Object ( Τύπος δεδομένων "OLE Object Field". Ένας τύπος δεδομένων πεδίου που χρησιμοποιείται για την αποθήκευση αντικειμένων από άλλες εφαρμογές συνδεδεμένες ή ενσωματωμένες σε μια βάση δεδομένων της Microsoft Access.) μπορεί να αναφέρεται σε οποιοδήποτε πεδίο σε οποιονδήποτε πίνακα που καθορίζεται στον όρο FROM, ακόμα κι αν το πεδίο δεν είναι περιλαμβάνονται στη δήλωση SELECT. Για να γίνει αυτό, αρκεί να έχουμε τουλάχιστον μία συνάρτηση συγκεντρωτικής SQL στη δήλωση SELECT. Η μηχανή βάσης δεδομένων της Microsoft Access δεν επιτρέπει την ομαδοποίηση κατά πεδία που περιέχουν δεδομένα τύπου "πεδίο MEMO" ή "αντικείμενο OLE".

Όλα τα πεδία στη λίστα πεδίων SELECT πρέπει είτε να περιέχονται στον όρο GROUP BY είτε να είναι ορίσματα σε μια συγκεντρωτική συνάρτηση SQL.

δείτε επίσης

Δήλωση SELECT

Δήλωση SELECT...INTO

Κατηγορήματα ALL, DISTINCT, DISTINCTROW, TOP

Ρήτρα ΑΠΟ

ΕΧΕΙ προσφορά

ΠΑΡΑΓΓΕΛΙΑ ΜΕ προσφορά

ρήτρα WHERE

Στατιστικές συναρτήσεις SQL

Πηγή σελίδα: http://office. /en-us/access/HA.aspx? pid=CH

ΕΧΕΙ προσφορά

Καθορίζει ομαδοποιημένες εγγραφές που θα εμφανίζονται σε μια πρόταση SELECT με μια πρόταση GROUP BY. Αφού οι εγγραφές ομαδοποιηθούν με την ρήτρα GROUP BY, η ρήτρα HAVING θα εμφανίσει εκείνες τις εγγραφές που ταιριάζουν με τις συνθήκες της.

Σύνταξη

ΕΠΙΛΕΓΩ field_list
ΑΠΟ τραπέζι
ΟΠΟΥ επιλογή_συνθήκες
ΟΜΑΔΑ ΑΠΟ group_field_list

Μια πρόταση SELECT που περιέχει έναν όρο HAVING περιλαμβάνει τα ακόλουθα στοιχεία:

Στοιχείο

Περιγραφή

field_list

Ονόματα πεδίων που φορτώνονται με οποιοδήποτε ψευδώνυμο (Ψευδώνυμο (SQL). Ένα εναλλακτικό όνομα για έναν πίνακα ή ένα πεδίο σε μια έκφραση. Τα ψευδώνυμα χρησιμοποιούνται συνήθως ως μικρότερα ονόματα πινάκων ή πεδίων για ευκολία μεταγενέστερων αναφορών σε προγράμματα, για την αποφυγή διφορούμενων παραπομπών, και για να αποκτήσετε πιο ουσιαστικά ονόματα κατά την εμφάνιση των αποτελεσμάτων ερωτημάτων.) και συγκεντρωτικά στοιχεία SQL, κατηγορήματα (ALL, DISTINCT, DISTINCTROW ή TOP) ή άλλες επιλογές δήλωσης SELECT.

τραπέζι

Το όνομα του πίνακα από τον οποίο φορτώνονται οι εγγραφές

επιλογή_κατάσταση

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

group_field_list

Ονόματα πεδίων (μέγιστο 10) που χρησιμοποιούνται για την ομαδοποίηση εγγραφών. Σειρά ονόματος σε group_field_listκαθορίζει το επίπεδο ομαδοποίησης - από το υψηλότερο στο χαμηλότερο

group_condition

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

Παρατηρήσεις

Η ρήτρα HAVING είναι προαιρετική.

Η ρήτρα HAVING είναι παρόμοια με την ρήτρα WHERE, η οποία καθορίζει την επιλογή των εγγραφών. Μετά την ομαδοποίηση των εγγραφών με τον όρο GROUP BY, ο όρος HAVING καθορίζει ποιες εγγραφές θα εμφανιστούν.

SELECTTypeCode,

Άθροισμα (InStock)

ΑΠΟ Προϊόντα

GROUP BY TypeCode

ΕΧΟΝΤΑΣ Sum(InStock) > 100 Και σαν "TEL*";

Η ρήτρα HAVING μπορεί να περιέχει έως και 40 εκφράσεις που συνδέονται με λογικούς τελεστές όπως π.χ ΚαιΚαι Ή.

Πηγή σελίδα: http://office. /en-us/access/HA.aspx? pid=CH

ΠΑΡΑΓΓΕΛΙΑ ΜΕ προσφορά

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

Σύνταξη

ΕΠΙΛΕΓΩ field_list
ΑΠΟ τραπέζι
ΟΠΟΥ επιλογή_κατάσταση
[, πεδίο 2 ][, ...]]]

Μια πρόταση SELECT που περιέχει μια πρόταση ORDER BY περιλαμβάνει τα ακόλουθα στοιχεία.

Στοιχείο

Περιγραφή

field_list

Ονόματα πεδίων που ανακτώνται μαζί με τυχόν ψευδώνυμα (Ψευδώνυμο (SQL). Εναλλακτικό όνομα για έναν πίνακα ή ένα πεδίο σε μια έκφραση. Τα ψευδώνυμα χρησιμοποιούνται συνήθως ως συντομότερα ονόματα πινάκων ή πεδίων για ευκολία μεταγενέστερων αναφορών σε προγράμματα, για την αποφυγή διφορούμενων παραπομπών, και για να αποκτήσετε πιο ουσιαστικά ονόματα κατά την εμφάνιση των αποτελεσμάτων ερωτημάτων.) και συγκεντρωτικά στοιχεία SQL, κατηγορήματα (ALL, DISTINCT, DISTINCTROW ή TOP) ή άλλες επιλογές δήλωσης SELECT.

τραπέζι

Το όνομα του πίνακα από τον οποίο ανακτώνται οι εγγραφές

επιλογή_συνθήκες

προϋποθέσεις επιλογής. Εάν η δήλωση περιέχει μια ρήτρα WHERE, τότε μετά την εφαρμογή της στις εγγραφές, η μηχανή βάσης δεδομένων της Microsoft Access θα διατάξει τις τιμές των εγγραφών

πεδίο 1, πεδίο 2

Τα ονόματα των πεδίων με τα οποία ταξινομούνται οι εγγραφές.

Παρατηρήσεις

Η ρήτρα ORDER BY είναι προαιρετική. Θα πρέπει να χρησιμοποιείται όταν χρειάζεται να εμφανίσετε δεδομένα σε ταξινομημένη μορφή.

Η προεπιλεγμένη σειρά ταξινόμησης είναι (Σειρά ταξινόμησης. Ένας τρόπος για να ταξινομήσετε δεδομένα με βάση τις τιμές και τον τύπο τους. Τα δεδομένα μπορούν να ταξινομηθούν αλφαβητικά, με αριθμητικές τιμέςή κατά ημερομηνία. Η σειρά ταξινόμησης μπορεί να είναι αύξουσα (0 έως 100, Α έως Ω) ή φθίνουσα (100 έως 0, Ζ έως Α.) αύξουσα (Α έως Ω, 0 έως 9). Τα παρακάτω παραδείγματα δείχνουν την ταξινόμηση των ονομάτων εργαζομένων κατά επώνυμο.

ΕΠΙΛΟΓΗ Επώνυμο, Όνομα

ΑΠΟ Εργαζόμενους

ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ Επώνυμο;

ΕΠΙΛΟΓΗ Επώνυμο, Όνομα

ΑΠΟ Εργαζόμενους

ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ Επώνυμο ASC;

Για να ταξινομήσετε τα πεδία με φθίνουσα σειρά (Ζ έως Α, 9 έως 0), προσθέστε τη δεσμευμένη λέξη DESC στο όνομα καθενός από αυτά τα πεδία. Το παρακάτω παράδειγμα ταξινομεί με φθίνουσα σειρά με βάση τους μισθούς των εργαζομένων.

ΕΠΙΛΕΞΤΕ Επώνυμο, Μισθός

ΑΠΟ Εργαζόμενους

ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ Μισθό DESC, Επώνυμο;

Εάν καθορίσετε πεδία στον όρο ORDER BY που περιέχουν δεδομένα τύπου MEMO Field (Τύπος δεδομένων "MEMO Field". Ο τύπος δεδομένων του πεδίου στη βάση δεδομένων της Microsoft Access. Ένα πεδίο MEMO μπορεί να περιέχει έως 65535 χαρακτήρες.) ή OLE Object Πεδίο (Τύπος δεδομένων "OLE Object Field ". Τύπος δεδομένων πεδίου που χρησιμοποιείται για την αποθήκευση αντικειμένων από άλλες εφαρμογές που είναι συνδεδεμένες ή ενσωματωμένες σε μια βάση δεδομένων της Microsoft Access.), Αυτό θα έχει ως αποτέλεσμα ένα σφάλμα. Η μηχανή βάσης δεδομένων της Microsoft Access δεν μπορεί να ταξινομήσει αυτούς τους τύπους πεδίων.

Ο όρος ORDER BY είναι συνήθως ο τελευταίος όρος σε μια πρόταση SQL (δήλωση SQL (string). Μια έκφραση που ορίζει μια εντολή SQL, όπως SELECT, UPDATE ή DELETE, και περιλαμβάνει προτάσεις, όπως WHERE ή ORDER BY. Προτάσεις SQL Οι /γραμμές χρησιμοποιούνται συνήθως σε ερωτήματα και σε στατιστικές συναρτήσεις.).

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

Δήλωση SELECT

Δήλωση SELECT...INTO

Κατηγορήματα ALL, DISTINCT, DISTINCTROW, TOP

Ρήτρα ΑΠΟ

ΟΜΑΔΑ ΑΝΑ προσφορά

ΕΧΕΙ προσφορά

ρήτρα WHERE

Στατιστικές συναρτήσεις SQL

Πηγή σελίδα: http://office. /en-us/access/HA.aspx? pid=CH

Λειτουργία ΕΣΩΤΕΡΙΚΗΣ ΣΥΝΔΕΣΗΣ

Συνδέει εγγραφές από δύο πίνακες εάν τα πεδία σύνδεσης αυτών των πινάκων περιέχουν τις ίδιες τιμές.

Σύνταξη

ΑΠΟ Τραπέζι 1ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ πίνακας 2ΕΠΙ Τραπέζι 1.πεδίο 1 σύγκριση_πίνακας χειριστή2.πεδίο 2

Η λειτουργία ΕΣΩΤΕΡΙΚΗΣ ΣΥΝΔΕΣΗΣ αποτελείται από τα ακόλουθα στοιχεία:

Στοιχείο

Περιγραφή

Τραπέζι 1, πίνακας 2

Ονόματα πινάκων που περιέχουν ενωμένες εγγραφές

πεδίο 1, πεδίο 2

Συνδεδεμένα ονόματα πεδίων. Τα πεδία που δεν είναι αριθμητικά πρέπει να είναι του ίδιου τύπου δεδομένων (Τύπος δεδομένων. Χαρακτηριστικό πεδίου που καθορίζει τον τύπο δεδομένων που μπορεί να περιέχει αυτό το πεδίο. Διατίθενται οι ακόλουθοι τύποι δεδομένων: Boolean, Integer, Long, Currency, Single, Double, Date, String και Variant (προεπιλογή).) και περιέχουν δεδομένα του ίδιου είδους. Ωστόσο, τα ονόματα αυτών των πεδίων μπορεί να είναι διαφορετικά.

σύγκριση_τελεστής

Οποιοσδήποτε τελεστής σύγκρισης: (=,<, >, <=, >= ή<>)

Η δήλωση SELECT δίνει εντολή στον μηχανισμό βάσης δεδομένων της Microsoft Access να επιστρέψει πληροφορίες από τη βάση δεδομένων ως σύνολο εγγραφών.

Σύνταξη

ΕΠΙΛΕΓΩ[ κατηγορούμενο] { * | τραπέζι.* | [τραπέζι.]πεδίο 1 [, [τραπέζι.]πεδίο 2 [, ...]]}
ΑΠΟ πίνακα_έκφραση [, ...]




Η πρόταση SELECT περιλαμβάνει τα ακόλουθα στοιχεία.

Στοιχείο

Περιγραφή

κατηγορούμενο

Ένα από τα ακόλουθα κατηγορήματα: ALL, DISTINCT, DISTINCTROW ή TOP. Τα κατηγορήματα χρησιμοποιούνται για τον περιορισμό του αριθμού των εγγραφών που επιστρέφονται. Εάν δεν έχει καθοριστεί κατηγόρημα, η προεπιλογή είναι ΟΛΑ.

Καθορίζει ότι όλα τα πεδία επιλέγονται από τον καθορισμένο πίνακα ή πίνακες.

τραπέζι

Το όνομα του πίνακα που περιέχει τα πεδία με τις επιλεγμένες εγγραφές.

πεδίο 1, πεδίο 2

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

ψευδώνυμο 1, ψευδώνυμο2

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

πίνακα_έκφραση

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

εξωτερική_βάση δεδομένων

Το όνομα της βάσης δεδομένων που περιέχει τους πίνακες που καθορίζονται στο στοιχείο πίνακα_έκφρασηεάν δεν βρίσκονται στην τρέχουσα βάση δεδομένων.

Σημειώσεις.

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

Οι δηλώσεις SELECT δεν αλλάζουν δεδομένα στη βάση δεδομένων.

Το SELECT είναι συνήθως η πρώτη λέξη σε μια πρόταση SQL. SELECT και SELECT...INTO είναι οι πιο κοινές εντολές SQL.

Η ελάχιστη σύνταξη για μια πρόταση SELECT είναι η εξής:

ΕΠΙΛΕΓΩ χωράφιαΑΠΟ τραπέζι

Μπορείτε να χρησιμοποιήσετε έναν αστερίσκο (*) για να επιλέξετε όλα τα πεδία σε έναν πίνακα. Το ακόλουθο παράδειγμα δείχνει ότι όλα τα πεδία είναι επιλεγμένα στον πίνακα Υπάλληλοι.

ΕΠΙΛΟΓΗ * ΑΠΟ Υπαλλήλους.

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

SELECT Employees.Department, Supervisors.SupvName FROM Employees INNER JOIN Supervisors WHERE Employees.Department = Supervisors.Department;

Κατά τη δημιουργία ενός αντικειμένου RecordSet, το όνομα του πεδίου πίνακα χρησιμοποιείται από τη μηχανή Microsoft Access DBMS ως το όνομα του αντικειμένου "Field" στο αντικείμενο Ρεκόρ. Εάν το όνομα του πεδίου πρέπει να αλλάξει ή δεν παρέχεται από την έκφραση που δημιουργεί το πεδίο, χρησιμοποιήστε τη δεσμευμένη λέξη AS. Το ακόλουθο παράδειγμα δείχνει πώς χρησιμοποιείται η κεφαλίδα "Ημερομηνία Γέννησης" για την ονομασία του επιστρεφόμενου αντικειμένου Πεδίοστο ληφθέν αντικείμενο Ρεκόρ.

ΕΠΙΛΕΞΤΕ Ημερομηνία Γέννησης ΩΣ Γέννηση ΑΠΟ Υπαλλήλους.

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

SELECT COUNT(EmployeeID) AS HeadCount FROM Employees;

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

Εργαστήριο #1

SQL: ΑΝΑΚΤΗΣΗ ΔΕΔΟΜΕΝΩΝ - εντολήΕΠΙΛΕΓΩ

Στόχος της εργασίας:

  • Εξοικειωθείτε με τις δηλώσεις SQL
  • μάθετε πώς να δημιουργείτε απλά ερωτήματα SQL στην Access χρησιμοποιώντας την εντολή SELECT.

· χρήση τελεστών IN, BETWEEN, LIKE, IS NULL.

Ασκηση№1. Δημιουργήστε ένα ερώτημα για να επιλέξετε σε λειτουργία SQL όλες τις τιμές των πεδίων FIRST NAME και LAST NAME από τον πίνακα STUDENTS.

ΕΠΙΛΕΞΤΕ ΟΝΟΜΑ, ΕΠΩΝΥΜΟ

ΑΠΟ ΜΑΘΗΤΕΣ?

Ασκηση№2 . Δημιουργήστε ένα ερώτημα επιλογής σε λειτουργία SQL για όλες τις στήλες του πίνακα STUDENTS.

ΕΠΙΛΟΓΗ *

ΑΠΟ ΜΑΘΗΤΕΣ?


Εργασία αριθμός 3.Δημιουργήστε ένα ερώτημα για να επιλέξετε σε λειτουργία SQL τα ονόματα των πόλεων όπου ζουν οι μαθητές, πληροφορίες για τις οποίες βρίσκονται στον πίνακα ΠΡΟΣΩΠΙΚΑ ΔΕΔΟΜΕΝΑ.

ΕΠΙΛΕΞΤΕ ΔΙΑΚΡΙΤΗ ΠΟΛΗ

ΑΠΟ [ΠΡΟΣΩΠΙΚΑ ΔΕΔΟΜΕΝΑ].

Εργασία αριθμός 4.Δημιουργήστε ένα ερώτημα επιλογής σε λειτουργία SQL που επιλέγει τα ονόματα όλων των μαθητών με το επώνυμο Ivanov, των οποίων οι πληροφορίες βρίσκονται στον πίνακα STUDENTS.

ΕΠΙΛΕΞΤΕ ΕΠΩΝΥΜΟ, ΟΝΟΜΑ

ΑΠΟ ΜΑΘΗΤΕΣ

WHERE ΕΠΩΝΥΜΟ="Ivanov";

Εργασία αριθμός 5. Δημιουργήστε ένα ερώτημα για μια επιλογή σε λειτουργία SQL για να λάβετε τα ονόματα και τα επώνυμα των μαθητών που σπουδάζουν στην ομάδα UIT-22 σε μια μορφή εκπαίδευσης που χρηματοδοτείται από τον προϋπολογισμό.

ΕΠΙΛΕΞΤΕ ΕΠΩΝΥΜΟ, ΟΝΟΜΑ

ΑΠΟ ΜΑΘΗΤΕΣ

WHERE GROUP="HIT-22" AND BUDGET=true;

Εργασία αριθμός 6. Δημιουργήστε ένα ερώτημα σε λειτουργία SQL. για δείγμα από τον πίνακα ΕΠΙΤΥΧΙΑΣ ΕΞΕΤΑΣΕΩΝ, πληροφορίες για μαθητές με βαθμούς μόνο 4 και 5.

ΕΠΙΛΟΓΗ *

ΑΠΟ[ΑΛΛΑΓΗΕΞΕΤΑΣΕΙΣ]

ΟΠΟΥΒΑΘΜΟΣIN (4,5);

Εργασία αριθμός 7.Δημιουργήστε μια λειτουργία zanpoc και SQL για ένα δείγμα πληροφοριών σχετικά με μαθητές που έχουν βαθμό εξέτασης 3 στο μάθημα του IOSU.

ΕΠΙΛΟΓΗ *

ΑΠΟ[ΑΛΛΑΓΗΕΞΕΤΑΣΕΙΣ]

ΟΠΟΥΕΙΔΟΣ=" ISSU" ΚαιΒΑΘΜΟΣΌχι σε (4.5);

Εργασία αριθμός 8.Δημιουργήστε ένα ερώτημα σε λειτουργία SQL για να επιλέξετε εγγραφές για στοιχεία των οποίων οι ώρες είναι μεταξύ 100 και 130.

ΕΠΙΛΟΓΗ *

ΑΠΟΕΙΔΗ

ΟΠΟΥΠΑΡΑΚΟΛΟΥΘΩΜΕΤΑΞΥ 100 ΚΑΙ 130.


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

ΕΠΙΛΟΓΗ *

ΑΠΟΦΟΙΤΗΤΕΣ

ΟΠΟΥΕΠΩΝΥΜΟΑΡΕΣΕΙ"ΜΕ*";

Συμπέρασμα:Στη διάρκεια εργαστηριακές εργασίεςεξοικειώθηκε με τις δηλώσεις SQL, έμαθε πώς να δημιουργεί απλά ερωτήματα SQL στην Access χρησιμοποιώντας την εντολή SELECT χρησιμοποιώντας τους τελεστές IN, BETWEEN, LIKE.

Τα παραδείγματα ερωτημάτων SQL μπορούν να χρησιμοποιηθούν για την εκμάθηση και την εξάσκηση στη σύνταξη ερωτημάτων SQL στο MS Access.

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

Αίτημα Q011.Εμφανίζει πληροφορίες για προϊόντα από τον πίνακα m_product, οι κωδικοί του οποίου βρίσκονται επίσης στον πίνακα m_income:

ΕΠΙΛΟΓΗ *
ΑΠΟ m_product
WHERE id IN (SELECT product_id FROM m_income);

Αίτημα Q012.Εμφανίζεται μια λίστα προϊόντων από τον πίνακα m_product, οι κωδικοί των οποίων δεν βρίσκονται στον πίνακα m_outcome:

ΕΠΙΛΟΓΗ *
ΑΠΟ m_product
WHERE id NOT IN (SELECT product_id FROM m_outcome);

Αίτημα Q013.Αυτό το ερώτημα SQL επιστρέφει μια μοναδική λίστα κωδικών και ονομάτων προϊόντων που έχουν κωδικούς στον πίνακα m_income αλλά όχι στον πίνακα m_outcome:

ΕΠΙΛΟΓΗ DISTINCT product_id, τίτλος
ΑΠΟ m_income INNER JOIN m_product
ON m_income.product_id=m_product.id
WHERE product_id NOT IN (SELECT product_id FROM m_outcome);

Αίτημα Q014.Μια μοναδική λίστα κατηγοριών εμφανίζεται από τον πίνακα m_category, τα ονόματα των οποίων ξεκινούν με το γράμμα M:

ΕΠΙΛΟΓΗ ΔΙΑΚΡΙΤΟΥ τίτλου
ΑΠΟ m_product
ΟΠΟΥ τίτλος LIKE "M*"?

Αίτημα Q015.Ένα παράδειγμα εκτέλεσης αριθμητικών πράξεων σε πεδία σε ένα ερώτημα και μετονομασία πεδίων σε ένα ερώτημα (ψευδώνυμο). Αυτό το παράδειγμα υπολογίζει έξοδο = ποσότητα*τιμή και κέρδος για κάθε εγγραφή κατανάλωσης προϊόντος, υποθέτοντας ότι το κέρδος είναι 7 τοις εκατό των πωλήσεων:


ποσό*τιμή/100*7 AS κέρδος
ΑΠΟ m_outcome;

Αίτημα Q016.Αναλύοντας και απλοποιώντας αριθμητικές πράξεις, μπορείτε να αυξήσετε την ταχύτητα εκτέλεσης ερωτήματος:

SELECT dt, product_id, ποσό, τιμή, ποσό*τιμή AS outcome_sum,
outcome_sum*0,07 AS κέρδος
ΑΠΟ m_outcome;

Αίτημα Q017.Χρησιμοποιώντας τη δήλωση ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ, μπορείτε να συνδυάσετε δεδομένα από πολλούς πίνακες. Στο παρακάτω παράδειγμα, ανάλογα με την τιμή του ctgry_id, κάθε καταχώρηση στον πίνακα m_income αντιστοιχίζεται με το όνομα της κατηγορίας από τον πίνακα m_category στον οποίο ανήκει το προϊόν:

ΕΠΙΛΟΓΗ γ.τίτλος, β.τίτλος, dt, ποσό, τιμή, ποσό*τιμή AS εισόδημα_άθροισμα
FROM (m_income AS INNER JOIN m_product AS b ON a.product_id=b.id)
ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ m_category AS c ON b.ctgry_id=c.id
ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ c.title, b.title;

Αίτημα Q018.Συναρτήσεις όπως SUM - άθροισμα, COUNT - ποσότητα, AVG - αριθμητικός μέσος όρος, MAX - μέγιστη τιμή, MIN - ελάχιστη τιμή ονομάζονται συναρτήσεις συγκεντρωτικών. Παίρνουν πολλαπλές τιμές και επιστρέφουν μία μόνο τιμή όταν υποβάλλονται σε επεξεργασία. Ένα παράδειγμα υπολογισμού του αθροίσματος του γινομένου των πεδίων ποσό και τιμή χρησιμοποιώντας τη συνάρτηση συγκεντρωτικού SUM.

Αυτό το μάθημα αφορά Ερώτημα SQLείμαιστη βάση δεδομένων στις Πρόσβαση VBA. Θα δούμε πώς εκτελούνται τα ερωτήματα VBA INSERT, UPDATE, DELETE στη βάση δεδομένων και θα μάθουμε επίσης πώς να λάβουμε μια συγκεκριμένη τιμή από ένα ερώτημα SELECT.

Αυτοί που προγραμματίζουν Πρόσβαση VBAΚαι ενώ εργάζονται με μια βάση δεδομένων διακομιστή SQL, αντιμετωπίζουν συχνά μια τόσο απλή και απαραίτητη εργασία όπως η αποστολή ενός ερωτήματος SQL στη βάση δεδομένων, είτε είναι INSERT, UPDATE είτε ένα απλό ερώτημα SQL SELECT. Και επειδή είμαστε αρχάριοι προγραμματιστές, θα πρέπει επίσης να μπορούμε να το κάνουμε αυτό, οπότε σήμερα θα κάνουμε ακριβώς αυτό.

Έχουμε ήδη θίξει το θέμα της λήψης δεδομένων από έναν διακομιστή SQL, όπου γράψαμε κώδικα σε VBA για να λάβουμε αυτά τα δεδομένα, για παράδειγμα, σε ένα άρθρο σχετικά με τη Μεταφόρτωση δεδομένων σε αρχείο κειμένου από το MSSql 2008 ή επίσης αγγίξαμε λίγο το υλικό Μεταφόρτωση δεδομένων από την Access σε ένα πρότυπο Word και Excel, αλλά με τον ένα ή τον άλλο τρόπο το θεωρήσαμε επιφανειακά και σήμερα προτείνω να μιλήσουμε για αυτό με λίγο περισσότερες λεπτομέρειες.

Σημείωση! Όλα τα παρακάτω παραδείγματα συζητούνται χρησιμοποιώντας ένα έργο ADP της Access 2003 και μια βάση δεδομένων MSSql 2008.

Αρχικά δεδομένα για παραδείγματα

Ας υποθέσουμε ότι έχουμε έναν πίνακα test_table που θα περιέχει τους αριθμούς και τα ονόματα των μηνών σε ένα έτος (τα ερωτήματα γίνονται χρησιμοποιώντας στούντιο διαχείρισης)

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ .( ΟΧΙ NULL, (50) NULL) ON GO

Όπως είπα, θα χρησιμοποιήσουμε ένα έργο ADP που έχει ρυθμιστεί να λειτουργεί με το MS SQL 2008, στο οποίο δημιούργησα μια δοκιμαστική φόρμα και πρόσθεσα ένα κουμπί έναρξης με λεζάντα "Τρέξιμο", το οποίο θα χρειαστεί να δοκιμάσουμε τον κώδικά μας, π.χ. θα γράψουμε όλο τον κώδικα στον χειριστή συμβάντων " Πατήστε το κουμπί».

Ερωτήματα βάσης δεδομένων INSERT, UPDATE, DELETE σε VBA

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

Private Sub start_Click() "Δηλώστε μια μεταβλητή για αποθήκευση της συμβολοσειράς ερωτήματος Dim sql_query As String "Γράψτε το ερώτημα που χρειαζόμαστε σε αυτό sql_query = "INSERT INTO test_table (id, name_mon) VALUES ("6", "June")" "Execute το με DoCmd RunSQL sql_query End Sub

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

Όπως μπορείτε να δείτε, τα δεδομένα έχουν εισαχθεί.

Για να διαγράψουμε μία γραμμή γράφουμε τον παρακάτω κώδικα.

Private Sub start_Click() "Δηλώστε μια μεταβλητή για να κρατήσει τη συμβολοσειρά ερωτήματος Dim sql_query As String "Write a delete query into it sql_query = "DELETE test_table WHERE id = 6" "Execute it DoCmd.RunSQL sql_query End Sub

Αν ελέγξουμε, θα δούμε ότι η επιθυμητή γραμμή έχει διαγραφεί.

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

ΕΠΙΛΟΓΗ ερωτήματος στη βάση δεδομένων σε VBA

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

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

Private Sub start_Click() "Δήλωση μεταβλητών "Για ένα σύνολο εγγραφών από τη βάση δεδομένων Dim RS As ADODB.Recordset "Σειρά ερωτήματος Dim sql_query As String "Συμβολοσειρά για εμφάνιση συνολικών δεδομένων στο μήνυμα Dim str As String "Δημιουργία νέου αντικειμένου για σύνολο εγγραφών RS = New ADODB .Recordset "Query string sql_query = "SELECT id, name_mon FROM test_table" "Εκτέλεση ερωτήματος χρησιμοποιώντας τις τρέχουσες ρυθμίσεις σύνδεσης έργου για να εμφανίσετε ένα μήνυμα str = str & RS.Fields("id") & "-" & RS. Fields("name_mon") & vbnewline "go to next record RS.MoveNext Wend "Output message msgbox str End Sub

Εδώ χρησιμοποιούμε ήδη βρόχους πρόσβασης VBA για να πραγματοποιήσουμε βρόχο σε όλες τις τιμές στο σύνολο εγγραφών μας.

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

Private Sub start_Click() "Δήλωση μεταβλητών "Για ένα σύνολο εγγραφών από τη βάση δεδομένων Dim RS As ADODB.Recordset "Query string Dim sql_query As String "String για εμφάνιση της τελικής τιμής Dim str ως συμβολοσειρά "Δημιουργία νέου αντικειμένου για σύνολο εγγραφών RS = New ADODB.Recordset "Query string sql_query = "SELECT name_mon FROM test_table WHERE id = 5" "Εκτέλεση ερωτήματος χρησιμοποιώντας τις τρέχουσες ρυθμίσεις σύνδεσης έργου RS.open sql_query, CurrentProject.Connection, adOpenDynamic, adLockOptimistic "Get our valueF.RS. ) msgbox str τέλος υπο

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

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

Αυτά για σήμερα. Καλή τύχη!