MYSQL - ALTER, DROP, RENAME, MODIFY

Anonim

MI AZ ALTER PARANCS?

A mondás szerint a változás az egyetlen állandó

Idővel az üzleti követelmények is változnak. Az üzleti követelmények változásával az adatbázis-terveknek is változtatniuk kell.

A MySQL biztosítja az ALTER funkciót, amely segít bennünket beépíteni a már meglévő adatbázis-terv változtatásait .

Az alter paranccsal egy meglévő adatbázist, táblázatot, nézetet vagy más adatbázis-objektumokat lehet módosítani, amelyekre szükség lehet az adatbázis életciklusa során.

Tegyük fel, hogy befejeztük az adatbázis tervezésünket, és megvalósításra került. Adatbázis-felhasználóink ​​használják, majd rájönnek, hogy a létfontosságú információk egy része kimaradt a tervezés szakaszában. Nem a meglévő adatokat akarják elveszíteni, hanem csak be akarják építeni az új információkat. Az alter parancs jól jön ilyen helyzetekben. Az alter paranccsal megváltoztathatjuk a mezők adattípusát mondat karakterláncról numerikusra, a mező nevét új névre változtathatjuk, vagy akár új oszlopot is hozzáadhatunk a táblához.

Alter- szintaxis

Az oszlop hozzáadásához használt alapszintaktika az alábbiakban látható

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

ITT

  • Az "ALTER TABLE" tábla_neve " az a parancs, amely a MySQL szervernek utasítja a " tábla_név " nevű tábla módosítását.
  • "ADD COLUMN" oszlop_név "data_type" " az a parancs, amely megmondja a MySQL szervernek, hogy adjon hozzá egy új" oszlop_név "nevű oszlopot az" data_type "adattípussal.

Tegyük fel, hogy a Myflix bevezette az online számlázást és a fizetéseket. Ennek érdekében arra kértek minket, hogy adjunk hozzá egy mezőt a hitelkártyaszámhoz a tagok táblázatában. Ehhez használhatjuk az ALTER parancsot. Először nézzük meg a tagok táblázatának felépítését, mielőtt bármilyen módosítást elvégeznénk. Az alább látható szkript segít ebben.

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

Az alább látható szkript segítségével új mezőt adhatunk a tagok táblájához.

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

A fenti parancsfájl végrehajtása a MySQL-ben a Myflixdb-vel szemben egy új oszlopot ad meg hitelkártyaszámmal a tagtáblához, adattípusként a VARCHAR. A show oszlopok parancsfájljának végrehajtása a következő eredményeket adja nekünk.

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

Amint az a visszaküldött eredményekből kiderül, a tagok táblájába felvették a hitelkártya számát. A tagok adataiban szereplő adatokat nem befolyásolja az új oszlop hozzáadása.

MI A DROP PARANCS?

A DROP parancs használta

  1. Adatbázis törlése a MySQL szerverről
  2. Töröljön egy objektumot (például Táblázat, Oszlop) az adatbázisból.

Most nézzünk meg olyan gyakorlati példákat, amelyek a DROP parancsot használják.

Korábbi példánkban az Alter parancsról egy hitelkártyaszám nevű oszlopot adtunk a tagok táblájához.

Tegyük fel, hogy az online számlázási funkció eltart egy ideig, és szeretnénk eldobni a hitelkártya oszlopot

Használhatjuk a következő szkriptet

ALTER TABLE `members` DROP COLUMN `credit_card_number`;

A fenti parancsfájl végrehajtása eldobja a credit_card_number oszlopot a tagok táblájából

Most nézzük meg a tagok táblázatának oszlopait, hogy megerősítsük, eldőlt-e az oszlop.

SHOW COLUMNS FROM `members`;

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz a következő eredményeket adja.

 
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

Figyelje meg, hogy a hitelkártya száma eltűnt a mezők listájáról.

DROP TABLE

A táblázat DROP-hoz való szintaxisa az adatbázisból a következő -

DROP TABLE `sample_table`;

Nézzünk meg egy példát

DROP TABLE `categories_archive`;

A fenti parancsfájl végrehajtása törli az adatbázisunkból a "categories_archive" nevű táblázatot.

