MYSQL – PROMIJENI, ISPUSTI, PREIMENI, MIJENI
Što je naredba ALTER?
Kako se ono kaže Promjena je jedina konstanta
S vremenom se mijenjaju i poslovni zahtjevi. Kako se poslovni zahtjevi mijenjaju, potrebno je promijeniti i dizajn baze podataka.
MySQL pruža IZMIJENI funkcija koja nam pomaže ugraditi promjene u već postojeći dizajn baze podataka.
Naredba alter koristi se za izmjenu postojeće baze podataka, tablice, prikaza ili drugih objekata baze podataka koji bi se mogli promijeniti tijekom životnog ciklusa baze podataka.
Pretpostavimo da smo dovršili dizajn naše baze podataka i ona je implementirana. Naši korisnici baze podataka koriste je i onda shvate da su neke od vitalnih informacija izostavljene u fazi dizajna. Oni ne žele izgubiti postojeće podatke, već samo žele ugraditi nove informacije. U takvim situacijama dobro dođe naredba alter. Možemo koristiti alter naredbu za promjenu tipa podataka polja iz recimo niza u numerički, promijeniti naziv polja u novi naziv ili čak dodati novi stupac u tablici.
Alter – sintaksa
Osnovna sintaksa koja se koristi za dodavanje stupca u već postojeću tablicu prikazana je u nastavku
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
OVDJE
- “ALTER TABLE `table_name`” je naredba koja govori MySQL poslužitelj za izmjenu tablice pod nazivom `table_name`.
- “DODAJ KOLONCU `naziv_stupca` `tip_podataka`” je naredba koja govori MySQL poslužitelj za dodavanje novog stupca pod nazivom `column_name` s tipom podataka `data_type'.
Pretpostavimo da je Myflix uveo online naplatu i plaćanja. U tu svrhu, zamoljeni smo da dodamo polje za broj kreditne kartice u našu tablicu članova. Za to možemo koristiti naredbu ALTER. Pogledajmo prvo strukturu tablice članova prije nego što unesemo bilo kakve izmjene. Skripta prikazana u nastavku pomaže nam u tome.
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 |
Možemo koristiti skriptu prikazanu u nastavku za dodavanje novog polja u tablicu članova.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Izvršavanje gornje skripte u MySQL protiv Myflixdb dodaje novi stupac pod nazivom broj kreditne kartice u tablicu članova s VARCHAR kao tipom podataka. Izvršavanje skripte show columns daje nam sljedeće rezultate.
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 |
Kao što možete vidjeti iz vraćenih rezultata, broj kreditne kartice dodan je u tablicu članova. Dodavanje novog stupca ne utječe na podatke sadržane u podacima o članovima.
ŠTO JE NAREDBA ISPUŠTANJA?
Naredba DROP se koristi za
- Brisanje baze podataka iz MySQL server
- Izbrišite objekt (kao što je tablica, stupac) iz baze podataka.
Pogledajmo sada praktične primjere koji koriste naredbu DROP.
U našem prethodnom primjeru s naredbom Alter dodali smo stupac pod nazivom broj kreditne kartice u tablicu članova.
Pretpostavimo da će funkcija online naplate potrajati neko vrijeme i želimo ISPUSTI stupac kreditne kartice
Možemo koristiti sljedeću skriptu
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Izvršavanje gornje skripte ispušta stupac credit_card_number iz tablice članova
Pogledajmo sada stupce u tablici članova kako bismo potvrdili je li naš stupac izbačen.
SHOW COLUMNS FROM `members`;
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb daje nam sljedeće rezultate.
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 |
Primijetite da je broj kreditne kartice ispušten s popisa polja.
ISPUSTI STOL
Sintaksa za ISPUŠTANJE tablice iz baze podataka je sljedeća –
DROP TABLE `sample_table`;
Pogledajmo primjer
DROP TABLE `categories_archive`;
Izvršavanjem gornje skripte briše se tablica pod nazivom ` category_archive ` iz naše baze podataka.
ŠTO JE NAREDBA ZA PREIMENOVANJE?
Naredba rename koristi se za promijeniti naziv postojećeg objekta baze podataka (poput tablice, stupca) u novi naziv.
Preimenovanje tablice ne dovodi do gubitka podataka koji se nalaze u njoj.
Sintaksa:-
Naredba za preimenovanje ima sljedeću osnovnu sintaksu.
RENAME TABLE `current_table_name` TO `new_table_name`;
Pretpostavimo da želimo preimenovati tablicu movierentals u movie_rentals, možemo koristiti skriptu prikazanu u nastavku da to postignemo.
RENAME TABLE `movierentals` TO `movie_rentals`;
Izvršavanje gornje skripte preimenuje tablicu `movierentals` u `movie_rentals`.
Sada ćemo preimenovati tablicu movie_rentals natrag u izvorni naziv.
RENAME TABLE `movie_rentals` TO `movierentals`;
PROMIJENI KLJUČNU RIJEČ
Promjena ključnih riječi vam omogućuje
- Promjena naziva stupca
- Promjena vrste podataka stupca
- Promjena ograničenja stupaca
Pogledajmo primjer. Polje s punim imenima u tablici članova je tipa podataka varchar i ima širinu od 150.
SHOW COLUMNS FROM `members`;
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb daje nam sljedeće rezultate.
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 |
Pretpostavimo da želimo
- Promijenite naziv polja iz “full_names” u “fullname
- Promijenite ga u tip podataka char širine 250
- Dodajte NOT NULL ograničenje
To možemo postići pomoću naredbe change na sljedeći način –
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Izvršavanje gornje skripte u MySQL workbench protiv myflixdb i zatim izvršavanje skripte show columns dane gore daje sljedeće rezultate.
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 |
IZMIJENI KLJUČNU RIJEČ
Ključna riječ MODIFY omogućuje vam da
- Izmijeni vrstu podataka stupca
- Izmijenite ograničenja stupaca
U gornjem primjeru CHANGE, morali smo promijeniti naziv polja, kao i druge detalje. Izostavljanje naziva polja iz izjave CHANGE generirat će pogrešku. Pretpostavimo da smo samo zainteresirani za promjenu tipa podataka i ograničenja na polju bez utjecaja na naziv polja, možemo koristiti ključnu riječ MODIFY da to postignemo.
Skripta u nastavku mijenja širinu polja "puno ime" s 250 na 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Izvršavanje gornje skripte u MySQL workbench protiv myflixdb i zatim izvršavanje skripte show columns dane gore daje sljedeće rezultate prikazane u nastavku.
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 |
NAKON KLJUČNE RIJEČI
Pretpostavimo da želimo dodati novi stupac na određeno mjesto u tablici.
Naredbu alter možemo koristiti zajedno s ključnom riječi AFTER.
Skripta u nastavku dodaje "datum_registracije" neposredno nakon datuma rođenja u tablici članova.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Izvršavanje gornje skripte u MySQL workbench protiv myflixdb i zatim izvršavanje skripte show columns dane gore daje sljedeće rezultate prikazane u nastavku.
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 |
rezime
- Naredba alter koristi se kada želimo modificirati bazu podataka ili bilo koji objekt sadržan u bazi podataka.
- Naredba drop koristi se za brisanje baza podataka iz MySQL server ili objekte unutar baze podataka.
- Naredba rename koristi se za promjenu naziva tablice u novi naziv tablice.
- Ključna riječ Promjena omogućuje vam promjenu naziva stupca, vrste podataka i ograničenja
- Izmijeni ključnu riječ omogućuje vam izmjenu tipa podataka stupca i ograničenja
- Ključna riječ After koristi se za određivanje položaja stupca u tablici