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 | ||
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 | ||
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
- Adatbázis törlése a MySQL szerverről
- 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 | ||
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
- Oszlop nevének módosítása
- Oszlop adattípusának módosítása
- 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 | ||
varchar(255) | YES | NULL |
Tegyük fel, hogy szeretnénk
- Változtassa meg a mező nevét "teljes_nevek" helyett "teljes név" értékre
- Változtassa meg 250 szélességű char adattípusra
- 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 | ||
varchar(255) | YES | NULL |
A KULCSSZÓ MÓDOSÍTÁSA
A MODIFY kulcsszó lehetővé teszi
- Oszlop adattípusának módosítása
- 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 | ||
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 | ||
varchar(255) | YES | NULL |
Ö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