Práce s tabulkami je jednou z velmi duležitých věcí, proto je nutné, abyste vše pořádně pochopili.
Tabulka se vytváří v právě aktuální databázi. Maximální délka názvu tabulky a sloupců je 65 znaků.
CREATE TABLE jmeno_tabulky (nazev_sloupce datovy_typ, dalsi_vlastnosti);
CREATE TABLE `vyrobek` (
`id` INT( 255 ) NOT NULL AUTO_INCREMENT ,
`jmeno` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_czech_ci NOT NULL ,
`popis` VARCHAR( 255 ) CHARACTER SET ucs2 COLLATE utf8_czech_ci NULL ,
`vyrobce` VARCHAR( 255 ) CHARACTER SET ucs2 COLLATE utf8_czech_ci NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM
DROP TABLE jmeno_tabulky;
Takto vytvořená tabulka po ukončení spojení s databází zanikne.
CREATE TEMPORARY TABLE jmeno_tabulky (nazev_sloupce datovy_typ, dalsi_vlastnosti);
Vypíše informace o tabulce.
DESCRIBE jmeno_tabulky; SHOW COLUMNS FROM jmeno_tabulky;
Aktualizace v tabulce probíhají nasledujícím způsobem:
ALTER TABLE nazev_tabulky prikaz1, prikaz2, ...;
Přiklad aktualizuje sloupce dodavatel, prodejna a jmeno u záznamu s id rovnajícím se 1
UPDATE `jmeno_tabulky` SET `dodavatel`= 'dodavatel1', `prodejna`= '$prodejna', `jmeno` = '$jmeno' WHERE `produkty`.`id` ='1' LIMIT 1
ALTER TABLE ADD jmeno_sloupce datovy_typ; nebo ALTER TABLE ADD COLUMN jmeno_sloupce datovy_typ;
Sloupec bude přidán na začátek tabulky
Sloupec bude přidán za sloupec, který je definovaný za AFTER
ALTER TABLE ADD DROP jmeno_sloupce; nebo ALTER TABLE DROP COLUMN jmeno_sloupce datovy_typ;
ALTER TABLE RENAME nove_jmeno_tabulky;
ALTER TABLE CHANGE jmeno_sloupce nove_jmeno_sloupce nove_paramatery;
ALTER TABLE MODIFY jmeno_sloupce nove_parametry;
Příkaz zamkne tabulku buď pro čtení(READ), nebo pro zápis (WRITE). Pokud i přesto chcete zapsat nebo přečist data z tabulky, je potřeba tyto dotazy vložit mezi LOCK a UNLOCK. Dotazy vně nebudou mít přistup k tabulce.
LOCK TABLES jmeno_tabulky READ, jmeno_tabulky WRITE;
UNLOCK odemkne tabulku
UNLOCK TABLES;
Všechny dotazy, které jsou umístěny mezi příkazy BEGIN a COMMIT se vykonají, pokud nedojde k přerušení spojení s databází a to až do vykonání příkazu COMMIT.
BEGIN; dotaz; dotaz; dotaz; dotaz; ... COMMIT;
Příkaz počká, dokud se nedokončí předchozí dotazy a až poté vypíše obsah tabulky.
SELECT co_se_bude_nacitat FROM odkud_se_bude_nacitat LOCK IN SHARE MODE;