λογισμικό

* Γνώση Υπολογιστών >> λογισμικό >> λογισμικού βάσεων δεδομένων

Πώς να οικοδομήσουμε μια Dynamic Query σε Oracle

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

Ανοίξτε Oracle και κάντε κλικ στο εικονίδιο για να ανοίξετε το εργαλείο SQL Workshop . 2

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

" CREATE TYPE t_students ΩΣ ΑΝΤΙΚΕΙΜΕΝΟ ( ΑΡΙΘΜΟΣ Σπουδαστή , full_name VARCHAR2 ( 30 ) )

/

CREATE TYPE t_studentlist ΩΣ ΠΙΝΑΚΑΣ t_student

/"

στις παραπάνω δηλώσεις , θα δημιουργήσει μια βάση δεδομένων με το όνομα" t_students »που θα χρησιμοποιήσει " Σπουδαστή »και« τιμές full_name ", όπως μοναδικά αναγνωριστικά ( ένας τρόπος για να προσδιορίσει ένα μοναδικό ρεκόρ σε μια βάση δεδομένων ) . Η " Σπουδαστή " τιμή θα είναι ένα " NUMBER " μεταβλητή , που σημαίνει ότι μόνο οι αριθμοί θα σώσει το πεδίο " Σπουδαστή » . Η " full_name " αξία μπορεί να κρατήσει μόνο μέχρι 30 χαρακτήρες επιστολή . Τέλος , ένας τύπος πίνακα ( " t_studentlist " ) δημιουργήθηκε στο εσωτερικό της « t_student " βάση δεδομένων. Αλλάξετε αυτές τις τιμές να αντιπροσωπεύουν καλύτερα το είδος των δεδομένων που έχετε στη βάση δεδομένων της Oracle .
Εικόνων 3

Γράψτε τις δηλώσεις SQL για να δημιουργήσει τις πραγματικές πίνακες στη βάση δεδομένων . Ο πίνακας δανείζεται τη δομή των τύπων που δημιουργήσατε στο Βήμα 2 , έτσι ώστε να μην χρειάζεται να καθορίσετε τα αναγνωριστικά και πάλι . Χρησιμοποιώντας το ίδιο παράδειγμα , η SQL για τη δημιουργία των πινάκων θα μοιάζει με αυτό :

" CREATE TABLE students_new ( ΑΡΙΘΜΟΣ Σπουδαστή , οι μαθητές t__studentlist )

ένθετο πίνακα φοιτητές STORE AS student_table ? "

Η " students_new " τραπέζι θα συνδεθεί με το "σπουδαστές " τραπέζι και " t_studentlist " χρησιμοποιώντας το πεδίο " Σπουδαστή » . Κάθε φοιτητής στο τραπέζι θα έχει έναν μοναδικό αριθμό που συνδέει τις πληροφορίες του μαθητή σε κάθε πίνακα . Με αυτό τον τρόπο , δεν θα έχετε επαναλαμβανόμενες δεδομένα στους πίνακες . Για παράδειγμα , σε μια βάση δεδομένων μαθητής, έχετε έναν πίνακα που περιέχει τα στοιχεία επικοινωνίας των φοιτητών ( όνομα , αριθμό τηλεφώνου και διεύθυνση ηλεκτρονικού ταχυδρομείου ) και ένα άλλο τραπέζι που κρατά από το τρέχον πρόγραμμά του μαθητή . Το μόνο πεδίο που θα είναι η ίδια και στους δύο πίνακες είναι το « Σπουδαστή " πεδίο που συνδέει τις πληροφορίες. Μπορείτε να χρησιμοποιήσετε το πεδίο " Σπουδαστή » να γράψει ένα ερώτημα που τραβά το όνομα του μαθητή και τον αριθμό τηλεφώνου από τα στοιχεία επικοινωνίας των φοιτητών και πληροφορίες για το πρόγραμμα του μαθητή από τον πίνακα χρονοδιάγραμμα.
Η 4

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

" INSERT INTO students_new ΑΞΙΕΣ (

10 , πώληση

t_studentlist (

t_students ( 1 , « John Doe » ) , πώληση

t_students ( 2 , 'Jane Smith » ))) ?

ΔΗΛΩΝΟΥΝ

ΑΡΙΘΜΟΣ majorId ?

SNAME VARCHAR1 ( 20 ) ? "

Δύο φοιτητές προστέθηκαν στον πίνακα . John Doe έχει μια φοιτητική ταυτότητα των " 1" και η Jane Smith έχει μια φοιτητική ταυτότητα των " 2 . " Όλα μέσα από τις πληροφορίες της βάσης δεδομένων John Doe θα έχουν ένα αναγνωριστικό "1 . "
5

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

"BEGIN

ΕΚΤΕΛΕΣΗ ΑΜΕΣΗ ' SELECT s.studentId , s.fullname

ΑΠΟ students_new s , ΠΙΝΑΚΑΣ ( s.students ) s

ΟΠΟΥ s.studentId = 1 '

ΣΕ majorId , SNAME ?

ΤΕΛΟΣ ?

/"

στο δυναμικό ερώτημα, λαμβάνουν πληροφορίες από το " students_new " τραπέζι και να αρχίσει τις " majorId " και " SNAME " πεδία ενός πίνακα που δεν είναι γνωστό αυτή τη στιγμή ( ( s.students ) s ) . Μπορείτε αμφισβήτησε τη βάση δεδομένων για πληροφορίες σχετικά με ένα φοιτητή με ένα αναγνωριστικό του " 1 ". Χρησιμοποιώντας το παράδειγμα , ο John Doe είναι ο μαθητής που επιλέγεται από τον πίνακα των μαθητών και προστίθεται στο άγνωστο τραπέζι .
Η

6 Πατήστε το πλήκτρο " F9 " στο πληκτρολόγιό σας για να εκτελέσετε το ερώτημα και να το δοκιμάσετε .


Η

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα