MySQL aneb u?íme se SQL jazyk (X.)

Autor: Ji?í Luká? <jirilukas(at)supersvet.cz>, Téma: MySQL, Vydáno dne: 22. 01. 2001

Vítám vás u jubilejního desátého dílu na?e seriálu "MySQL aneb u?íme se SQL jazyk", ve kterém si uká?eme, jak modifikovat strukturu ji? existující tabulky bez toho, abychom ji nejprve celou zru?ily a posléze op?t zalo?ily. Dále si ?ekneme, jak lze v MySQL spustit SQL script a úpln? na konec vám mo?ná stihnu ukázat, jak jednodu?e lze zjistit, jaké databáze a tabulky aktuáln? spravuje vá? rela?ní DB server MySQL.

Modifikace struktury existující tabulky

Proto?e i u jakkoliv dob?e navr?ené databáze se jednou nutn? setkáte s po?adavkem na její modifikaci nap?. v podob? p?idání nového nebo ubrání ji? existujícího sloupce v n?jaké tabulce, tak je dobré znát SQL p?íkaz, jen? tyto úkoly doká?e bez jakýchkoliv problému vykonat a u?et?it si tak ?as, který by jste strávili hledáním v manuálech. - A práv? proto vás chci nyní seznámit s SQL p?íkazem ALTER TABLE ..., s jeho? pomocí lze (- p?idat/zru?it sloupec, zm?nit datovou definici sloupce nebo definici jeho integritních omezení) lehce zm?nit stávající definici jakékoliv tabulky.

Syntaxe:
ALTER TABLE jméno_tabulky
  [ADD (specifikace_sloupc?)]
  [MODIFY specifikace_sloupce]
  [DROP jméno_sloupce]
  [DROP CONSTRAIN jméno_sloupce]

Poznámka: Vzhledem k tomu, ?e jsme si je?t? neukázali, jak definovat integritní pravidla pro jednotlivé sloupce v tabulce, tak se posledním ?ádkem ve vý?e uvedené syntaxi nebudeme v?bec zabývat.

P?idání sloupce:
Chcete-li do své tabulky p?idat dal?í sloupec(e), pou?ijete SQL p?íkaz ALTER TABLE s klí?ovým pod p?íkazem ADD (specifikace_sloupc?), kde na místo specifikace_sloupc? doplníte seznam (m??e být i jednoslo?kový) obsahující názvy nových sloupc?, jejich datové typy a p?ípadná integritní omezení (- ty v?ak zatím neumíte definovat).

Ukázka: ALTER TABLE zamestnanec ADD (Funkce char(20));

Odstran?ní sloupce:
Ukázka: ALTER TABLE zamestnanec DROP Funkce;

Modifikace sloupce:
Ukázka: ALTER TABLE zamestnanec MODIFY Funkce char(30);

P?ejmenování sloupce:
Jeliko? SQL p?íkaz ALTER TABLE nedisponuje ?ádným pod p?íkazem, který by umo??oval p?ejmenovat sloupec v n?jaké tabulce, je nutné tuto operaci vy?e?it za pomoci jiných existujících p?íkaz? (ALTER TABLE ... ADD ..., ALTER TABLE ... DROP ..., UPDATE ...). Celá operace se skládá ze t?í následujících krok?:

1. P?idáme nový sloupec s po?adovaným jménem a datovým typem shodným s p?vodním sloupcem. P?.: ALTER TABLE zamestnanec ADD (Prac_funkce char(20));

2. Zkopírujeme hodnoty v?echny ?ádk? v p?vodním sloupci do nového. P?.: UPDATE zamestnanec SET Prac_funkce=Funkce;

3. Zru?íme p?vodní sloupec. P?.: ALTER TABLE zamestnanec DROP Funkce;

Spou?t?ní SQL script?

Script je posloupnost p?íkaz? ulo?ená nej?ast?ji v textovém souboru. SQL script je tedy logicky posloupnost SQL p?íkaz? ulo?ená v textovém souboru. Nu a pokud mluvím o spou?t?ní SQL script?, tak v??te, ?e se jedná o provedení v?ech SQL p?íkaz? ulo?ených v n?jakém takovém scriptovém souboru n?jakým databázovým serverem (- v na?em p?ípad? MySQL).

Celou zále?itost si nyní uká?eme na malém "p?ejmenovávacím p?íkladu". Nejprve si v?ak v?ichni do své tabulky "zamestnanec" p?idejte nový sloupec s názvem: "cislo_oddeleni" (ALTER TABLE zamestnanec ADD (cislo_oddeleni integer);).

Dále je nutné vytvo?it "scriptový" soubor (- m??ete nap?. vyu?ít Windows aplikaci "Poznámkový blok" nebo "Notepad" v anglické verzi Windows) a zapsat do tohoto souboru jednotlivé SQL p?íkazy v takovém po?adí, v jakém se mají provád?t!

ALTER TABLE zamestnanec ADD (id_oddeleni integer);
UPDATE zamestnanec SET id_oddeleni=cislo_oddeleni;
ALTER TABLE zamestnanec DROP cislo_oddeleni;

Vý?e vytvo?ený scriptový soubor ulo?te jako "scritp.txt" do lehce p?ístupného osmi znakového adresá?e (nap?.: C:\Temp) a spuste aplikaci "P?íkazový ?ádek" (Start -> Programy -> P?íslu?enství), ?i-li DOS program "C:\WINDOWS\COMMAND.COM".

Nyní ji? jen sta?í vý?e vytvo?ený scriptový soubor spustit prost?ednictvím databázového serveru MySQL dle následujícího schématu: mysql.exe_soubor_se_svou_cestou jméno_databáze < scriptový_soubor_se_svou_cestou a v?e je hotovo!

P?íklad: C:\mysql\bin\mysql.exe test < C:\Temp\script.txt

P?eji p?íjemné scriptování ...




Copyright supersvet.cz, 1998-2005