mysql alter table how add column table mysql
Μάθετε για την εντολή MySQL ALTER Table για προσθήκη / απόθεση στήλης, ευρετηρίου, περιορισμού, αλλαγής ονόματος πίνακα κ.λπ. με παραδείγματα:
MySQL ALTER Η εντολή χρησιμοποιείται για την τροποποίηση ενός υπάρχοντος πίνακα προσθέτοντας μια νέα στήλη ή αφαιρώντας μια υπάρχουσα στήλη ή αλλάζοντας τον τύπο δεδομένων της στήλης.
Με απλά λόγια, η εντολή ALTER χρησιμοποιείται για την τροποποίηση της δομής ενός υπάρχοντος πίνακα με την προσθήκη / αφαίρεση / ενημέρωση στηλών, μετονομασία πινάκων κ.λπ.
Είναι σχεδόν αδύνατο όλες οι απαιτήσεις για ένα δεδομένο σχήμα να είναι διαθέσιμες εκ των προτέρων, επομένως είναι επιτακτική ανάγκη να υπάρχει τρόπος ενημέρωσης της δομής του πίνακα όπως απαιτείται.
Τι θα μάθετε:
MySQL ALTER ΠΙΝΑΚΑΣ
ΣΥΝΤΑΞΗ:
ALTER TABLE table_name (alter_option1, alter_option2...)
Εδώ το table_name είναι το όνομα του πίνακα στον οποίο θέλουμε να εκτελέσουμε την ενέργεια αλλαγής. Ένα ή περισσότερα alter_options μπορούν να καθοριστούν μαζί με το ALTER ΠΙΝΑΚΑΣ εντολή.
Ας ρίξουμε μια ματιά σε διαφορετικές εναλλακτικές επιλογές που χρησιμοποιούνται από τη MySQL.
Δείγμα δεδομένων και ρύθμιση πίνακα
Για την κατανόηση διαφορετικών χρήσεων του ΗΛΙΚΙΑ εντολή, θα χρησιμοποιήσουμε 2 δείγματα πινάκων - Υπάλληλος και Τμήμα με τη δομή όπως αναφέρεται παρακάτω.
Προσθέτουμε επίσης κάποια εικονικά δεδομένα και στους δύο πίνακες.
Δεν έχουμε προσθέσει περιορισμούς ΞΕΝΟΥ ΚΛΕΙΔΙ σε αυτούς τους πίνακες. Θα μάθουμε να τα προσθέτουμε χρησιμοποιώντας την εντολή ALTER στα παραδείγματα που εμφανίζονται στις παρακάτω ενότητες καθώς συζητάμε.
CREATE TABLE IF NOT EXISTS Employee_Department ( id INT, name VARCHAR(100), PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS Employee ( name VARCHAR(100), id INT, address VARCHAR(100), department_id INT, PRIMARY KEY (id) ); INSERT INTO `employee_department`(`name`,`id`) VALUES ('Information Technology',1),('HR',2),('Finance',3),('Accounting',4),('Housekeeping',5 ),('Security',6),('Support',7),('Contract Staff',8),('Sales',9),('Management',10); INSERT INTO `employee` (`id`,`name`,`address`) VALUES (1,'Alyssa Villarreal','Ap #558-3012 Nulla Street'),(2,'Vanna Parks','103-986 Cursus Rd.'),(3,'Quyn Byers','770 Nulla Avenue'),(4,'Kristen Hall','Ap #622-9967 Nullam St.'),(5,'Chelsea Stone','6017 Elementum St.'),(6,'Sacha Sweeney','239-7402 Etiam St.'),(7,'Sophia Charles','799 -745 Tellus. Rd.'),(8,'Jennifer Joyner','5803 Ligula. Avenue'),(9,'Mercedes Head','Ap #375-7999 Facilisis Rd.'),(10,'Reagan Holland','P.O. Box 625, 5744 Proin Avenue');
Διαφορετικοί τρόποι χρήσης της εντολής πίνακα ALTER
ο MySQL ALTER Η εντολή μπορεί να χρησιμοποιηθεί για πολλά πράγματα όπως προσθήκη / απόθεση μιας στήλης, προσθήκη / απόθεση ευρετηρίου ή περιορισμού και ενημέρωση ενός ίδιου πίνακα. Ας δούμε διαφορετικά σενάρια με τη βοήθεια παραδειγμάτων.
ΠΡΟΣΘΗΚΗ ΣΤΗΛΗΣ
Με τα παραπάνω δείγματα πινάκων, ας προσθέσουμε μια νέα στήλη με το όνομα 'department_id' τύπου INT στον πίνακα Υπάλληλος.
ALTER TABLE employee ADD COLUMN department_id INT
ΣΤΑΣΗ ΣΤΗΛΗΣ
Παρόμοια με την προσθήκη μιας νέας στήλης, το MySQL ALTER Η εντολή μπορεί να χρησιμοποιηθεί για να ρίξει μια υπάρχουσα στήλη από τον πίνακα.
Προσπαθήστε να καταργήσετε την παραπάνω στήλη department_id από τον πίνακα υπαλλήλων.
ALTER TABLE employee DROP COLUMN department_id
Λάβετε υπόψη ότι, ενώ αφήνετε μια ΣΤΗΛΗ, πρέπει απλώς να αναφέρετε το όνομα της στήλης και όχι τον τύπο δεδομένων.
Για να επικυρώσετε εάν η εντολή ALTER πέτυχε, μπορείτε να εκτελέσετε την εντολή SHOW COLUMNS.
SHOW COLUMNS FROM employee;
Παραγωγή:
Πεδίο | Τύπος | Μηδενικό | Κλειδί | Προκαθορισμένο | Επιπλέον |
---|---|---|---|---|---|
όνομα | βαρτσάρ (100) | ΝΑΙ | ΜΗΔΕΝΙΚΟ | ||
ταυτότητα | int | ΝΑΙ | ΜΗΔΕΝΙΚΟ | ||
διεύθυνση | βαρτσάρ (100) | ΝΑΙ | ΜΗΔΕΝΙΚΟ |
Μπορείτε να δείτε ότι δεν υπάρχει στήλη department_id στον πίνακα 'Υπάλληλος' τώρα.
Προσθήκη / απόθεση περιορισμών
Ας δούμε τώρα πώς μπορεί να χρησιμοποιηθεί το ALTER για την προσθήκη ενός περιορισμού.
Η εντολή ALTER μπορεί να χρησιμοποιηθεί για την προσθήκη ή την κατάργηση περιορισμών για έναν υπάρχοντα πίνακα. Ας δούμε ένα παράδειγμα περιορισμού ΞΕΝΟΥ ΚΛΕΙΔΙΟΥ που πρέπει να προστεθεί μεταξύ 2 πινάκων.
Θα χρησιμοποιήσουμε την εντολή ALTER για να προσθέσουμε ΕΞΩΤΕΡΙΚΟ ΠΛΗΡΟΦΟΡΙΕΣ στον πίνακα Υπάλληλος για τον πίνακα του υπαλλήλου.
Προσθέστε μια νέα στήλη με το όνομα department_id στον πίνακα υπαλλήλων.
ALTER TABLE employee ADD COLUMN department_id INT
Τώρα, προσθέστε τον περιορισμό FOREIGN KEY.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
Για να επικυρώσουμε αυτόν τον περιορισμό, μπορούμε να χρησιμοποιήσουμε την εντολή SHOW για να δούμε τον ορισμό του πίνακα.
SHOW CREATE TABLE employee;
Τραπέζι | Δημιουργία πίνακα |
---|---|
υπάλληλος | ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ «υπάλληλος» ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KEY `department_id` (` department_id`), CONSTRAINT `ملازم_ibfk_1` ΞΕΝΟ ΚΛΕΙΔΙ (` department_id`) ΑΝΑΦΟΡΕΣ `υπάλληλος_διαμερίσματος '(« id ») ) ΚΙΝΗΤΗΡΑ = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Θα διαπιστώσετε ότι υπάρχει ένας περιορισμός ΞΕΝΟΥ ΚΛΕΙΔΙ στη στήλη department_id.
Ας δούμε τώρα πώς μπορούμε να χρησιμοποιήσουμε την εντολή ALTER για να αφαιρέσουμε τον περιορισμό ΞΕΝΟ ΚΛΕΙΔΙ που μόλις προσθέσαμε.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Λάβετε υπόψη ότι θα πρέπει να χρησιμοποιήσετε το όνομα του περιορισμού που δημιουργήθηκε. Έτσι, στην παραπάνω έξοδο εντολών SHOW, μπορείτε να δείτε το όνομα περιορισμού που δημιούργησε η MySQL για τον περιορισμό του FOREIGN KEY υπάλληλος_ibfk_1 »
Εκτελέστε την εντολή SHOW για να δείτε εάν ο περιορισμός έχει αφαιρεθεί όπως φαίνεται παρακάτω:
SHOW CREATE TABLE employee;
Τραπέζι | Δημιουργία πίνακα |
---|---|
υπάλληλος | ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ «υπάλληλος» ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KEY 'department_id' ('department_id') ) ΚΙΝΗΤΗΡΑ = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Προσθήκη / απόθεση ευρετηρίων
MySQL ALTER Η εντολή table σας επιτρέπει επίσης να δημιουργήσετε ή να αποθέσετε INDEXES σε έναν πίνακα.
Μπορούν να προστεθούν τέσσερις διαφορετικοί τύποι ευρετηρίων χρησιμοποιώντας την εντολή ALTER TABLE.
# 1) Προσθήκη ΠΡΩΤΟΣ ΚΛΕΙΔΙΟΥ: Αυτή η εντολή προσθέτει ένα ευρετήριο PRIMARY KEY σε μια δεδομένη στήλη (ή στήλες)
Στο παρακάτω παράδειγμα, χρησιμοποιήστε τον πίνακα 'Υπάλληλος' και προσθέστε το ΔΕΛΤΙΟ ΠΡΩΤΟΒΟΥΛΙΟΥ στη στήλη 'Id'.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Προσθήκη ΜΟΝΑΔΙΚΟΥ: Προσθέτει ή δημιουργεί μοναδικό ευρετήριο έναντι συγκεκριμένων στηλών
Ας υποθέσουμε ότι θέλουμε απλά μοναδικά ονόματα σε έναν πίνακα. Προσθέστε ένα ΜΟΝΑΔΙΚΟ ευρετήριο στη στήλη «όνομα» στον πίνακα υπαλλήλων όπως φαίνεται παρακάτω.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Προσθήκη INDEX: Προσθέστε ένα συνηθισμένο ευρετήριο σε οποιαδήποτε στήλη.
Προσθέστε ένα κανονικό ευρετήριο στο πεδίο «διεύθυνση» στον πίνακα υπαλλήλων.
ALTER TABLE employee ADD INDEX (name);
# 4) Προσθήκη ευρετηρίου FULLTEXT: Αυτός είναι ένας ειδικός τύπος ευρετηρίου που χρησιμοποιείται για σκοπούς αναζήτησης κειμένου.
Θα προσθέσουμε ένα FULLTEXT ευρετήριο στις τιμές στηλών «όνομα» στον πίνακα υπαλλήλων.
ALTER TABLE employee ADD FULLTEXT(address);
Για όλα τα παραπάνω 4 παραδείγματα, μπορούμε να εκτελέσουμε το ΔΕΙΤΕ ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ εντολή για να λάβετε τις λεπτομέρειες σχετικά με τα ευρετήρια που δημιουργήθηκαν.
SHOW CREATE TABLE employee;
Τραπέζι | Δημιουργία πίνακα |
---|---|
υπάλληλος | ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ «υπάλληλος» ( `name` varchar (100) DEFAULT NULL, `id` int NOT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, ΚΥΡΙΟ ΠΡΩΤΟΒΟΥΛΙΟ («id»), ΜΟΝΑΔΙΚΟ ΠΛΗΚΤΡΟ «όνομα» («όνομα»), KEY 'name_2' ('όνομα'), ΠΛΗΡΕΣ ΚΛΕΙΔΙ «διεύθυνση» («διεύθυνση») ) ΚΙΝΗΤΗΡΑ = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Στην παραπάνω έξοδο, θα παρατηρήσετε ότι όλα τα ευρετήρια έχουν δημιουργηθεί σύμφωνα με την τιμή στη στήλη create_table.
Παρόμοια με τη δημιουργία ευρετηρίων, η εντολή ALTER μπορεί επίσης να χρησιμοποιηθεί για την απόρριψη υπαρχόντων ευρετηρίων από τον πίνακα.
Παράδειγμα:
ALTER TABLE employee DROP INDEX address;
Η παραπάνω εντολή θα ΣΤΑΣΕΙ το ευρετήριο FULLTEXT που έχουμε προσθέσει για το πεδίο διεύθυνσης.
Παρατηρήστε το όνομα 'διεύθυνση'. Αυτό πρέπει να ταιριάζει με το όνομα ευρετηρίου στην έξοδο του ΔΕΙΤΕ ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ εντολή.
Αλλαγή προεπιλεγμένης τιμής στήλης
ALTER ΠΙΝΑΚΑΣ Η εντολή μπορεί επίσης να χρησιμοποιηθεί για SET / Αλλαγή της τιμής DEFAULT για μια υπάρχουσα στήλη.
διαφορά μεταξύ δοκιμών λευκού κουτιού και δοκιμής μαύρου κουτιού
Ας δούμε ένα παράδειγμα όπου θα αλλάξουμε την προεπιλεγμένη τιμή της στήλης department_id σε «1». Με αυτό, τυχόν νέα ένθετα σε αυτόν τον πίνακα θα αλλάξουν / ορίσουν την τιμή για τη στήλη department_id σε 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Προσθέστε μια νέα εγγραφή στον πίνακα υπαλλήλων:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
Και τώρα ας ζητήσουμε το τμήμα_id για αυτήν την εγγραφή και να δούμε ποια είναι η τιμή που έχει οριστεί.
SELECT department_id FROM employee where id=11 //Output department_id 1
Ενημέρωση ονόματος πίνακα
MySQL ALTER Η εντολή table μπορεί επίσης να χρησιμοποιηθεί για την ενημέρωση του ονόματος ενός υπάρχοντος πίνακα. Κατά καιρούς απαιτείται ενημέρωση της δομής σχήματος, η οποία μπορεί να περιλαμβάνει αλλαγή / ενημέρωση των ονομάτων πινάκων.
Παράδειγμα - Θα μετονομάσουμε τον πίνακα «υπάλληλος» σε «Employee_details».
ALTER TABLE table_name RENAME TO new_table_name;
Συχνές Ερωτήσεις
Ε # 1) Πώς μπορώ να αλλάξω τη δομή του πίνακα στη MySQL;
Απάντηση: Η MySQL παρέχει την εντολή ALTER για αλλαγή της δομής ενός υπάρχοντος πίνακα στη MySQL. Μπορείτε να εκτελέσετε διάφορες λειτουργίες με την εντολή ALTER όπως,
- Προσθήκη / απόθεση στήλης
- Προσθήκη / αφαίρεση ευρετηρίου ή περιορισμού
- Μετονομασία πίνακα
Ε # 2) Η εντολή ALTER κλειδώνει έναν πίνακα;
Απάντηση: Μπορεί να εξαρτάται από εκδόσεις - με παλαιότερες εκδόσεις του MySQL Κλείδωμα πίνακα κατά την εκτέλεση της δήλωσης ALTER. Σε γενικές γραμμές, το κλείδωμα θα συνέβαινε δηλαδή οποιαδήποτε ανάγνωση και εγγραφή κατά τη διάρκεια του ALTER.
Για παράδειγμα - Η προσθήκη μιας νέας στήλης για έναν υπάρχοντα πίνακα θα αγγίξει όλες τις σειρές του πίνακα στον οποίο προστίθεται η στήλη και όταν ο πίνακας έχει αριθμό εγγραφών σε εκατομμύρια, η λειτουργία ALTER ενδέχεται να χρειαστεί λίγος χρόνος για την εκτέλεση. Σε αυτήν την περίπτωση, το κλείδωμα που συμβαίνει στις αναγνώσεις / εγγραφές θα ήταν δαπανηρό καθώς η βάση δεδομένων θα ήταν εκτός λειτουργίας και απρόσιτη.
Q # 3) Μπορούμε να προσθέσουμε περισσότερες από μία στήλες στον πίνακα ALTER;
Απάντηση: Ναι, η εντολή ALTER μπορεί να χρησιμοποιηθεί για την προσθήκη πολλών στηλών σε μία μόνο δήλωση.
Ας δούμε ένα παράδειγμα όπου έχουμε έναν πίνακα Υπάλληλος με αναγνωριστικό, όνομα και διεύθυνση στηλών και ας υποθέσουμε ότι θέλουμε να προσθέσουμε 2 ακόμη στήλες με όνομα -
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Ας ρίξουμε μια ματιά στις πληροφορίες του πίνακα
SHOW COLUMNS FROM employee;
Παραγωγή:
Πεδίο | Τύπος | Μηδενικό | Κλειδί | Προκαθορισμένο | Επιπλέον |
---|---|---|---|---|---|
όνομα | βαρτσάρ (100) | ΝΑΙ | ΕΝΩΜΕΝΟΣ | ΜΗΔΕΝΙΚΟ | |
ταυτότητα | int | ΟΧΙ | PRI | ΜΗΔΕΝΙΚΟ | |
διεύθυνση | βαρτσάρ (100) | ΝΑΙ | ΜΗΔΕΝΙΚΟ | ||
τμήμα_id | int | ΝΑΙ | 1 | ||
Υψηλότερη εκπαίδευση | βαρτσάρ (50) | ΝΑΙ | ΜΗΔΕΝΙΚΟ | ||
τηλεφωνικό νούμερο | βαρτσάρ (20) | ΝΑΙ | ΜΗΔΕΝΙΚΟ |
Στην έξοδο παραπάνω μπορείτε να δείτε τις στήλες, έχουν προστεθεί οι υψηλότερες_εκπαίδευση και αριθμός_ τηλεφώνου.
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε για διαφορετικές χρήσεις του MySQL ALTER Εντολή πίνακα. Το ALTER είναι μια σημαντική εντολή, καθώς μπορεί να χρησιμοποιηθεί για πολλαπλούς σκοπούς για να ALTER τη δομή ενός υπάρχοντος πίνακα στη MySQL.
Μπορεί να χρησιμοποιηθεί για πράγματα όπως - προσθήκη / αφαίρεση στήλης, προσθήκη / απόθεση ευρετηρίων ή περιορισμών και μπορεί επίσης να χρησιμοποιηθεί ακόμη και για τη μετονομασία ενός υπάρχοντος πίνακα.
Όποιος μαθαίνει MySQL θα πρέπει να έχει μια εις βάθος κατανόηση της εντολής πίνακα ALTER, καθώς χρησιμοποιείται κυρίως κατά τη διάρκεια φάσεων συντήρησης βάσεων δεδομένων όπου απαιτείται να τροποποιηθεί το υπάρχον σχήμα πίνακα.
Συνιστώμενη ανάγνωση
- MySQL Δημιουργία εκπαιδευτικού πίνακα με παραδείγματα
- Εισαγωγή MySQL σε πίνακα - Εισαγωγή σύνταξης δήλωσης & παραδειγμάτων
- Τύποι δεδομένων MySQL | Ποιοι είναι οι διαφορετικοί τύποι δεδομένων στο MySQL
- Βασικά στοιχεία του MySQL ΕΞΩΤΕΡΙΚΟΥ ΚΛΕΙΔΟΥ Περιορισμός με παραδείγματα
- MySQL JOIN Tutorial: Εσωτερικό, εξωτερικό, σταυρό, αριστερά, δεξιά και μόνος
- MySQL Δημιουργία βάσης δεδομένων - Πώς να δημιουργήσετε μια βάση δεδομένων στο MySQL
- Κορυφαίες 40 καλύτερες ερωτήσεις συνέντευξης MySQL και απαντήσεις (2021 ερωτήσεις)
- Πίνακας κατακερματισμού στο C ++: Προγράμματα για την εφαρμογή του πίνακα Hash και των χαρτών Hash