PostgreSQL Πίνακας: Λειτουργίες, Τύπος, Παράδειγμα
⚡ Έξυπνη Σύνοψη
PostgreSQL Ο πίνακας σάς επιτρέπει να ορίσετε μια στήλη πίνακα ως πίνακα οποιουδήποτε έγκυρου τύπου δεδομένων. Καλύπτει τη δημιουργία στηλών πίνακα, την εισαγωγή τιμών με τον κατασκευαστή ARRAY ή αγκύλες, την υποβολή ερωτημάτων και την τροποποίηση στοιχείων και την αναζήτηση με ANY().

Τι είναι PostgreSQL Πίνακας?
In PostgreSQL, μπορούμε να ορίσουμε μια στήλη ως έναν πίνακα έγκυρων τύπων δεδομένων. Ο τύπος δεδομένων μπορεί να είναι ενσωματωμένος, οριζόμενος από τον χρήστη ή απαριθμημένος. Εκτός από αυτό, οι πίνακες παίζουν σημαντικό ρόλο στο PostgreSQL.
Κάθε αντίστοιχο PostgreSQL Ο τύπος δεδομένων συνοδεύεται από έναν σχετικό τύπο πίνακα. Για παράδειγμα, ο τύπος δεδομένων integer έχει τον τύπο πίνακα integer[], ο τύπος δεδομένων character έχει τον τύπο πίνακα character[] και ούτω καθεξής.
δημιουργία 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. Για να δούμε τα περιεχόμενα του πίνακα Employees, εκτελούμε την ακόλουθη εντολή:
SELECT * FROM Employees;
Αυτό επιστρέφει τα ακόλουθα:
Τα στοιχεία της στήλης του πίνακα, δηλαδή η επαφή, έχουν περικλειστεί σε αγκύλες {}. Για να αποκτήσουμε πρόσβαση στα ίδια τα στοιχεία του πίνακα, προσθέτουμε ένα δείκτη μέσα σε αγκύλες []. Το πρώτο στοιχείο σε έναν πίνακα βρίσκεται στη θέση 1.
Για παράδειγμα, πρέπει να λάβουμε τα ονόματα των υπαλλήλων και μόνο την πρώτη τους επαφή για τους υπαλλήλους με περισσότερες από μία επαφές. Μπορούμε να έχουμε πρόσβαση σε αυτό ως contact[1]. Ας δούμε τα εξής:
SELECT name, contact[1] FROM Employees;
Αυτό θα επιστρέψει τα ακόλουθα:
Μπορούμε να χρησιμοποιήσουμε την πρόταση SELECT μαζί με τον όρο WHERE για να φιλτράρουμε γραμμές με βάση τη στήλη του πίνακα. Για παράδειγμα, για να δούμε τον υπάλληλο με (408)-567-78234 ως τη δεύτερη επαφή, μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Αυτό θα επιστρέψει τα ακόλουθα:
Τροποποίηση PostgreSQL Παράταξη
Μπορείτε να ενημερώσετε ολόκληρο ή ένα μόνο στοιχείο ενός πίνακα. Ακολουθούν τα περιεχόμενα του πίνακα Employees:
Ας ενημερώσουμε τον δεύτερο αριθμό τηλεφώνου του υπαλλήλου 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)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο κουμπί Επίδειξη.
Βήμα 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) Για να χρησιμοποιήσετε αγκύλες στο ερώτημα, πληκτρολογήστε το ακόλουθο ερώτημα στον επεξεργαστή ερωτημάτων:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Στη συνέχεια, κάντε κλικ στο κουμπί Εκτέλεση:
Ερώτηση δεδομένων πίνακα
Βήμα 1) Για να δείτε τα περιεχόμενα του πίνακα Employees, πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
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) Πληκτρολογήστε την ακόλουθη εντολή στον επεξεργαστή ερωτημάτων για να ελέγξετε εάν η αλλαγή ήταν επιτυχής και, στη συνέχεια, κάντε κλικ στο κουμπί Εκτέλεση:
SELECT * FROM Employees;
Θα πρέπει να επιστρέψει τα ακόλουθα:
Ψάχνοντας σε α PostgreSQL Παράταξη
Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Επέκταση Πίνακες
Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
SELECT name, unnest(contact) FROM Employees;
Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.
Θα πρέπει να επιστρέψει τα ακόλουθα:
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο






