MI AZ ÁTNEVEZÉSI PARANCS?

Az átnevezés paranccsal egy meglévő adatbázis-objektum (például Táblázat, Oszlop) nevét új névre változtathatja .

A tábla átnevezése nem vonja maga után az adatok elvesztését.

Szintaxis:-

Az átnevezés parancs a következő alapvető szintaxissal rendelkezik.

RENAME TABLE `current_table_name` TO `new_table_name`;

Tegyük fel, hogy a movierentals táblázatot át akarjuk nevezni movie_rentals névre, ennek eléréséhez használhatjuk az alább látható szkriptet.

RENAME TABLE `movierentals` TO `movie_rentals`;

A fenti parancsfájl végrehajtása átnevezi a táblázatot a "movierentals" -ra "movie_rentals" -ra.

Most átnevezzük a movie_rentals táblázatot az eredeti nevére.

RENAME TABLE `movie_rentals` TO `movierentals`;

KULCSSZÓ MÓDOSÍTÁSA

A Kulcsszavak módosítása lehetővé teszi

  1. Oszlop nevének módosítása
  2. Oszlop adattípusának módosítása
  3. Oszlopkorlátok módosítása

Nézzünk meg egy példát. A tagok táblázatában a teljes név mező varchar típusú, szélessége 150.

SHOW COLUMNS FROM `members`;

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz a következő eredményeket adja.

 
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

Tegyük fel, hogy szeretnénk

  1. Változtassa meg a mező nevét "teljes_nevek" helyett "teljes név" értékre
  2. Változtassa meg 250 szélességű char adattípusra
  3. Adjon hozzá egy NULL korlátozást

Ezt a változás paranccsal hajthatjuk végre az alábbiak szerint:

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

A fenti parancsfájl végrehajtása a MySQL munkapadban a myflixdb ellen, majd a fent megadott show oszlopok parancsfájl végrehajtása a következő eredményeket adja.

 
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

A KULCSSZÓ MÓDOSÍTÁSA

A MODIFY kulcsszó lehetővé teszi

  1. Oszlop adattípusának módosítása
  2. Oszlopkorlátok módosítása

A fenti CHANGE példában meg kellett változtatnunk a mező nevét és egyéb részleteket is. A mezőnév kihagyása a CHANGE utasításból hibát generál. Tegyük fel, hogy csak a mező adattípusának és korlátozásainak megváltoztatása érdekel anélkül, hogy befolyásolná a mező nevét, ennek megvalósításához használhatjuk a MODIFY kulcsszót.

Az alábbi szkript megváltoztatja a "teljes név" mező szélességét 250-ről 50-re.

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

A fenti szkript futtatása a MySQL munkapadban a myflixdb-vel szemben, majd a fent megadott show oszlopok parancsfájl végrehajtása az alábbi eredményeket mutatja.

 
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

KULCSSZÓ UTÁN

Tegyük fel, hogy új oszlopot szeretnénk felvenni a táblázat egy meghatározott pontjára.

Használhatjuk az alter parancsot az AFTER kulcsszóval együtt.

Az alábbi szkript hozzáadja a "date_of_registration" szót közvetlenül a születési dátum után a tagok táblázatában.

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

A fenti szkript futtatása a MySQL munkapadban a myflixdb-vel szemben, majd a fent megadott show oszlopok parancsfájl végrehajtása az alábbi eredményeket mutatja.

 
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

Összegzés

  • Az alter parancs akkor használható, ha módosítani akarunk egy adatbázist vagy az adatbázisban található bármely objektumot.
  • A drop parancs az adatbázisok törlésére szolgál a MySQL szerverről vagy az adatbázisban lévő objektumokról.
  • Az átnevezés paranccsal a tábla nevét új táblanévre változtathatja.
  • A Change kulcsszó lehetővé teszi az oszlop nevének, adattípusának és korlátozásainak megváltoztatását
  • A Kulcsszó módosítása lehetővé teszi az oszlop adattípusának és korlátozásainak módosítását
  • Az After kulcsszó segítségével megadhatjuk az oszlop pozícióját a táblázatban