CO JE ZMĚNĚNÝ PŘÍKAZ?
Jak se říká, změna je jediná konstanta
Postupem času se mění i obchodní požadavky. Jak se mění obchodní požadavky, musí se měnit i návrhy databází.
MySQL poskytuje funkci ALTER, která nám pomáhá začlenit změny do již existujícího návrhu databáze .
Příkaz alter se používá k úpravě existující databáze, tabulky, pohledu nebo jiných databázových objektů, které by se mohly během životního cyklu databáze změnit.
Předpokládejme, že jsme dokončili náš návrh databáze a byl implementován. Používají ji naši uživatelé databáze a poté si uvědomí, že některé důležité informace byly ve fázi návrhu vynechány. Nechtějí přijít o existující data, ale chtějí pouze začlenit nové informace. Příkaz alter se v takových situacích hodí. Příkaz alter můžeme použít ke změně datového typu pole z řekněme řetězce na numerický, ke změně názvu pole na nový název nebo dokonce přidání nového sloupce do tabulky.
Změna syntaxe
Níže je uvedena základní syntaxe použitá k přidání sloupce do již existující tabulky
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
TADY
- "ALTER TABLE` table_name` " je příkaz, který říká serveru MySQL, aby upravil tabulku s názvem` table_name`.
- „ADD COLUMN` column_name` `data_type`“ je příkaz, který říká serveru MySQL, aby přidal nový sloupec s názvem `column_name` s datovým typem` data_type '.
Předpokládejme, že Myflix zavedl online fakturaci a platby. Za tímto účelem jsme byli požádáni, abychom do tabulky členů přidali pole pro číslo kreditní karty. K tomu můžeme použít příkaz ALTER. Nejprve se podívejme na strukturu tabulky členů, než provedeme jakékoli změny. K tomu nám pomáhá níže zobrazený skript.
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 |
Pomocí níže uvedeného skriptu můžeme do tabulky členů přidat nové pole.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Provedení výše uvedeného skriptu v MySQL proti Myflixdb přidá do tabulky členů nový sloupec s názvem číslo kreditní karty s datovým typem VARCHAR. Spuštění skriptu zobrazení sloupců nám dává následující výsledky.
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 |
Jak vidíte z vrácených výsledků, do tabulky členů bylo přidáno číslo kreditní karty. Přidání nového sloupce nemá vliv na data obsažená v datech členů.
CO JE DROP COMMAND?
Příkaz DROP je zvyklý
- Odstraňte databázi ze serveru MySQL
- Odstraňte objekt (například tabulku, sloupec) z databáze.
Podívejme se nyní na praktické příklady, které využívají příkaz DROP.
V našem předchozím příkladu v příkazu Alter jsme do tabulky členů přidali sloupec s názvem číslo kreditní karty.
Předpokládejme, že funkce online fakturace bude nějakou dobu trvat a chceme DROP sloupec kreditní karty
Můžeme použít následující skript
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Provedení výše uvedeného skriptu zruší sloupec credit_card_number z tabulky členů
Pojďme se nyní podívat na sloupce v tabulce členů a ověřit, zda byl náš sloupec zrušen.
SHOW COLUMNS FROM `members`;
Provedení výše uvedeného skriptu v pracovní ploše MySQL proti myflixdb nám dává následující výsledky.
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 |
Všimněte si, že číslo kreditní karty bylo zrušeno ze seznamu polí.
DROP TABULKA
Syntaxe DROP tabulky z databáze je následující -
DROP TABLE `sample_table`;
Podívejme se na příklad
DROP TABLE `categories_archive`;
Spuštění výše uvedeného skriptu odstraní z naší databáze tabulku s názvem `category_archive`.
CO JE PŘÍKAZ PŘEJMENU?
Příkaz rename se používá ke změně názvu existujícího databázového objektu (jako je tabulka, sloupec) na nový název .
Přejmenováním tabulky nedojde ke ztrátě veškerých dat v ní obsažených.
Syntax:-
Příkaz přejmenování má následující základní syntaxi.
RENAME TABLE `current_table_name` TO `new_table_name`;
Předpokládejme, že chceme přejmenovat tabulku movierentals na film_rentals, abychom toho dosáhli pomocí níže uvedeného skriptu.
RENAME TABLE `movierentals` TO `movie_rentals`;
Provedení výše uvedeného skriptu přejmenuje tabulku `movierentals` na` film_rentals`.
Nyní přejmenujeme tabulku movie_rentals zpět na její původní název.
RENAME TABLE `movie_rentals` TO `movierentals`;
ZMĚNA KLÍČOVÉHO SLOVA
Změna klíčových slov vám umožňuje
- Změňte název sloupce
- Změnit datový typ sloupce
- Změňte omezení sloupců
Podívejme se na příklad. Pole celých jmen v tabulce členů je datového typu varchar a má šířku 150.
SHOW COLUMNS FROM `members`;
Provedení výše uvedeného skriptu v pracovní ploše MySQL proti myflixdb nám dává následující výsledky.
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 |
Předpokládejme, že chceme
- Změňte název pole z „full_names“ na „fullname
- Změňte jej na datový typ char o šířce 250
- Přidejte omezení NOT NULL
Můžeme toho dosáhnout pomocí příkazu change následujícím způsobem -
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Provedení výše uvedeného skriptu v pracovní ploše MySQL proti myflixdb a následné provedení výše uvedeného skriptu ukázat sloupce poskytuje následující výsledky.
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 |
ZMĚNTE KLÍČOVÉ SLOVO
Klíčové slovo MODIFY vám to umožňuje
- Upravit datový typ sloupce
- Upravit omezení sloupců
Ve výše uvedeném příkladu ZMĚNA jsme museli změnit název pole i další podrobnosti. Vynechání názvu pole z příkazu CHANGE vygeneruje chybu. Předpokládejme, že nás zajímá pouze změna datového typu a omezení v poli bez ovlivnění názvu pole, můžeme k tomu použít klíčové slovo MODIFY.
Níže uvedený skript mění šířku pole „celé jméno“ z 250 na 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Provedení výše uvedeného skriptu v pracovní ploše MySQL proti myflixdb a následné provedení výše uvedeného skriptu ukázat sloupce poskytuje následující výsledky uvedené níže.
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 |
PO KLÍČOVÉM SLOVU
Předpokládejme, že chceme přidat nový sloupec na konkrétní pozici v tabulce.
Můžeme použít příkaz alter společně s klíčovým slovem AFTER.
Skript níže přidává „date_of_registration“ hned za datum narození v tabulce členů.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Provedení výše uvedeného skriptu v pracovní ploše MySQL proti myflixdb a následné provedení výše uvedeného skriptu ukázat sloupce poskytuje následující výsledky uvedené níže.
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 |
souhrn
- Příkaz alter se používá, když chceme upravit databázi nebo jakýkoli objekt obsažený v databázi.
- Příkaz drop se používá k odstranění databází ze serveru MySQL nebo objektů v databázi.
- Příkaz rename se používá ke změně názvu tabulky na nový název tabulky.
- Klíčové slovo Změnit vám umožňuje změnit název sloupce, datový typ a omezení
- Modifikovat klíčové slovo vám umožňuje upravit datový typ a omezení sloupce
- Klíčové slovo After se používá k určení polohy sloupce v tabulce