PostgreSQL ΑΛΛΑΓΗ ΠΙΝΑΚΑ: Προσθήκη & Μετονομασία Στήλης
⚡ Έξυπνη Σύνοψη
PostgreSQL Η συνάρτηση ALTER TABLE αλλάζει τη δομή ενός υπάρχοντος πίνακα, επιτρέποντάς σας να προσθέσετε ή να αφαιρέσετε στήλες, να μετονομάσετε μια στήλη ή ολόκληρο τον πίνακα, να ορίσετε προεπιλεγμένες τιμές και να επισυνάψετε περιορισμούς ελέγχου χωρίς να δημιουργήσετε ξανά το αντικείμενο.

Τι είναι το ALTER TABLE στο PostgreSQL?
The ΠΙΝΑΚΑΣ ΕΝΑΛΛΑΓΗΣ Η εντολή χρησιμοποιείται για να αλλάξει τη δομή ενός PostgreSQL πίνακα. Είναι η εντολή που χρησιμοποιείται για την αλλαγή των στηλών του πίνακα ή του ίδιου του ονόματος του πίνακα, χωρίς να χρειάζεται ναping και αναδημιουργώντας το αντικείμενο.
Σύνταξη
Εδώ είναι η σύνταξη για το PostgreSQL Εντολή ALTER TABLE:
ALTER TABLE table-name action;
Η παράμετρος table-name είναι το όνομα του πίνακα που πρέπει να αλλάξετε. Η παράμετρος action είναι η ενέργεια που πρέπει να εκτελέσετε, όπως η αλλαγή του ονόματος μιας στήλης ή η αλλαγή του τύπου δεδομένων μιας στήλης.
Περιγραφή
Η εντολή ALTER TABLE αλλάζει τον ορισμό ενός υπάρχοντος πίνακα. Παίρνει τις ακόλουθες υποφόρμες:
- ΠΡΟΣΘΗΚΗ ΣΤΗΛΗΣ: αυτό χρησιμοποιεί παρόμοια σύνταξη με την εντολή CREATE TABLE για να προσθέσει μια νέα στήλη σε έναν πίνακα.
- ΣΤΗΛΗ ΠΤΩΣΗΣ: για πτώσηping μια στήλη πίνακα. Οι περιορισμοί και τα ευρετήρια που επιβάλλονται στις στήλες θα παραλειφθούν επίσης.
- ΡΥΘΜΙΣΗ/ΑΠΟΣΤΟΛΗ ΠΡΟΕΠΙΛΟΓΗ: χρησιμοποιείται για τον ορισμό ή την κατάργηση της προεπιλεγμένης τιμής για μια στήλη. Η αλλαγή ισχύει μόνο για τις επόμενες ΕΙΣΑΓΩΓΗ δηλώσεις.
- SET/DROP NOT NULL: αλλάζει εάν μια στήλη θα επιτρέπει null τιμές ή όχι.
- ΣΤΑΤΙΣΤΙΚΑ ΣΤΟΙΧΕΙΑ: για τον ορισμό του στόχου συλλογής στατιστικών στοιχείων για κάθε στήλη για τις λειτουργίες ΑΝΑΛΥΣΗΣ.
- ΡΥΘΜΙΣΗ ΑΠΟΘΗΚΕΥΣΗΣ: για τον ορισμό της λειτουργίας αποθήκευσης για μια στήλη, είτε ενσωματωμένη είτε σε συμπληρωματικό πίνακα.
- ΣΕΤ ΧΩΡΙΣ ΟΙΔΙΑ: χρησιμοποιείται για την αφαίρεση της παλιάς στήλης OID του πίνακα.
- ΜΕΤΟΝΟΜΑΖΩ: για την αλλαγή του ονόματος του πίνακα ή ενός ονόματος στήλης.
- ΠΡΟΣΘΗΚΗ πίνακα_περιορισμού: χρησιμοποιείται για την προσθήκη ενός νέου περιορισμού σε έναν πίνακα. Χρησιμοποιεί την ίδια σύνταξη με το Δημιουργία πίνακα εντολή.
- ΠΡΟΣΤΑΤΕΥΤΙΚΗ ΣΥΣΚΕΥΗ: χρησιμοποιείται για πτώσηping ένας περιορισμός πίνακα.
- ΙΔΙΟΚΤΗΤΗΣ: για την αλλαγή του κατόχου ενός πίνακα, ακολουθίας, ευρετηρίου ή προβολής σε έναν συγκεκριμένο χρήστη.
- CLUSTER: για την επισήμανση ενός πίνακα που θα χρησιμοποιηθεί για μελλοντικές λειτουργίες συμπλέγματος.
Τροποποίηση στήλης
Μια στήλη μπορεί να τροποποιηθεί με διάφορους τρόπους. Τέτοιες τροποποιήσεις γίνονται χρησιμοποιώντας την εντολή ALTER TABLE. Ας τις συζητήσουμε παρακάτω.
Προσθήκη νέας στήλης
Για να προσθέσετε μια νέα στήλη στο a PostgreSQL πίνακα, η εντολή ALTER TABLE χρησιμοποιείται με την ακόλουθη σύνταξη:
ALTER TABLE table-name ADD new-column-name column-definition;
Το όνομα-πίνακα είναι το όνομα του πίνακα που θα τροποποιηθεί. Το όνομα-νέας-στήλης είναι το όνομα της νέας στήλης που θα προστεθεί. Ο ορισμός-στήλης είναι το Τύπος δεδομένων της νέας στήλης. Δείτε τον πίνακα Βιβλίων που εμφανίζεται παρακάτω:
Ο πίνακας έχει δύο στήλες, id και name. Πρέπει να προσθέσουμε μια νέα στήλη στον πίνακα και να της δώσουμε το όνομα author. Απλώς εκτελέστε την ακόλουθη εντολή:
ALTER TABLE Book ADD author VARCHAR(50);
Αφού εκτελέσετε την παραπάνω εντολή, ο πίνακας Book έχει πλέον ως εξής:
Η νέα στήλη προστέθηκε με επιτυχία.
Μετονομασία στήλης πίνακα
Μπορούμε να χρησιμοποιήσουμε την εντολή ALTER TABLE για να αλλάξουμε το όνομα μιας στήλης. Σε αυτήν την περίπτωση, η εντολή χρησιμοποιείται με την ακόλουθη σύνταξη:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
Το όνομα-πίνακα είναι το όνομα του πίνακα του οποίου η στήλη πρόκειται να μετονομαστεί. Το παλιό-όνομα είναι το τρέχον όνομα της στήλης και το νέο-όνομα είναι το νέο όνομα της στήλης. Θεωρήστε τον πίνακα Βιβλίο που φαίνεται παρακάτω:
Βιβλίο:
Πρέπει να αλλάξουμε το όνομα του συγγραφέα της στήλης σε book_author. Η εντολή είναι η εξής:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Αφού εκτελέσουμε την εντολή, μπορούμε να δούμε τη δομή του πίνακα:
Το όνομα της στήλης άλλαξε με επιτυχία.
Ορισμός προεπιλεγμένης τιμής για στήλη
Μπορούμε να ορίσουμε μια προεπιλεγμένη τιμή για μια στήλη, έτσι ώστε ακόμα και όταν δεν καθορίζετε μια τιμή για αυτήν τη στήλη κατά τη διάρκεια των λειτουργιών INSERT, να χρησιμοποιείται η προεπιλεγμένη τιμή. Σε αυτήν την περίπτωση, η εντολή ALTER TABLE μπορεί να χρησιμοποιηθεί με την ακόλουθη σύνταξη:
ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];
Το όνομα-πίνακα είναι το όνομα του πίνακα του οποίου η στήλη πρόκειται να τροποποιηθεί. Το όνομα-στήλης είναι το όνομα της στήλης της οποίας η προεπιλεγμένη τιμή πρόκειται να οριστεί και η τιμή είναι η προεπιλεγμένη τιμή για τη στήλη. Θεωρήστε τον πίνακα Βιβλίου που δίνεται παρακάτω:
Πρέπει να ορίσουμε μια προεπιλεγμένη τιμή για τη στήλη book_author. Μπορούμε να εκτελέσουμε την ακόλουθη εντολή:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Τώρα, ας εισαγάγουμε μια σειρά στον πίνακα:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners');
Σημειώστε ότι εισαγάγαμε τιμές μόνο για δύο στήλες, το id και το name. Ωστόσο, η προεπιλεγμένη τιμή έχει χρησιμοποιηθεί για τη στήλη book_author:
Προσθήκη περιορισμού ελέγχου
Ένας περιορισμός ελέγχου βοηθά στην επικύρωση των εγγραφών που εισάγονται σε έναν πίνακα. Μπορούμε να το κάνουμε αυτό συνδυάζοντας την εντολή ALTER TABLE με την πρόταση ADD CHECK. Σύνταξη:
ALTER TABLE table-name ADD CHECK expression;
Το όνομα-πίνακα είναι το όνομα του πίνακα που θα τροποποιηθεί και η έκφραση είναι ο περιορισμός που θα επιβληθεί στη στήλη του πίνακα. Ας τροποποιήσουμε τη στήλη book_author του πίνακα Book έτσι ώστε να δέχεται μόνο τις τιμές Nicholas και Samuel:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));
Τώρα, ας προσπαθήσουμε να εισαγάγουμε μια τιμή διαφορετική από τον Nicholas ή τον Samuel στη στήλη book_author του πίνακα Βιβλίο:
INSERT INTO Book VALUES(7, 'καλυτερα PostgreSQL Book', 'Gregory Bush');
Η δήλωση θα επιστρέψει το ακόλουθο σφάλμα:
Η λειτουργία εισαγωγής απέτυχε επειδή παραβιάσαμε τον περιορισμό ελέγχου.
Μετονομασία πίνακα
Ακολουθεί η σύνταξη για την εντολή ALTER TABLE για τη μετονομασία ενός πίνακα:
ALTER TABLE table-name RENAME TO new-table-name;
Το όνομα-πίνακα είναι το τρέχον όνομα του πίνακα και το νέο όνομα-πίνακα είναι το νέο όνομα που θα αντιστοιχιστεί στον πίνακα. Για παράδειγμα, ας αλλάξουμε το όνομα του πίνακα Βιβλίο σε Βιβλία:
ALTER TABLE Book RENAME TO Books;
Χρήση του pgAdmin
Μέχρι στιγμής οι ενέργειες έχουν εκτελεστεί από το κέλυφος SQL. Τώρα ας δούμε πώς αυτές οι ίδιες ενέργειες μπορούν να εκτελεστούν οπτικά χρησιμοποιώντας το pgAdmin.
Προσθήκη νέας στήλης
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
ALTER TABLE Book ADD author VARCHAR(50);
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Για να ελέγξετε αν προστέθηκε η στήλη, κάντε τα εξής:
- Κάντε κλικ στην επιλογή Βάσεις δεδομένων από το αριστερό μενού πλοήγησης.
- Αναπτύξτε το Demo.
- Αναπτύξτε τα σχήματα.
- Αναπτύξτε το Public.
- Αναπτύξτε τους πίνακες.
- Αναπτύξτε το βιβλίο.
- Αναπτύξτε τις Στήλες.
Η στήλη θα έπρεπε να έχει προστεθεί, όπως φαίνεται παρακάτω:
Μετονομασία στήλης πίνακα
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Για να ελέγξετε εάν η αλλαγή ήταν επιτυχής, αναπτύξτε τις στήλες του πίνακα βιβλίων όπως πριν:
Οι στήλες πρέπει τώρα να είναι οι εξής:
Η στήλη άλλαξε με επιτυχία.
Ορισμός προεπιλεγμένης τιμής για στήλη
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Για να το δοκιμάσετε, εκτελέστε την ακόλουθη εντολή στον επεξεργαστή ερωτημάτων:
INSERT INTO Book (id, name) VALUES (6, 'PostgreSQL for Beginners')
Βήμα 6) Τώρα, μπορούμε να υποβάλουμε ερώτημα στον πίνακα για να ελέγξουμε εάν η προεπιλεγμένη τιμή εισήχθη στη στήλη book_author:
Προσθήκη περιορισμού ελέγχου
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Για να το δοκιμάσετε αυτό, πληκτρολογήστε το ακόλουθο ερώτημα στον επεξεργαστή ερωτημάτων και κάντε κλικ στο κουμπί Εκτέλεση:
INSERT INTO Book VALUES(7, 'καλυτερα PostgreSQL Book', 'Gregory Bush');
Θα επιστρέψει τα εξής:
Μετονομασία πίνακα
Βήμα 1) Συνδεθείτε στον λογαριασμό σας pgAdmin.
Βήμα 2)
- Από τη γραμμή πλοήγησης στα αριστερά, κάντε κλικ στην επιλογή Βάσεις δεδομένων.
- Κάντε κλικ στο Demo.
Βήμα 3) Πληκτρολογήστε το ερώτημα στο πρόγραμμα επεξεργασίας ερωτημάτων:
ALTER TABLE Book RENAME TO Books;
Βήμα 4) Κάντε κλικ στο κουμπί Εκτέλεση.
Βήμα 5) Για να ελέγξετε εάν ο πίνακας μετονομάστηκε, αναπτύξτε τις επιλογές Βάσεις δεδομένων > Επίδειξη > Σχήματα > Δημόσια > Πίνακες:
Ο πίνακας μετονομάστηκε με επιτυχία.
Κάντε λήψη της βάσης δεδομένων που χρησιμοποιείται σε αυτό το σεμινάριο

























