PostgreSQL Πίνακας: Λειτουργίες, Τύπος, Παράδειγμα
Τι είναι PostgreSQL Πίνακας?
In PostgreSQL, μπορούμε να ορίσουμε μια στήλη ως έναν πίνακα έγκυρων τύπων δεδομένων. Ο τύπος δεδομένων μπορεί να είναι ενσωματωμένος, καθορισμένος από το χρήστη ή απαριθμημένος τύπος. Εκτός από αυτό, οι πίνακες παίζουν σημαντικό ρόλο PostgreSQL.
Κάθε αντίστοιχο PostgreSQL ο τύπος δεδομένων συνοδεύεται από σχετικό τύπο πίνακα. Για παράδειγμα, ο ακέραιος τύπος δεδομένων έχει τον τύπο πίνακα ακέραιου[], ο τύπος δεδομένων χαρακτήρων έχει τον τύπο πίνακα χαρακτήρων[] κ.λπ.
δημιουργία PostgreSQL Array
Στο παρακάτω παράδειγμα, θα δημιουργήσουμε έναν πίνακα με το όνομα Employees με τη στήλη επαφών να ορίζεται ως πίνακας κειμένου:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Η εντολή πρέπει να εκτελεστεί με επιτυχία.
Εισαγωγή PostgreSQL Τιμές Πίνακα
Άσε μας τώρα εισάγετε τιμές στον παραπάνω πίνακα:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Η εισαγωγή πρέπει να εκτελεστεί με επιτυχία.
Οι τιμές της τρίτης στήλης, δηλαδή της επαφής, έχουν εισαχθεί ως πίνακας. Αυτό έχει επιτευχθεί με τη χρήση του κατασκευαστή ARRAY.
Σε αυτό το παράδειγμα, τα έχουμε περικλείσει μέσα σε αγκύλες []. Έχουμε δύο επαφές για την υπάλληλο Alice John.
Είναι ακόμα δυνατό να χρησιμοποιήσουμε σγουρά τιράντες {} όπως φαίνεται παρακάτω:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Η εντολή πρέπει να εκτελεστεί με επιτυχία.
Οι παραπάνω δηλώσεις θα εισαγάγουν δύο σειρές στον πίνακα Εργαζόμενοι. Όταν χρησιμοποιείτε σγουρά στηρίγματα, ο πίνακας τυλίγεται μέσα σε μονά εισαγωγικά (') ενώ τα στοιχεία του πίνακα κειμένου είναι τυλιγμένα σε διπλά εισαγωγικά (“).
Ερώτηση δεδομένων πίνακα
Για να ρωτήσουμε τα στοιχεία ενός πίνακα, χρησιμοποιούμε την πρόταση SELECT.
Για να δούμε τα περιεχόμενα του πίνακα Υπαλλήλων μας, εκτελούμε την ακόλουθη εντολή:
SELECT * FROM Employees;
Αυτό επιστρέφει τα ακόλουθα:
Τα στοιχεία της στήλης πίνακα, δηλαδή η επαφή, έχουν εγκλειστεί μέσα σε σγουρά άγκιστρα {}.
Για να αποκτήσουμε πρόσβαση στα ίδια τα στοιχεία του πίνακα, προσθέτουμε έναν δείκτη μέσα σε αγκύλες []. Το πρώτο στοιχείο σε έναν πίνακα βρίσκεται στη θέση 1.
Για παράδειγμα, πρέπει να λάβουμε τα ονόματα των εργαζομένων και μόνο την πρώτη επαφή για εκείνους τους υπαλλήλους με περισσότερες από μία επαφές. Μπορούμε να έχουμε πρόσβαση σε αυτό ως επαφή[1].
Ας δούμε αυτό:
SELECT name, contact[1] FROM Employees;
Αυτό θα επιστρέψει τα ακόλουθα:
Μπορούμε να χρησιμοποιήσουμε την πρόταση SELECT μαζί με την πρόταση WHERE για να φιλτράρουμε σειρές με βάση τη στήλη του πίνακα.
Για παράδειγμα, για να δούμε τον υπάλληλο με (408)-567-78234 ως δεύτερη επαφή, μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Αυτό θα επιστρέψει τα ακόλουθα:
Τροποποίηση PostgreSQL Παράταξη
Μπορείτε να ενημερώσετε όλο ή ένα μόνο στοιχείο ενός πίνακα.
Ακολουθούν τα περιεχόμενα του πίνακα Υπαλλήλων:
Ας ενημερώσουμε τον δεύτερο αριθμό τηλεφώνου του υπαλλήλου James Bush, του οποίου το αναγνωριστικό είναι 3:
Εκτελέστε την ακόλουθη εντολή:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Η εντολή πρέπει να εκτελεστεί με επιτυχία:
Ας ρωτήσουμε τον πίνακα για να ελέγξουμε αν η αλλαγή ήταν επιτυχής:
Η αλλαγή ήταν επιτυχής.
Ψάχνοντας σε α PostgreSQL Παράταξη
Επί του παρόντος, ο πίνακας των εργαζομένων μας έχει ως εξής:
Ας υποθέσουμε ότι πρέπει να γνωρίζουμε σε ποιον ανήκει η επαφή (408)-783-5731 ανεξάρτητα από τη θέση μέσα στη συστοιχία επαφών, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση ANY() όπως φαίνεται παρακάτω:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Αυτό θα επιστρέψει τα ακόλουθα:
Επέκταση Πίνακες
Μπορούμε να χωρίσουμε τις τιμές ενός πίνακα σε σειρές. Αυτή η διαδικασία είναι γνωστή ως επέκταση πίνακα.
Στο παράδειγμα του πίνακα Εργαζόμενοι, υπάρχουν ορισμένοι υπάλληλοι με δύο επαφές στη συστοιχία επαφών. Μπορούμε να τα χωρίσουμε σε ξεχωριστές σειρές.
PostgreSQL παρέχει τη συνάρτηση unnest() που μπορεί να χρησιμοποιηθεί για αυτό.
Για παράδειγμα:
SELECT name, unnest(contact) FROM Employees;
Αυτό θα επιστρέψει τα ακόλουθα:
Οι υπάλληλοι Alice John και James Bush, έχουν δύο επαφές. Μπορούμε να χωρίσουμε σε ξεχωριστές σειρές.
Χρήση του pgAdmin
δημιουργία PostgreSQL Array
Για να πετύχετε το ίδιο μέσω του pgAdmin, κάντε το εξής:
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά - Κάντε κλικ στο rbases.
- Κάντε κλικ στο κουμπί Επίδειξη
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων για να δημιουργήσετε τον πίνακα Υπάλληλοι:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Εισαγωγή PostgreSQL Τιμές Πίνακα
Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση:
Βήμα 3)
Για να χρησιμοποιήσετε σγουρά τιράντες στο ερώτημα
Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση:
Ερώτηση δεδομένων πίνακα
Βήμα 1) Για να δείτε τα περιεχόμενα του πίνακα Υπάλληλοι, πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT * FROM Employees;
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση:
Θα πρέπει να επιστρέψει τα ακόλουθα:
Βήμα 3) Για να δείτε τις πρώτες επαφές των εργαζομένων:
- Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT name, contact[1] FROM Employees;
- Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Βήμα 4) Για να συνδυάσετε τη δήλωση SELECT με την πρόταση WHERE:
- Πληκτρολογήστε την ακόλουθη εντολή στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
- Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Τροποποίηση PostgreSQL Παράταξη
Βήμα 1) Για να ενημερώσετε τη δεύτερη επαφή χρήστη με αναγνωριστικό 3, εκτελέστε την ακόλουθη εντολή:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 3)
1. Πληκτρολογήστε την ακόλουθη εντολή στο πρόγραμμα επεξεργασίας ερωτημάτων για να ελέγξετε εάν η αλλαγή ήταν επιτυχής:
SELECT * FROM Employees;
2. Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Ψάχνοντας σε α PostgreSQL Παράταξη
Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Επέκταση Πίνακες
Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT name, unnest(contact) FROM Employees;
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Σύνοψη
- PostgreSQL μας επιτρέπει να ορίσουμε μια στήλη πίνακα ως τύπο πίνακα.
- Ο πίνακας πρέπει να είναι έγκυρος Τύπος δεδομένων όπως ακέραιος, χαρακτήρας ή τύποι που καθορίζονται από το χρήστη.
- Για να εισαγάγουμε τιμές σε μια στήλη πίνακα, χρησιμοποιούμε τον κατασκευαστή ARRAY.
- Εάν υπάρχουν περισσότερα από ένα στοιχεία στην ίδια σειρά μιας στήλης πίνακα, το πρώτο στοιχείο βρίσκεται στη θέση 1.
- Κάθε τιμή μπορεί να προσπελαστεί περνώντας έναν δείκτη μέσα σε αγκύλες [].
- Τα στοιχεία του πίνακα μπορούν να ανακτηθούν χρησιμοποιώντας την πρόταση SELECT.
- Οι τιμές της στήλης πίνακα μπορούν να περικλείονται σε αγκύλες [] ή σγουρές αγκύλες {}.
- Μπορούμε να αναζητήσουμε τιμές στηλών πίνακα χρησιμοποιώντας τη συνάρτηση ANY().
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο