MYSQL - ALTER, DROP, RENAME, MODIFY

Anonim

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
email 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
email 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

  1. Slet en database fra MySQL-serveren
  2. 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
email 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

  1. Skift kolonnens navn
  2. Skift kolonnedatatype
  3. 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
email varchar(255) YES NULL

Antag, at vi vil

  1. Skift feltnavnet fra "fulde_navne" til "fuldnavn
  2. Skift den til char-datatype med en bredde på 250
  3. 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
email varchar(255) YES NULL

ÆNDR Nøgleord

Med MODIFY Keyword kan du

  1. Rediger søjledatatype
  2. 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
email 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
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

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