Hlavná stránka · Diskusné Fórum · Pracovné príležitosti · Zoznam

 Main Menu
o Hlavná stránka
o Zoznam tém
o Zoznam
o Odporučte nás
o Užívatelia
o Vaše konto
o Pridaj článok
o Štatistiky
o Top 10

 Reklama


 Developer Zone's
o Internet
o Tools
o Linux
o CGI Zone
o ASP Zone
o ASP.net
o PHP Zone
o CSS Zone
o JavaScript
o MySQL
o WAP / WML
o WML / WMLScript
o XML / XHTML
o Tipy a triky
o Best of web
o WebServers
o WebDesign
o Grafika

 Servis
o Vyhľadávanie
o Fórum
o Workoffice
o Zoznam článkov
o Reklama
o Pridaj článok
o Pridaj novinku

Napíšte nám
Homepage Do favoritov

 LinkExpres
Interval.cz · Pc.sk
Builder.cz · Mobilmania
PCSvet.cz · Asp.cz
Webdnes · Živě.sk
Zoznam.sk · Atlas.sk
Inzine.sk · PHP.sk
Agent.sk · Lupa.cz
Code.box.sk · Root.cz
Pixel32 · Grafika.cz

 forum.developer.sk
o Fórum ::
o Markup languages
o Scriptové jazyky
o CGI
o PHP/MySQL
o Perl
o Grafika
o Webservery
o HTML Editory
o Browsery
o Bookmarx
o ASP
o Vytvor tému ::

 Pracovné príležitosti
o Ponúkate prácu?
o Hľadáte prácu?

 Autori developer.sk
o Martin Nemeček
o Sväťo Straka
o Jany Masaryk
o Jozef Murín

 
MySQL [ 27. March 2001] - Martin_Nemecek
MySQL časť pätnásta - použitie ALTER TABLE
ALTER TABLE nám umožňuje meniť štruktúru už existujúcej tabuľky. Okrem toho pomocou tohto príkazu môžeme pridávať, mazať jednotlivé stĺpce, vytvárať a mazať indexy, meniť typy a vlastnosti existujúcich stĺpcov (položiek). Je dovolené pomocou tohto príkazu tiež premenovávať položky v tabuľkách a samozrejme i celé tabuľky.



Najskôr si ukážme ako vypadá syntax príkazu ALTER TABLE.

ALTER [IGNORE] TABLE tbl_name alter_specifikacia [, alter_spec ...]

alter_specifikacia:
         ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
alebo    ADD [COLUMN] (create_definition, create_definition,...)
alebo    ADD INDEX [index_name] (index_col_name,...)
alebo    ADD PRIMARY KEY (index_col_name,...)
alebo    ADD UNIQUE [index_name] (index_col_name,...)
alebo    ADD FULLTEXT [index_name] (index_col_name,...)
alebo	 ADD [CONSTRAINT symbol] FOREIGN KEY index_name (index_col_name,...)
            [reference_definition]
alebo    ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
alebo    CHANGE [COLUMN] old_col_name create_definition
alebo    MODIFY [COLUMN] create_definition
alebo    DROP [COLUMN] col_name
alebo    DROP PRIMARY KEY
alebo    DROP INDEX index_name
alebo    RENAME [TO] new_tbl_name
alebo    ORDER BY col
alebo    table_options

Ukážme si teraz na reálnych príkladoch použitie ALTER TABLE a začnime s vytvorením jednoduchej tabuľky, na ktorej si ukážeme využitie tohto príkazu.

mysql> CREATE TABLE table_A (meno CHAR(10), vek INTEGER);
Query OK, 0 rows affected (0.04 sec)

Tabuľka bude potom vypadať nasledovne:

mysql> DESCRIBE table_A;
+-------+---------+------+-----+---------+-----+---------------------+
| Field | Type    | Null | Key | Default |Extra| Privileges          |
+-------+---------+------+-----+---------+-----+---------------------+
| meno  | char(10)| YES  |     | NULL    |     | select,insert,update|
| vek   | int(11) | YES  |     | NULL    |     | select,insert,update|
+-------+---------+------+-----+---------+-----+---------------------+
2 rows in set (0.00 sec)

V prvom rade si skúsme premenovať tabuľku table_A na tabuľku table_B:

mysql> ALTER TABLE table_A RENAME table_B;

Teraz sa skúsme pohrať priamo s položkami tabuľky. Stľpec "meno" premenujeme na "prve_meno" a zmenime jeho typ z CHAR(10) na CHAR(22). Okrem toho zmenime typ položky "vek" na TINYINT NOT NULL bez zmeny názvu položky.

mysql> ALTER TABLE table_B MODIFY vek TINYINT NOT NULL, 
CHANGE meno prve_meno CHAR(22);
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

Skúsme si teraz pridať do našej tabuľky "table_B" jeden nový stĹpec s názvom "datum_nar" a typom DATE.

mysql> ALTER TABLE table_B ADD datum_nar DATE;
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

Pridanie príznaku "PRIMARY KEY" na položku "prve_meno" urobime nasledovne (pred tým musíme samozrejme zmeniť typ položky na NOT NULL, pretože inak jej nepridáme príznak primárného kľúča):

mysql> ALTER TABLE table_B MODIFY prve_meno CHAR(22) NOT NULL; Query OK, 1 row affected (0.03 sec) Records: 1 Duplicates: 0 Warnings: 0

A teraz už môžeme pridať príznak primárneho kľúča na položku "prve_meno":

mysql> ALTER TABLE table_B ADD PRIMARY KEY (prve_meno);

Na záver si skúsme pomocou ALTER TABLE odobrať z tabuľky "table_B" stĺpec "datum_nar":

mysql> ALTER TABLE table_B DROP COLUMN datum_nar;

To by sme teda mali, naša výsledná tabuľka má len málo spoločné s našou pôvodnou tabuľkou, ktorú sme si vytvorili na začiatku tohto článku :-)

mysql> DESCRIBE table_B;
+-----------+-----------+----+---+--------+------+---------------------+
| Field     | Type      |Null|Key| Default|Extra | Privileges          |
+-----------+-----------+----+---+--------+------+---------------------+
| prve_meno | char(22)  |    |PRI|        |      | select,insert,update|
| vek       | tinyint(4)|    |   | 0      |      | select,insert,update|
+-----------+-----------+----+---+--------+------+---------------------+
2 rows in set (0.00 sec)


 
 Príslušné odkazy k téme
Viac o téme: MySQL | Iné články od: Admin | Pošli komentár | Stránka vhodná na tlač width=15 height=11  Pošli tento článok priateľovi, známemu width=15 height=11


Najčítanejšie články MySQL:
MySQL časť štrnásta - najčastejšie kladené otázky

Ďalšie články v rubrike MySQL:

 

"MySQL časť pätnásta - použitie ALTER TABLE" | Login / vytvor konto | 0 Komentárov
Prah
Za obsah komentárov je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.



Autorské práva:   ©1999 - 2001 Developer Zone [developer@developer.sk]

Všetky články sú vlastníctvom autorov Developer Zone. Všetky práva vyhradené. Stránky Developer.sk sú vytvorené pomocou PHP-Nuke.
Odkazy na nové články je možné preberať pomocou:Backend.php.