Učíme se MySQL - příkazy

MySQL, v současné době asi nejrozšířenější databázový systém na webu. Jeho ovládání není vůbec složité. Provádí se pomocí jednoduchých příkazů. Pojďme si je ukázat.

Všechny příkazy si budeme pro přehlednost ukazovat na testovací tabulce. Tabulka bude představovat seznam knížek jedné knihovny. Její struktura vypadá takto:

knihy
Sloupec Datový typ
id INT
autor VARCHAR(100)
titul VARCHAR(100)
zanr VARCHAR(20)
rezervovano TINYINT(1)

Příkazy pro výběr

Základní příkaz pro výběr je SELECT. Použije se v každém dotazu ve kterém získáváme údaje z databáze.

Struktura příkazu

SELECT [co chceme vybrat] FROM [z jaké tabulky] [doplňující příkazy]

V každém sql dotazu je vždy na začátku slovo SELECT, za ním následuje sloupec nebo sloupce, které chceme zobrazit. Pokud chceme zobrazit všechny sloupce z tabulky a ne jenom některé stačí místo názvu sloupců vložit znak *. Tento způsob se moc nedoporučje, protože se snadno ztratí kontrola o tom se kterými sloupci zrovna pracujeme a se kterými ne.

Další část dotazu je výběr tabulky, te které se budou čerpat data. To má na starosti příkat FROM a název tabulky. Tabulek může být i více. Jednotlivé tabulky se oddělují se čárkou.

Jako poslední jsou nepovinné, doplňující příkazy, které ale většinou bývají nejsložitější částí dotazu. Tyto příkazy se dají použít i u jiných typů dotazů než pro výběr.

 

První z nich je příkaz WHERE, jeho úkol je zřejmý. Omezuje vybrané záznamy podle určitých podmínek. Podmínek může být nespočet. Nějaká hodnota se má rovnat druhé, musí být větší nebo menší atd. Podmínky se také dají spojovat pomocí znaků: && (AND) - a zároveň (musí být splněny všechny podmínky) a || (OR) - nebo (stačí když je splněna pouze 1 z podmínek).

Dejme si ale pro lepší pochopení příklad ze života. Jsme v internetovém obchodě, nakupujeme dárky na Vánoce a nemáte  zrovna moc peněz, omezíme si tedy nabídku zboží pouze na ty výrobky, na které máme peněz dost a ostatní ani nevidíme. Tak právě toto omezení dělá příkaz WHERE.

 

Další doplňující příkaz je ORDER.  Má na starosti řazení sloupců podle určitých hodnot. Syntaxe je taková: ORDER BY [název sloupce podle kterého se budou data řadit] ASC/DESC.

ASC = řazení od nejmenší hodnoty (vzestupně)

DESC = řazení od největší hodnoty (sestupně)

 

Po příkazu ORDER většinou následuje LIMIT - obezení počtu zobrazených záznamů a to ve tvaru LIMIT [od jakého čísla se má počítat], [kolik se má zorazit záznamů], tento příkaz najde největší využití u stránkování

 

Poslední z dnes použitých doplňujících příkazů je GROUP. Má za úkol seskupovat záznamy se stejnou hodnotou. Syntaxe je stejná jako u příkazu ORDER. GROUP BY [sloupec ve kterém se budou seskupovat data].

 

Stručný přehled doplňujících příkazů

WHERE - omezení výběru podle hodnot určitých polí

LIMIT - omezení počtu vybraných záznamů ;

ORDER BY - seřazení záznamů ; DESC (sestupně), ASC (vzestupně)

GROUP BY - seskupení záznamů

 

Příklady

SELECT * FROM knihy

// Výběr všech záznamů z tabulky knihy.

 

SELECT autor,titul FROM knihy WHERE zanr='Detektivky'

// zobrazí autora a titul knih, které mají přiřazený žánr Detektivky

 

SELECT count(*) FROM knihy WHERE autor='Agata Christie'

// Zjištění počtu knih od Agaty Christie. Výstupem tohoto dotazu je pouze číslo, nikoli záznamy.

 

SELECT * FROM knihy ORDER BY id DESC LIMIT 10

// 10 nejnovějších knih

 

Ukládání & editace

Ukládání do databáze obstarává příkaz INSERT .

Syntaxe

INSERT INTO [tabulka] ([výpis sloupců tabulky]) VALUES ([data, která se mají do db uložit]);

 

Výpis sloupců tabulky není povinný. Pokud ho ale vynecháme musíme zadat ukládaná data přesně v takovém pořadí, v jakém jsou sloupce v tabulce. Vše asi nejlíp pochopíte na následujících příkladech:

INSERT INTO uzivatele (jmeno,prijmeni) VALUES('Pepa', 'Novak');

// uloží do tabulky uzivatele jméno Pepa Novák

 

INSERT INTO knihy VALUES('', 'J.R.R. Tolkien','Pan prstenu','Dobrodruzne','');

//nová knížka v databázi knihovny. Jelikož jsme vynechali názvy sloupců, musíme za sloupce id a rezervovano dosadit prázdnou hodnotu ''

 

Editace záznamů

Editace se provádí příkazem UPDATE a to ve tvaru:

UPDATE [tabulka] SET sloupec='hodnota' WHERE [podmínka]

Sloupec se nemusí upravovat pouze jeden, může jich být i několik, stačí je od sebe oddělit čákrou.

UPDATE tabulka SET sloupec_1='hodnota_1', sloupec_2='hodnota_2', sloupec_3='hodnota_3'...  WHERE podminka

