PostgreSQL Array: Λειτουργίες, Τύπος, Παράδειγμα

Πίνακας περιεχομένων:

Anonim

Τι είναι το PostgreSQL Array;

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

Κάθε αντίστοιχος τύπος δεδομένων PostgreSQL συνοδεύεται από σχετικό τύπο πίνακα. Για παράδειγμα, ο ακέραιος τύπος δεδομένων έχει τον ακέραιο [] τύπο πίνακα, ο τύπος δεδομένων χαρακτήρων έχει τον χαρακτήρα [] τύπος πίνακα κ.λπ.

Σε αυτό το σεμινάριο PostgreSQL, θα μάθετε:

  • Τι είναι το PostgreSQL Array;
  • Δημιουργία συστοιχιών PostgreSQL
  • Εισαγωγή τιμών συστοιχίας PostgreSQL
  • Ερώτηση δεδομένων συστοιχίας
  • Τροποποίηση της σειράς PostgreSQL
  • Αναζήτηση σε μια σειρά PostgreSQL
  • Επέκταση συστοιχιών
  • Χρήση του pgAdmin

Δημιουργία συστοιχιών PostgreSQL

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

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

Η εντολή πρέπει να εκτελεστεί με επιτυχία.

Εισαγωγή τιμών συστοιχίας PostgreSQL

Ας εισαγάγουμε τώρα τιμές στον παραπάνω πίνακα:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

Η εισαγωγή θα πρέπει να εκτελεστεί με επιτυχία.

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

Σε αυτό το παράδειγμα, τα έχουμε περικλείσει σε αγκύλες []. Έχουμε δύο επαφές για την υπάλληλο Alice John.

Είναι ακόμα δυνατό να χρησιμοποιήσουμε σγουρά τιράντες {} όπως φαίνεται παρακάτω:

INSERT INTO EmployeesVALUES(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 ως τη δεύτερη επαφή, μπορούμε να εκτελέσουμε την ακόλουθη εντολή:

SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';

Αυτό θα επιστρέψει τα ακόλουθα:

Τροποποίηση της σειράς PostgreSQL

Μπορείτε να ενημερώσετε όλα ή ένα στοιχείο ενός πίνακα.

Ακολουθούν τα περιεχόμενα του πίνακα «Υπάλληλοι»:

Ας ενημερώσουμε τον δεύτερο αριθμό τηλεφώνου του υπαλλήλου James Bush, του οποίου το αναγνωριστικό είναι 3:

Εκτελέστε την ακόλουθη εντολή:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

Η εντολή πρέπει να εκτελεστεί με επιτυχία:

Ας ρωτήσουμε τον πίνακα για να ελέγξουμε εάν η αλλαγή ήταν επιτυχής:

Η αλλαγή ήταν επιτυχής.

Αναζήτηση σε μια σειρά PostgreSQL

Επί του παρόντος, ο πίνακας υπαλλήλων μας έχει ως εξής:

Ας υποθέσουμε ότι πρέπει να γνωρίζουμε ποιος κατέχει την επαφή (408) -783-5731 ανεξάρτητα από τη θέση του πίνακα επαφών, μπορούμε να χρησιμοποιήσουμε τη λειτουργία ΟΠΟΙΑΔΗΠΟΤΕ () όπως φαίνεται παρακάτω:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

Αυτό θα επιστρέψει τα ακόλουθα:

Επέκταση συστοιχιών

Μπορούμε να χωρίσουμε τις τιμές ενός πίνακα σε σειρές. Αυτή η διαδικασία είναι γνωστή ως επέκταση πίνακα.

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

Η PostgreSQL παρέχει τη λειτουργία unest () που μπορεί να χρησιμοποιηθεί για αυτό.

Για παράδειγμα:

SELECTname,unnest(contact)FROMEmployees;

Αυτό θα επιστρέψει τα ακόλουθα:

Οι υπάλληλοι Alice John και James Bush, έχουν δύο επαφές. Μπορούμε να χωριστούμε σε ξεχωριστές σειρές.

Χρήση του pgAdmin

Δημιουργία συστοιχιών PostgreSQL

Για να το πετύχετε μέσω του pgAdmin, κάντε το:

Βήμα 1) Συνδεθείτε στον λογαριασμό σας στο pgAdmin.

