MYSQL – ENDRE, DROPPE, ENDRE navn, ENDRE
Hva er ALTER-kommandoen?
Som ordtaket sier Endring er den eneste konstanten
Med tiden endres også forretningskravene. Når forretningskravene endres, må databasedesign også endres.
MySQL gir ENDRE funksjon som hjelper oss innlemme endringene i den allerede eksisterende databasedesignen.
Alter-kommandoen brukes til å endre en eksisterende database, tabell, visning eller andre databaseobjekter som kanskje må endres i løpet av livssyklusen til en database.
La oss anta at vi har fullført databasedesignet vårt og det er implementert. Våre databasebrukere bruker den, og da innser de at noe av den viktige informasjonen ble utelatt i designfasen. De ønsker ikke å miste eksisterende data, men vil bare inkludere den nye informasjonen. Alter-kommandoen kommer godt med i slike situasjoner. Vi kan bruke alter-kommandoen til å endre datatypen til et felt fra si streng til numerisk, endre feltnavnet til et nytt navn eller til og med legge til en ny kolonne i en tabell.
Alter – syntaks
Den grunnleggende syntaksen som brukes til å legge til en kolonne i en allerede eksisterende tabell, er vist nedenfor
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
HER
- "ENDRE TABELL `tabellnavn`" er kommandoen som forteller MySQL server for å endre tabellen kalt `tabellnavn`.
- "ADD COLUMN `column_name` `data_type`" er kommandoen som forteller MySQL server for å legge til en ny kolonne kalt `column_name` med datatypen `data_type'.
La oss anta at Myflix har introdusert nettfakturering og betalinger. Mot dette har vi blitt bedt om å legge til et felt for kredittkortnummeret i medlemstabellen vår. Vi kan bruke ALTER-kommandoen for å gjøre det. La oss først se på strukturen til medlemstabellen før vi gjør noen endringer. Skriptet som vises nedenfor hjelper oss å gjøre 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 | ||
varchar(255) | YES | NULL |
Vi kan bruke skriptet vist nedenfor for å legge til et nytt felt i medlemstabellen.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Utfører skriptet ovenfor i MySQL mot Myflixdb legger til en ny kolonne kalt kredittkortnummer til medlemstabellen med VARCHAR som datatype. Utførelse av skriptet viser kolonner gir oss følgende resultater.
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 |
Som du kan se av resultatene som ble returnert, er kredittkortnummeret lagt til i medlemstabellen. Dataene i medlemmenes data påvirkes ikke av tilføyelsen av den nye kolonnen.
HVA ER DROP-KOMMANDOEN?
DROP-kommandoen brukes til
- Slett en database fra MySQL server
- Slett et objekt (som Tabell , Kolonne) fra en database.
La oss nå se på praktiske eksempler som bruker DROP-kommandoen.
I vårt forrige eksempel på Alter Command la vi til en kolonne kalt kredittkortnummer i medlemstabellen.
Anta at funksjonaliteten for nettfakturering vil ta litt tid, og vi ønsker å SLAPPE kredittkortkolonnen
Vi kan bruke følgende skript
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Ved å kjøre skriptet ovenfor fjernes kolonnen kredittkortnummer fra medlemstabellen
La oss nå se på kolonnene i medlemstabellen for å bekrefte om kolonnen vår har blitt slettet.
SHOW COLUMNS FROM `members`;
Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir oss følgende resultater.
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 |
Legg merke til at kredittkortnummeret er slettet fra feltlisten.
DROPPE BORD
Syntaksen for å DROPPE en tabell fra databasen er som følger –
DROP TABLE `sample_table`;
La oss se på et eksempel
DROP TABLE `categories_archive`;
Utførelse av skriptet ovenfor sletter tabellen kalt ` categories_archive ` fra databasen vår.
HVA ER RENAME-KOMMANDOEN?
Rename-kommandoen brukes til endre navnet på et eksisterende databaseobjekt (som Tabell, Kolonne) til et nytt navn.
Å gi nytt navn til en tabell gjør at den ikke mister noen data som finnes i den.
Syntaks:-
Rename-kommandoen har følgende grunnleggende syntaks.
RENAME TABLE `current_table_name` TO `new_table_name`;
La oss anta at vi ønsker å gi nytt navn til movierentals-tabellen til movie_rentals, vi kan bruke skriptet vist nedenfor for å oppnå det.
RENAME TABLE `movierentals` TO `movie_rentals`;
Utførelse av skriptet ovenfor endrer navnet på tabellen "movierentals" til "movie_rentals".
Vi vil nå gi nytt navn til movie_rentals-tabellen til det opprinnelige navnet.
RENAME TABLE `movie_rentals` TO `movierentals`;
ENDRE SØKEORD
Endre nøkkelord lar deg
- Endre navn på kolonne
- Endre kolonnedatatype
- Endre kolonnebegrensninger
La oss se på et eksempel. Feltet for fulle navn i medlemstabellen er av varchar-datatypen og har en bredde på 150.
SHOW COLUMNS FROM `members`;
Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb gir oss følgende resultater.
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 |
Anta at vi vil
- Endre feltnavnet fra "full_names" til "fullname
- Endre den til char-datatype med en bredde på 250
- Legg til en NOT NULL-begrensning
Vi kan oppnå dette ved å bruke endringskommandoen som følger -
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb og deretter utføre show columns-skriptet gitt ovenfor gir følgende resultater.
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 |
ENDRE SØKEORD
MODIFY Keyword lar deg
- Endre kolonnedatatype
- Endre kolonnebegrensninger
I CHANGE-eksemplet ovenfor måtte vi endre feltnavnet i tillegg til andre detaljer. Å utelate feltnavnet fra CHANGE-setningen vil generere en feil. Anta at vi bare er interessert i å endre datatype og begrensninger på feltet uten å påvirke feltnavnet, kan vi bruke MODIFY nøkkelordet for å oppnå det.
Skriptet nedenfor endrer bredden på "fullnavn"-feltet fra 250 til 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb og deretter kjøre show columns-skriptet gitt ovenfor gir følgende resultater vist nedenfor.
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 |
ETTER SØKEORD
Anta at vi ønsker å legge til en ny kolonne på en bestemt plassering i tabellen.
Vi kan bruke alter-kommandoen sammen med AFTER-nøkkelordet.
Skriptet nedenfor legger til "date_of_registration" like etter fødselsdatoen i medlemstabellen.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Utfører skriptet ovenfor i MySQL arbeidsbenk mot myflixdb og deretter kjøre show columns-skriptet gitt ovenfor gir følgende resultater vist nedenfor.
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 |
Oppsummering
- Alter-kommandoen brukes når vi ønsker å endre en database eller et hvilket som helst objekt i databasen.
- Drop-kommandoen brukes til å slette databaser fra MySQL server eller objekter i en database.
- Rename-kommandoen brukes til å endre navnet på en tabell til et nytt tabellnavn.
- Endre nøkkelordet lar deg endre et kolonnenavn, datatype og begrensninger
- Endre nøkkelord lar deg endre en kolonnedatatype og begrensninger
- Etter nøkkelordet brukes til å spesifisere plasseringen av en kolonne i en tabell