ΤΙ ΕΙΝΑΙ Η ΕΙΔΗ ΤΟΥ ALTER;
Όπως λέει και το ρητό, η αλλαγή είναι η μόνη σταθερά
Με την πάροδο του χρόνου οι επιχειρηματικές απαιτήσεις αλλάζουν επίσης. Καθώς οι επιχειρηματικές απαιτήσεις αλλάζουν, τα σχέδια βάσεων δεδομένων πρέπει επίσης να αλλάξουν.
Η MySQL παρέχει τη λειτουργία ALTER που μας βοηθά να ενσωματώσουμε τις αλλαγές στον ήδη υπάρχοντα σχεδιασμό βάσης δεδομένων .
Η εντολή alter χρησιμοποιείται για την τροποποίηση μιας υπάρχουσας βάσης δεδομένων, πίνακα, προβολής ή άλλων αντικειμένων βάσης δεδομένων που ενδέχεται να χρειαστεί να αλλάξουν κατά τη διάρκεια του κύκλου ζωής μιας βάσης δεδομένων.
Ας υποθέσουμε ότι έχουμε ολοκληρώσει τη σχεδίαση της βάσης δεδομένων μας και έχει εφαρμοστεί. Οι χρήστες της βάσης δεδομένων μας το χρησιμοποιούν και στη συνέχεια συνειδητοποιούν ότι ορισμένες από τις ζωτικές πληροφορίες είχαν μείνει εκτός φάσης σχεδιασμού. Δεν θέλουν να χάσουν τα υπάρχοντα δεδομένα, αλλά απλώς θέλουν να ενσωματώσουν τις νέες πληροφορίες. Η εντολή alter είναι βολική σε τέτοιες περιπτώσεις. Μπορούμε να χρησιμοποιήσουμε την εντολή alter για να αλλάξουμε τον τύπο δεδομένων ενός πεδίου από τη συμβολοσειρά λέξης σε αριθμητικό, να αλλάξουμε το όνομα πεδίου σε νέο όνομα ή ακόμα και να προσθέσουμε μια νέα στήλη σε έναν πίνακα.
Τροποποίηση-σύνταξη
Η βασική σύνταξη που χρησιμοποιείται για την προσθήκη στήλης σε έναν ήδη υπάρχοντα πίνακα φαίνεται παρακάτω
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
ΕΔΩ
- Το "ALTER TABLE" table_name "" είναι η εντολή που λέει στο διακομιστή MySQL να τροποποιήσει τον πίνακα με το όνομα "table_name".
- "ADD COLUMN` column_name` "data_type" " είναι η εντολή που λέει στο διακομιστή MySQL να προσθέσει μια νέα στήλη με το όνομα` column_name` με τον τύπο δεδομένων `data_type '.
Ας υποθέσουμε ότι το Myflix εισήγαγε τις χρεώσεις και τις πληρωμές στο διαδίκτυο. Προς το σκοπό αυτό, μας ζητήθηκε να προσθέσουμε ένα πεδίο για τον αριθμό της πιστωτικής κάρτας στον πίνακα μελών μας. Μπορούμε να χρησιμοποιήσουμε την εντολή ALTER για να το κάνουμε αυτό. Ας δούμε πρώτα τη δομή του πίνακα μελών προτού προβούμε σε τροποποιήσεις. Το σενάριο που φαίνεται παρακάτω μας βοηθά να το κάνουμε αυτό.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Μπορούμε να χρησιμοποιήσουμε το σενάριο που φαίνεται παρακάτω για να προσθέσουμε ένα νέο πεδίο στον πίνακα μελών.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Η εκτέλεση του παραπάνω σεναρίου στη MySQL έναντι του Myflixdb προσθέτει μια νέα στήλη με όνομα πιστωτικής κάρτας στον πίνακα μελών με τον τύπο δεδομένων VARCHAR. Η εκτέλεση του σεναρίου της στήλης εκπομπής μας δίνει τα ακόλουθα αποτελέσματα.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL | |||
credit_card_number | varchar(25) | YES |
Όπως μπορείτε να δείτε από τα αποτελέσματα που επιστράφηκαν, ο αριθμός της πιστωτικής κάρτας προστέθηκε στον πίνακα μελών. Τα δεδομένα που περιέχονται στα δεδομένα των μελών δεν επηρεάζονται από την προσθήκη της νέας στήλης.
ΤΙ ΕΙΝΑΙ Η ΕΓΚΑΤΑΣΤΑΣΗ;
Η εντολή DROP χρησιμοποιείται για
- Διαγράψτε μια βάση δεδομένων από το διακομιστή MySQL
- Διαγράψτε ένα αντικείμενο (όπως Πίνακας, Στήλη) από μια βάση δεδομένων.
Ας δούμε τώρα πρακτικά παραδείγματα που κάνουν χρήση της εντολής DROP.
Στο προηγούμενο παράδειγμά μας για την εντολή Alter, προσθέσαμε μια στήλη με τον αριθμό πιστωτικής κάρτας στον πίνακα μελών.
Ας υποθέσουμε ότι η λειτουργικότητα χρέωσης στο διαδίκτυο θα διαρκέσει λίγο και θέλουμε να ΑΠΟΣΤΑΣΗ τη στήλη πιστωτικής κάρτας
Μπορούμε να χρησιμοποιήσουμε το ακόλουθο σενάριο
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Η εκτέλεση του παραπάνω σεναρίου μειώνει τη στήλη credit_card_number από τον πίνακα μελών
Ας δούμε τώρα τις στήλες στον πίνακα μελών για να επιβεβαιώσουμε εάν η στήλη μας έχει πέσει.
SHOW COLUMNS FROM `members`;
Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb μας δίνει τα ακόλουθα αποτελέσματα.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Σημειώστε ότι ο αριθμός της πιστωτικής κάρτας έχει πέσει από τη λίστα πεδίων.
ΠΙΝΑΚΑΣ ΠΡΟΣΤΑΣΙΑΣ
Η σύνταξη στο DROP πίνακα από τη βάση δεδομένων έχει ως εξής -
DROP TABLE `sample_table`;
Ας δούμε ένα παράδειγμα
DROP TABLE `categories_archive`;
Η εκτέλεση του παραπάνω σεναρίου διαγράφει τον πίνακα με την ονομασία «profiles_archive» από τη βάση δεδομένων.
ΤΙ ΕΙΝΑΙ Η ΕΝΤΟΛΗ ΟΝΟΜΑΤΟΣ
Η εντολή μετονομασίας χρησιμοποιείται για να αλλάξει το όνομα ενός υπάρχοντος αντικειμένου βάσης δεδομένων (όπως Πίνακας, Στήλη) σε νέο όνομα .
Η μετονομασία ενός πίνακα δεν καθιστά την απώλεια δεδομένων που περιέχονται σε αυτόν.
Σύνταξη:-
Η εντολή μετονομασίας έχει την ακόλουθη βασική σύνταξη.
RENAME TABLE `current_table_name` TO `new_table_name`;
Ας υποθέσουμε ότι θέλουμε να μετονομάσουμε τον πίνακα movierentals σε movie_rentals, μπορούμε να χρησιμοποιήσουμε το σενάριο που φαίνεται παρακάτω για να το επιτύχουμε.
RENAME TABLE `movierentals` TO `movie_rentals`;
Η εκτέλεση του παραπάνω σεναρίου μετονομάζει τον πίνακα "movierentals" σε "movie_rentals".
Τώρα θα μετονομάσουμε τον πίνακα movie_rentals στο αρχικό του όνομα.
RENAME TABLE `movie_rentals` TO `movierentals`;
ΑΛΛΑΓΗ ΚΛΕΙΔΙ ΚΛΕΙΔΙΟΥ
Η αλλαγή λέξεων-κλειδιών σάς επιτρέπει
- Αλλαγή ονόματος στήλης
- Αλλαγή τύπου δεδομένων στήλης
- Αλλαγή περιορισμών στηλών
Ας δούμε ένα παράδειγμα. Το πεδίο πλήρων ονομάτων στον πίνακα μελών είναι τύπου δεδομένων varchar και έχει πλάτος 150.
SHOW COLUMNS FROM `members`;
Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb μας δίνει τα ακόλουθα αποτελέσματα.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(150) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Ας υποθέσουμε ότι θέλουμε
- Αλλάξτε το όνομα του πεδίου από "full_names" σε "fullname
- Αλλάξτε τον σε τύπο δεδομένων char με πλάτος 250
- Προσθέστε έναν περιορισμό NOT NULL
Μπορούμε να το επιτύχουμε χρησιμοποιώντας την εντολή αλλαγής ως εξής -
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb και στη συνέχεια η εκτέλεση του σεναρίου εμφάνισης στηλών που δίνεται παραπάνω δίνει τα ακόλουθα αποτελέσματα.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(250) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
ΤΡΟΠΟΠΟΙΗΣΗ ΚΛΕΙΔΙ
Η MODIFY Keyword σας επιτρέπει να το κάνετε
- Τροποποίηση τύπου δεδομένων στήλης
- Τροποποίηση περιορισμών στηλών
Στο παραπάνω παράδειγμα ΑΛΛΑΓΗ, έπρεπε να αλλάξουμε το όνομα του πεδίου καθώς και άλλες λεπτομέρειες. Η παράλειψη του ονόματος πεδίου από τη δήλωση ΑΛΛΑΓΗ θα δημιουργήσει σφάλμα. Ας υποθέσουμε ότι ενδιαφερόμαστε μόνο να αλλάξουμε τον τύπο δεδομένων και τους περιορισμούς στο πεδίο χωρίς να επηρεάσουμε το όνομα του πεδίου, μπορούμε να χρησιμοποιήσουμε τη λέξη-κλειδί MODIFY για να το επιτύχουμε.
Το παρακάτω σενάριο αλλάζει το πλάτος του πεδίου "πλήρες όνομα" από 250 σε 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb και στη συνέχεια η εκτέλεση του σεναρίου εμφάνισης στηλών που δίνεται παραπάνω δίνει τα ακόλουθα αποτελέσματα που φαίνονται παρακάτω.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
ΜΕΤΑ ΤΟ ΚΛΕΙΔΙ
Ας υποθέσουμε ότι θέλουμε να προσθέσουμε μια νέα στήλη σε μια συγκεκριμένη θέση στον πίνακα.
Μπορούμε να χρησιμοποιήσουμε την εντολή alter μαζί με τη λέξη-κλειδί ΜΕΤΑ.
Το παρακάτω σενάριο προσθέτει "date_of_registration" αμέσως μετά την ημερομηνία γέννησης στον πίνακα μελών.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Η εκτέλεση του παραπάνω σεναρίου στον πάγκο εργασίας MySQL έναντι του myflixdb και στη συνέχεια η εκτέλεση του σεναρίου εμφάνισης στηλών που δίνεται παραπάνω δίνει τα ακόλουθα αποτελέσματα που φαίνονται παρακάτω.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
date_of_registration | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Περίληψη
- Η εντολή alter χρησιμοποιείται όταν θέλουμε να τροποποιήσουμε μια βάση δεδομένων ή οποιοδήποτε αντικείμενο περιέχεται στη βάση δεδομένων.
- Η εντολή drop χρησιμοποιείται για τη διαγραφή βάσεων δεδομένων από το διακομιστή MySQL ή αντικείμενα μέσα σε μια βάση δεδομένων.
- Η εντολή μετονομασίας χρησιμοποιείται για να αλλάξει το όνομα ενός πίνακα σε ένα νέο όνομα πίνακα.
- Η αλλαγή λέξης-κλειδιού σάς επιτρέπει να αλλάξετε ένα όνομα στήλης, έναν τύπο δεδομένων και περιορισμούς
- Η τροποποίηση λέξης-κλειδιού σάς επιτρέπει να τροποποιήσετε έναν τύπο και περιορισμούς δεδομένων στήλης
- Η λέξη-κλειδί After χρησιμοποιείται για τον καθορισμό της θέσης μιας στήλης σε έναν πίνακα