Podmínka se nejčastěji určuje pomocí příkazu WHERE, který je podrobně popsán o pár řádek výš.

 

Mazání záznamů

Data z db vymažeme příkazem DELETE. Jedná se asi o nejjednodušší příkaz v MySQL. Jeho syntaxe je následující:

DELETE FROM [tabulka] WHERE [podmínka]

K tomuto příkazu vám důrazně doporučuji, abyste NIKDY NEZAPOMÍNALI NA PODMÍNKU WHERE. Pokud ji totiž vynecháte, dojde ke smazání VŠECH dat z tabulky a snadno tak můžete přijít o cenné informace.

 

Práce s tabulkami

 

Vytvoření databáze

CREATE DATABASE [název_db] DEFAULT CHARACTER SET [jazyková sada] COLLATE [jazyková sada]

Příkazy DEFAULT CHARACTER SET a COLLATE určují výchozí kódování databáze. Nejsou povinné.

Příklad:

CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

// tabulka test; znaková sada uft8

 

Vytvoření tabulky

CREATE TABLE [název_tabulky] (
sloupec_1 datový typ sloupce,
sloupec_1 datový typ
sloupce,
....
);

Příklad:

CREATE TABLE uzivatele(
id INT auto_increment primary key,
jmeno VARCHAR(30),
prijmeni VARCHAR(30)
);

// tabulka pro evidenci uživatelů.

Pro zjednodušení bude tabulka obsahovat pouze 3 sloupce. ID uživatele, jméno a příjmení.

id má datový typ INT - číslo. Auto_increment znamená, že s každým novým záznamem se id změtší o 1. Primary key zajišťuje, že nikdy nebudou dvě id stejná. .

Varchar je datový typ pro text s variabilní délkou (nemá pevně daný počet znaků)  o maximální délce 30 znaků. Znamená to, že text v daném sloupci může mít 0-30 znaků.

 

Oprava tabulek

Jakékoli změny tabulek se dělají pomocí příkazu ALTER.

ALTER TABLE uzivatele ADD adresa VARCHAR(100);

// přidání sloupce "adresa" do tabulky "uzivatele"

 

 ALTER TABLE `uzivatele` CHANGE `adresa` `adress` VARCHAR(100) 

// změní se sloupec s adresa na adress

 

 ALTER TABLE `uzivatele` DROP `adress` 

// smazání sloupce adress

 

Vyprázdnění & mazání tabulek

Poslední věc, kterou si dnes ukážeme je vyprázdnění a smazání celé tabulky. Struktura příkazu je velmi jednoduchá.

TRUNCATE TABLE tabulka

// vyprázdnění tabulky

 

DROP TABLE tabulka

// smazání tabulky

Upozornění: Tyto příkazy jsou nevratné, proto si při jakékoli práci s nimi dávejte dobrý pozor na to, jestli to, co se chystáte smazat opravdu už nepotřebujete. Pokud jednou smažete nebo vyprázdníte tabulku data již nejdou obnovit.


Závěr

To by bylo, k MySQL příkazům zatím vše. Samotřejmě příkazů existuje daleko více, než je zde uvedeno, ale z důvodu jednoduchosti a přehlednosti jsou zde uváděny pouze základní, nějčastěji používané příkazy.

Doufám že s pomocí tohoto článku už MySQL nebude představovat žádný problém a že vás zaujme natolik, abyste se také pustili do tvorby svých vlastních webových aplikací založených na databázi MySQL.

Kdybyste měli jakékoli dotazy nebo připomínky, piště prosím do komentářů.



 

Statistiky
Autor  Autor: .:|IK|:.
Další články od tohoto autora >>>
  Přidáno: 2008-12-27 07:04:05   Přečteno: 1276x
Hodnocení  Hodnocení: 4/10
Hodnotit článek mohou pouze přihlášení uživatelé
  Celkem hodnotilo 1 lidí
Komentářů  Komentářů: 1023 Číst/napsat komentář

Číst všechny komentáře >>> Komentáře (posledních 10)
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      fSFVxIlNctCnv   2010-09-05 03:30:17

online physicians cialis =-OOO
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      voduzZztwZJMaFEd   03.09.2010 12:26:33

viagra bbzug
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      DwUUnHwbMuKhy   03.09.2010 12:25:19

cialis =-PPP
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      yQZhzesnKUUEOOIgx   03.09.2010 12:08:45

viagra without a prescription izxal
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      RgdtEZvoIEGLtCprFO   03.09.2010 11:56:50

car insurance =DD insurance auto auctions 600925 slots fge
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      UaWOopGpaJHrwJQ   03.09.2010 06:55:15

cheap home insurance 58959 auto insurance quotes 8]] car insurance quotes =-]
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      VbijzIGJ   03.09.2010 04:49:06

buy valium online cheap 16849 Prednisone 848676 phentermine 803632 levitra delivered :[[ cialis for sale 223
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      HigvldlAixoi   03.09.2010 02:53:19

buy propecia from usa sbo levitra buy 64429 generic viagra levitra and tadalafil =OOO cheap cialis sale online yaiq buy dreampharm from tramadol znqog
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      IblHSQniyWSZt   03.09.2010 02:36:04

propecia %-]] Accutane :] cialis aku Phentermine =-(
Odkaz na tento příspěvek  Odkaz na tento příspěvek   Citovat  Citovat      QkgLJXQBuLEw   03.09.2010 02:18:15

buy valium iv online 814 prednisone online rpjwu phentermine hoodia =-OO levitra bavjfk