Βήμα 2)

  1. Από τη γραμμή πλοήγησης στα αριστερά- Κάντε κλικ στο rbases.
  2. Κάντε κλικ στο κουμπί επίδειξης

Βήμα 3) Πληκτρολογήστε το ερώτημα στον επεξεργαστή ερωτημάτων για να δημιουργήσετε τον πίνακα υπαλλήλων:

CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);

Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.

Εισαγωγή τιμών συστοιχίας PostgreSQL

Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);

Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση:

Βήμα 3)

Για να χρησιμοποιήσετε σγουρά τιράντες στο ερώτημα

Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');

Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση:

Ερώτηση δεδομένων συστοιχίας

Βήμα 1) Για να δείτε τα περιεχόμενα του πίνακα υπαλλήλων, πληκτρολογήστε το ακόλουθο ερώτημα στον επεξεργαστή ερωτημάτων:

SELECT * FROM Employees;

Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση:

Θα πρέπει να επιστρέψει τα ακόλουθα:

Βήμα 3) Για να δείτε τις πρώτες επαφές των υπαλλήλων:

  1. Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
    SELECT name, contact[1]FROM Employees;
  2. Κάντε κλικ στο κουμπί Εκτέλεση.

Θα πρέπει να επιστρέψει τα ακόλουθα:

Βήμα 4) Για να συνδυάσετε τη δήλωση SELECT με τη ρήτρα WHERE:

  1. Πληκτρολογήστε την ακόλουθη εντολή στο πρόγραμμα επεξεργασίας ερωτημάτων:
    SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
  2. Κάντε κλικ στο κουμπί Εκτέλεση.

Θα πρέπει να επιστρέψει τα ακόλουθα:

Τροποποίηση της σειράς PostgreSQL

Βήμα 1) Για να ενημερώσετε τη δεύτερη επαφή του χρήστη με αναγνωριστικό 3, εκτελέστε την ακόλουθη εντολή:

UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;

Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.

Βήμα 3)

1. Πληκτρολογήστε την ακόλουθη εντολή στο πρόγραμμα επεξεργασίας ερωτημάτων για να ελέγξετε εάν η αλλαγή ήταν επιτυχής:

SELECT * FROM Employees;

2. Κάντε κλικ στο κουμπί Εκτέλεση.

Θα πρέπει να επιστρέψει τα ακόλουθα:

Αναζήτηση σε μια σειρά PostgreSQL

Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);

Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.

Θα πρέπει να επιστρέψει τα ακόλουθα:

Επέκταση συστοιχιών

Βήμα 1) Πληκτρολογήστε το ακόλουθο ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:

SELECTname,unnest(contact)FROMEmployees;

Βήμα 2) Κάντε κλικ στο κουμπί Εκτέλεση.

Θα πρέπει να επιστρέψει τα ακόλουθα:

Περίληψη:

  • Η PostgreSQL μας επιτρέπει να ορίσουμε μια στήλη πίνακα ως τύπο πίνακα.
  • Ο πίνακας πρέπει να είναι έγκυρος τύπος δεδομένων, όπως ακέραιος, χαρακτήρας ή καθορισμένος από τον χρήστη τύπος.
  • Για να εισαγάγουμε τιμές σε μια στήλη πίνακα, χρησιμοποιούμε τον κατασκευαστή ARRAY.
  • Εάν υπάρχουν περισσότερα από ένα στοιχεία στην ίδια σειρά μιας στήλης πίνακα, το πρώτο στοιχείο βρίσκεται στη θέση 1.
  • Μπορείτε να αποκτήσετε πρόσβαση σε κάθε τιμή περνώντας μια συνδρομή εντός αγκυλών [].
  • Τα στοιχεία του πίνακα μπορούν να ανακτηθούν χρησιμοποιώντας τη δήλωση SELECT.
  • Οι τιμές της στήλης πίνακα μπορούν να περικλείονται εντός αγκυλών [] ή σγουρών αγκυλών {}.
  • Μπορούμε να αναζητήσουμε τιμές στήλης πίνακα χρησιμοποιώντας τη συνάρτηση ANY ().

Κατεβάστε τη βάση δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο