HVAD ER DET ALTERE KOMMANDO?
Som man siger, er forandring den eneste konstant
Med tiden ændres også forretningskravene. Efterhånden som forretningskravene ændres, skal databasedesign også ændres.
MySQL leverer ALTER- funktionen, der hjælper os med at integrere ændringerne i det allerede eksisterende databasedesign .
Ændringskommandoen bruges til at ændre en eksisterende database, tabel, visning eller andre databaseobjekter, der muligvis skal ændres i løbet af en databases livscyklus.
Lad os antage, at vi har afsluttet vores databasedesign, og det er implementeret. Vores databasebrugere bruger det, og så er de klar over, at nogle af de vigtige oplysninger blev udeladt i designfasen. De vil ikke miste de eksisterende data, men vil bare inkorporere de nye oplysninger. Ændringskommandoen er praktisk i sådanne situationer. Vi kan bruge kommandoen alter til at ændre datatypen i et felt fra sige streng til numerisk, ændre feltnavnet til et nyt navn eller endda tilføje en ny kolonne i en tabel.
Alter-syntaks
Den grundlæggende syntaks, der bruges til at føje en kolonne til en allerede eksisterende tabel, vises nedenfor
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
HER
- "ALTER TABLE` table_name` " er den kommando, der fortæller MySQL-serveren at ændre tabellen med navnet" table_name ".
- "TILFØJ KOLONN` column_name` `data_type`" er den kommando, der fortæller MySQL-serveren at tilføje en ny kolonne ved navn `column_name` med datatypen` data_type '.
Lad os antage, at Myflix har introduceret online fakturering og betalinger. Til dette formål er vi blevet bedt om at tilføje et felt til kreditkortnummeret i vores medlemstabel. Vi kan bruge ALTER-kommandoen til at gøre det. Lad os først se på strukturen på medlemstabellen, inden vi foretager ændringer. Det viste script hjælper os med at gøre det.
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 |
Vi kan bruge scriptet vist nedenfor til at tilføje et nyt felt til medlemstabellen.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
At udføre ovenstående script i MySQL mod Myflixdb tilføjer en ny kolonne med navnet kreditkortnummer til medlemstabellen med VARCHAR som datatype. Udførelse af showkolonneskriptet giver os følgende resultater.
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 |
Som du kan se på de returnerede resultater, er kreditkortnummer blevet føjet til medlemstabellen. Dataene indeholdt i medlemmernes data påvirkes ikke af tilføjelsen af den nye kolonne.
HVAD ER DROPKOMMANDOET?
DROP-kommandoen bruges til
- Slet en database fra MySQL-serveren
- Slet et objekt (som tabel, kolonne) fra en database.
Lad os nu se på praktiske eksempler, der gør brug af DROP-kommandoen.
I vores tidligere eksempel på Alter Command tilføjede vi en kolonne med navnet kreditkortnummer til medlemstabellen.
Antag, at online-faktureringsfunktionaliteten vil tage noget tid, og vi ønsker at DROPE kreditkortkolonnen
Vi kan bruge følgende script
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Udførelse af ovenstående script slipper kolonnen credit_card_number fra medlemstabellen
Lad os nu se på kolonnerne i medlemstabellen for at bekræfte, om vores kolonne er blevet droppet.
SHOW COLUMNS FROM `members`;
At udføre ovenstående script i MySQL-arbejdsbænk mod myflixdb giver os følgende resultater.
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 |
Bemærk, at kreditkortnummeret er droppet fra listen over felter.
DROPTABEL
Syntaksen til DROP en tabel fra databasen er som følger -
DROP TABLE `sample_table`;
Lad os se på et eksempel
DROP TABLE `categories_archive`;
Ved at udføre ovenstående script slettes tabellen med navnet 'categories_archive' fra vores database.
HVAD ER RENAME-KOMMANDOET?
Omdøbskommandoen bruges til at ændre navnet på et eksisterende databaseobjekt (som tabel, kolonne) til et nyt navn .
Omdøbning af en tabel betyder ikke, at det mister nogen data er indeholdt i den.
Syntaks: -
Omdøb kommandoen har følgende grundlæggende syntaks.
RENAME TABLE `current_table_name` TO `new_table_name`;
Lad os antage, at vi ønsker at omdøbe movierentals-tabellen til movie_rentals, vi kan bruge scriptet vist nedenfor for at opnå det.
RENAME TABLE `movierentals` TO `movie_rentals`;
Ved at udføre ovenstående script omdøbes tabellen `movierentals` til` movie_rentals`.
Vi omdøber nu tabellen movie_rentals tilbage til sit oprindelige navn.
RENAME TABLE `movie_rentals` TO `movierentals`;
SKIFT KEYWORD
Skift nøgleord giver dig mulighed for at
- Skift kolonnens navn
- Skift kolonnedatatype
- Skift kolonnebegrænsninger
Lad os se på et eksempel. Feltet med fulde navne i medlemstabellen er af datatypen varchar og har en bredde på 150.
SHOW COLUMNS FROM `members`;
At udføre ovenstående script i MySQL-arbejdsbænk mod myflixdb giver os følgende resultater.
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 |
Antag, at vi vil
- Skift feltnavnet fra "fulde_navne" til "fuldnavn
- Skift den til char-datatype med en bredde på 250
- Tilføj en IKKE NULL-begrænsning
Vi kan opnå dette ved hjælp af kommandoen for ændring som følger -
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Udførelse af ovenstående script i MySQL workbench mod myflixdb og derefter udførelse af showkolonneskriptet, der er givet ovenfor, giver følgende resultater.
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 |
ÆNDR Nøgleord
Med MODIFY Keyword kan du
- Rediger søjledatatype
- Rediger kolonnebegrænsninger
I SKIFT-eksemplet ovenfor måtte vi ændre feltnavnet samt andre detaljer. Hvis du udelader feltnavnet fra CHANGE-sætningen, genereres en fejl. Antag, at vi kun er interesserede i at ændre datatypen og begrænsningerne på marken uden at påvirke feltnavnet, vi kan bruge MODIFY-nøgleordet til at opnå det.
Skriptet nedenfor ændrer bredden på "fuldnavn" -feltet fra 250 til 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Udførelse af ovenstående script i MySQL workbench mod myflixdb og derefter udførelse af showkolonneskriptet, der er givet ovenfor, giver følgende resultater vist nedenfor.
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 |
EFTER Nøgleord
Antag, at vi vil tilføje en ny kolonne på en bestemt position i tabellen.
Vi kan bruge kommandoen alter sammen med søgeordet EFTER.
Nedenstående script tilføjer "date_of_registration" lige efter fødselsdatoen i medlemstabellen.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Udførelse af ovenstående script i MySQL workbench mod myflixdb og derefter udførelse af showkolonneskriptet, der er givet ovenfor, giver følgende resultater vist nedenfor.
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 |
Resumé
- Ændringskommandoen bruges, når vi vil ændre en database eller ethvert objekt indeholdt i databasen.
- Drop-kommandoen bruges til at slette databaser fra MySQL-server eller objekter i en database.
- Omdøbskommandoen bruges til at ændre navnet på en tabel til et nyt tabelnavn.
- Nøgleordet Skift giver dig mulighed for at ændre et kolonnenavn, datatype og begrænsninger
- Modify Keyword giver dig mulighed for at ændre en kolonnedatatype og begrænsninger
- Nøgleordet bruges til at angive placeringen af en kolonne i en tabel