Ponekad je naš naziv stupca besmislen, pa je potrebno preimenovati ili promijeniti naziv stupca. MySQL pruža korisnu sintaksu koja može preimenovati jedan ili više stupaca u tablici. Nekoliko je privilegija neophodno prije preimenovanja stupca, kao što su privilegije naredbi ALTER i DROP.
MySQL može preimenovati naziv stupca na dva načina:
- Korištenje naredbe CHANGE
- Korištenje naredbe RENAME
Korištenje naredbe CHANGE:
Sljedeća je sintaksa koja ilustrira preimenovanje stupca pomoću naredbe CHANGE:
ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name Data Type;
U ovoj sintaksi možemo vidjeti da možemo zahtijevati ponovnu specifikaciju svih atributa stupca. Ova nam sintaksa također može omogućiti promjenu tipova podataka stupca. No, ponekad izjava CHANGE može imati sljedeće nedostatke:
- Sve informacije o atributima stupaca možda neće biti dostupne aplikaciji za preimenovanje.
- Postoji rizik od slučajne promjene vrste podataka koja može rezultirati gubitkom podataka aplikacije.
Primjer
Hajde da shvatimo kako naredba CHANGE radi u MySQL preimenovati stupac kroz razne primjere. Pretpostavimo da imamo tablicu pod imenom ravnoteža koji sadrži podatke kako slijedi:
Iz nekog razloga moramo promijeniti naziv stupca account_num zajedno s njegovom vrstom podataka . U tom slučaju prvo provjeravamo strukturu tablice pomoću OPISATI izjava kako slijedi:
Na ovoj slici možemo vidjeti da je tip podataka imena stupca account_num je int . I želimo promijeniti naziv ovog stupca kao broj računa a njegov tip podataka kao int u varchar . Dakle, možemo izvršiti sljedeću naredbu da to učinimo:
mysql> ALTER TABLE balance CHANGE COLUMN account_num account_no VARCHAR(25);
Nakon izvršenja gornje naredbe, možemo je provjeriti ponovnim korištenjem naredbe DESCRIBE. Na donjoj slici naziv stupca account_num i njegova vrsta podataka uspješno su promijenjeni.
Korištenje naredbe RENAME:
Da bi se uklonio nedostatak izjave CHANGE, MySQL je predložio sljedeću sintaksu koja ilustrira promjenu naziva stupca pomoću izjave RENAME:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
Primjer
Razmotrimo kako naredba RENAME radi u MySQL-u za promjenu naziva stupca kroz razne primjere. Pretpostavimo da imamo tablicu pod imenom kupac koji sadrži sljedeće podatke:
Pretpostavimo da želimo promijeniti naziv stupca račun s broj računa bez mijenjanja tipova podataka. To možemo učiniti izvršavanjem donje izjave:
mysql> ALTER TABLE customer RENAME COLUMN account to account_no;
Nakon izvršenja gornje naredbe, možemo je provjeriti pomoću IZABERI opet izjava. Na donjoj slici račun s nazivom stupca uspješno je promijenjen.
Preimenovanje više stupaca
MySQL nam također omogućuje promjenu naziva više stupaca unutar jedne izjave. Ako želimo preimenovati više naziva stupaca, mogli bismo upotrijebiti donju sintaksu:
ALTER TABLE table_name CHANGE old_column_name1 new_column_name1 Data Type, CHANGE old_column_name2 new_column_name2 Data Type, ... ... CHANGE old_column_nameN new_column_nameN Data Type;
ILI
ALTER TABLE table_name RENAME COLUMN old_column_name1 TO new_column_name1, RENAME COLUMN old_column_name2 TO new_column_name2, ... ... RENAME COLUMN old_column_nameN TO new_column_nameN;
Primjer
Pretpostavimo da se želimo promijeniti nazivi stupaca id i customer_name od stol kupaca . Za promjenu više naziva stupaca unutar jedne izjave, možemo upotrijebiti izjavu na sljedeći način:
mysql> ALTER TABLE customer CHANGE id cust_id int, CHANGE customer_name cust_name varchar(45);
Nakon izvršenja gornje naredbe, možemo je provjeriti ponovnom upotrebom naredbe SELECT. Na donjoj slici, naziv stupca id i customer_name uspješno su promijenjeni:
Promijenimo ponovno naziv stupca koji se trenutačno mijenja putem naredbe RENAME COLUMN na sljedeći način:
mysql> ALTER TABLE customer RENAME COLUMN cust_id TO id, RENAME COLUMN cust_name TO customer_name;
Nakon izvršenja gornje naredbe, možemo je provjeriti ponovnim korištenjem naredbe DESCRIBE. Na donjoj slici, naziv stupca cust_id i cust_name uspješno su promijenjeni:
U ovom smo članku naučili uvod u MySQL stupac RENAME i kako promijeniti naziv stupca u određenoj tablici, zajedno s primjerom upita za bolje razumijevanje.