MYSQL - ALTER, DROP, RENAME, MODIFY

Anonim

VAD ÄR ÄLSKARE?

Som ordspråket säger är förändring den enda konstanten

Med tiden förändras också företagskraven. När företagskraven ändras måste databasdesignen också ändras.

MySQL tillhandahåller ALTER- funktionen som hjälper oss att införliva ändringarna av den redan existerande databasdesignen .

Ändringskommandot används för att modifiera en befintlig databas, tabell, vy eller andra databasobjekt som kan behöva ändras under en databas livscykel.

Låt oss anta att vi har slutfört vår databasdesign och att den har implementerats. Våra databasanvändare använder den och sedan inser de att en del av den viktiga informationen utelämnades i designfasen. De vill inte förlora den befintliga informationen utan vill bara införliva den nya informationen. Alter-kommandot är användbart i sådana situationer. Vi kan använda kommandot alter för att ändra datatypen för ett fält från sägsträng till numerisk, ändra fältnamnet till ett nytt namn eller till och med lägga till en ny kolumn i en tabell.

Alter-syntax

Den grundläggande syntaxen som används för att lägga till en kolumn i en redan existerande tabell visas nedan

ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;

HÄR

  • "ALTER TABLE" tabellnamn "" är kommandot som ber MySQL-servern att ändra tabellen med namnet "tabellnamn".
  • "LÄGG TILL KOLONN" kolumnnamn "" data_type "" är kommandot som ber MySQL-servern att lägga till en ny kolumn med namnet "kolumnnamn" med datatypen "data_type".

Låt oss anta att Myflix har infört fakturering och betalningar online. Mot detta ändamål har vi uppmanats att lägga till ett fält för kreditkortsnumret i vår medlemstabell. Vi kan använda ALTER-kommandot för att göra det. Låt oss först titta på strukturen för medlemstabellen innan vi gör några ändringar. Manuset som visas nedan hjälper oss att göra 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 använda skriptet som visas nedan för att lägga till ett nytt fält i medlemstabellen.

ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);

Att utföra ovanstående skript i MySQL mot Myflixdb lägger till en ny kolumn med namnet kreditkortsnummer i medlemstabellen med VARCHAR som datatyp. Utförande av showkolumnskriptet ger oss följande resultat.

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 från de returnerade resultaten har kreditkortsnummer lagts till i medlemstabellen. Uppgifterna i medlemmarnas data påverkas inte av tillägget av den nya kolumnen.

VAD ÄR DROPKommandot?

DROP-kommandot används för att

  1. Ta bort en databas från MySQL-servern
  2. Ta bort ett objekt (som tabell, kolumn) från en databas.

Låt oss nu titta på praktiska exempel som använder DROP-kommandot.

I vårt tidigare exempel på Alter Command lade vi till en kolumn med namnet kreditkortsnummer i medlemstabellen.

Antag att onlinefaktureringsfunktionen tar lite tid och vi vill TROPA kreditkortskolumnen

Vi kan använda följande skript

ALTER TABLE `members` DROP COLUMN `credit_card_number`;

Genom att utföra ovanstående skript släpps kolumnen credit_card_number från medlemstabellen

Låt oss nu titta på kolumnerna i medlemstabellen för att bekräfta om vår kolumn har tappats.

SHOW COLUMNS FROM `members`;

Att köra ovanstående skript i MySQL-arbetsbänken mot myflixdb ger oss följande resultat.

 
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

Observera att kreditkortsnumret har tappats från fältlistan.

SLÄPP BORD

Syntaxen för DROP en tabell från databasen är som följer -

DROP TABLE `sample_table`;

Låt oss titta på ett exempel

DROP TABLE `categories_archive`;

Genom att utföra ovanstående skript raderas tabellen med namnet `categories_archive 'från vår databas.

VAD ÄR RENAME COMMAND?

Kommandot byta namn används för att ändra namnet på ett befintligt databasobjekt (som tabell, kolumn) till ett nytt namn .

Att byta namn på en tabell gör att det inte går att förlora.

Syntax:-

Kommandot byta namn har följande grundläggande syntax.

RENAME TABLE `current_table_name` TO `new_table_name`;

Låt oss anta att vi vill byta namn på tabellen movierentals till movie_rentals, vi kan använda manuset som visas nedan för att uppnå det.

RENAME TABLE `movierentals` TO `movie_rentals`;

Genom att utföra ovanstående skript, döptes tabellen `movierentals` till` movie_rentals`.

Vi kommer nu att byta namn på movie_rentals-tabellen till sitt ursprungliga namn.

RENAME TABLE `movie_rentals` TO `movierentals`;

Byt nyckelord

Ändra nyckelord gör att du kan

  1. Ändra kolumnens namn
  2. Ändra kolumndatatyp
  3. Ändra kolumnbegränsningar

Låt oss titta på ett exempel. Fältet med fullständiga namn i medlemstabellen är av datatyp av varchar och har en bredd på 150.

SHOW COLUMNS FROM `members`;

Att köra ovanstående skript i MySQL-arbetsbänken mot myflixdb ger oss följande resultat.

 
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 att vi vill

  1. Ändra fältnamnet från "fullständiga namn" till "fullständigt namn
  2. Ändra den till char-datatyp med en bredd på 250
  3. Lägg till en INTE NULL-begränsning

Vi kan åstadkomma detta med ändringskommandot enligt följande -

ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;

Att utföra ovanstående skript i MySQL-arbetsbänken mot myflixdb och sedan köra skriptkolonnskriptet ovan ger följande resultat.

 
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

ÄNDRA NYCKELORD

Med MODIFY Keyword kan du

  1. Ändra kolumndatatyp
  2. Ändra kolumnbegränsningar

I exemplet ÄNDRA ovan var vi tvungna att ändra fältnamnet och andra detaljer. Att utelämna fältnamnet från CHANGE-satsen genererar ett fel. Antag att vi bara är intresserade av att ändra datatyp och begränsningar i fältet utan att påverka fältnamnet, vi kan använda nyckelordet MODIFY för att uppnå det.

Skriptet nedan ändrar bredden på fältet "fullnamn" från 250 till 50.

ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;

Utförande av ovanstående skript i MySQL-arbetsbänk mot myflixdb och körning av showkolonnskriptet ovan ger följande resultat nedan.

 
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 NYCKELORD

Antag att vi vill lägga till en ny kolumn på en specifik position i tabellen.

Vi kan använda kommandot alter tillsammans med nyckelordet EFTER.

Skriptet nedan lägger till "date_of_registration" strax efter födelsedatumet i medlemstabellen.

ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;

Utförande av ovanstående skript i MySQL-arbetsbänk mot myflixdb och körning av showkolonnskriptet ovan ger följande resultat nedan.

 
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

Sammanfattning

  • Ändringskommandot används när vi vill ändra en databas eller något annat objekt som finns i databasen.
  • Drop-kommandot används för att radera databaser från MySQL-servern eller objekt i en databas.
  • Kommandot byta namn används för att ändra namnet på en tabell till ett nytt tabellnamn.
  • Nyckelordet Ändra låter dig ändra ett kolumnnamn, datatyp och begränsningar
  • Med Modify Keyword kan du ändra en kolumndatatyp och begränsningar
  • Nyckelordet After används för att ange position för en kolumn i en tabell