Staňte se programátorem: Poodhalte základy SQL

Minule jste si s námi mohli napsat jednoduchý diář, který ukládal kontakty do XML. Dnes vás provedeme základy databázového jazyka SQL, který příště propojíme se správcem kontaktů.

V dnešním díle budeme pokračovat s tvorbou vlastního adresáře spravující naše kontakty. Data adresáře budeme ukládat do jednoduché Access databáze a pro veškerou práci s touto databází ( tedy ukládání, načítání, mazání a upravování dat) budeme používat jazyk SQL, který je mezi databázovými systémy nejrozšířenější. V dnešním díle si tedy ukážeme základní čtyři SQL příkazy pro manipulaci s databází a v příštím díle si ukážeme jak volat SQL příkazy nad databází prostřednictvím jazyka C#.

Co na SQL říká česká Wikipedie?

SQL standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích. SQL je zkratka anglických slov Structured Query Language. Jeho počátky sahají až do sedmdesátých let minulého století, kdy v IBM probíhal výzkum relačních databází. Bylo třeba vytvořit sadu příkazů pro ovládání podobných databází a tak vznikl jazyk SEQUEL (Structured English Query Language). Cílem byl ovlastně vytvořit jazyk, ve kterém by se příkazy tvořily syntakticky co nejblíže tomu přirozenému, angličtině. K vývoji se později přidaly firmy Relational Software (Oracle), Progres, Informix a SyBase. Společně používaná varianta SEQUELu byla později přejmenovaná na SQL do dnešních dnů se dočkala několika implementací a standardů počínaje oblíbeným webovým MySQL serverem a konče třeba Microsoft SQL 2008.

Více si můžete o SQL přečíst zde


Klepněte pro větší obrázek

Struktura složitější relační databáze může vypadat podobně jako tato,
jejiž tabulky a sloupce jsou vzájemně bohatě propojené

Základními příkazy SQL jazyka je SELECT pro výběr, INSERT pro vkládání, UPDATE pro aktualizování a DELETE pro mazání informací v databázi. Tady jej jejich stručný popis a ukázky použití.

Příkaz SELECT

Příkaz SELECT je jediným SQL příkazem, který slouží k výběru dat z databáze a nijak je nepozměňuje. Syntaxe tohoto příkazu vypadá takto:

SELECT sloupce
FROM tabulky
WHERE podmínka
ORDER BY třídící kritérium [ASC | DESC]
LIMIT max. počet řádků

Významy klíčových slov:

  • SELECT – příkaz určený k výběru dat z tabulek. Jeho nejjednodušší podoba vypadá takto:

    SELECT * FROM tabulka  // Vybere všechny hodnoty všech sloupců tabulky
    SELECT x,y FROM tabulka // Vybere všechny hodnoty uložené v řádcích x a y

  • WHERE – vybere z tabulek pouze ty data, která v jednom či více sloupců obsahují konkrétní hodnoty, například následující příkaz vybere z tabulky Zaměstnanci křestní jména všech osob, jejichž příjmení je Novák:

    SELECT jmeno FROM Zaměstnanci WHERE Prijmeni = 'Novák'

  • ORDER BY – sloupec, dle jehož hodnot budou data setříděna. Pro vzestupné třídění dosadíme klíčové slovo ASC, pro sestupné třídění pak DESC. Například následující dotaz vybere vybere z tabulky Zaměstnanci příjmení všech zaměstnanců seřazené vzestupně dle jejich věku:

    SELECT Prijmeni FROM Zaměstnanci ORDER BY Vek ASC

  • LIMIT – určuje maximální počet prvních N řádků jež budou z tabulky vybrány. Například následující příkaz vybere z tabulky Zaměstnanci prvních pět zaměstnanci seřazeno dle jejich věku:

    SELECT Prijmeni FROM Zaměstnanci ORDER BY Vek ASC LIMIT 5

Příkaz INSERT

Příkaz INSERT slouží ke vkládání nových hodnot do databáze. Syntaxe tohoto příkazu je velmi jednoduchá a vypadá takto:

INSERT INTO tabulka (sloupec1, sloupec2, sloupec3..., sloupecN)
VALUES (hodnota1, hodnota2,... hodnotaN)

Za názvem tabulky musí být uveden výčet sloupců do kterých mají být nové hodnoty vloženy, ty jsou umístěny za klíčovým slovem VALUES a musí být ve stejném pořadí jako výčet sloupců. Například:

INSERT INTO Zaměstnanci (Jmeno, Prijmeni, Vek) VALUES ('Jan', 'Novák', 26)

Chceme-li jedním příkazem INSERT vložit více než jeden řádek, oddělíme jednotlivé hodnoty čárkou:

INSERT INTO Zaměstnanci (Jmeno, Prijmeni, Vek)
VALUES ('Jan', 'Novák', 26), ('Jana', 'Nováková', 46), ('Pavel', 'Janek', 33)

Příkaz DELETE

Příkaz DELETE slouží k mazání řádků dle stanovených kritérií. Jeho syntaxe vypadá takto:

DELETE FROM tabulka WHERE podmínka

Například následující příkaz smaže z tabulky „Zaměstnanci“ všechny zaměstnance jejichž příjmení je „Pavlásek“:

DELETE FROM Zaměstnanci WHERE Prijmeni = 'Pavlásek'

Příkaz UPDATE

Příkaz UPDATE slouží k editaci již existujících dat v databázi. Chceme-li nastavit všechny hodnoty určitého sloupce na konkrétní hodnotu, použijeme příkaz UPDATE v této formě:

UPDATE tabulka SET název sloupce = hodnota

Například následující příkaz nastaví všem zaměstnancům plat na 20 000 korun.

UPDATE Zamestnanci SET Plat = 20000

Pro přesné určení řádku, jež má být pozměněn nám poslouží klauzule WHERE představující podmínku, kterou určité řádky musí splňovat, aby mohly být pozměněny. Syntaxe příkazu UPDATE bude tedy vypadat takto:

UPDATE tabulky SET název sloupce WHERE podmínka

Například následující příkaz nastaví plat 20 000 korun pouze těm zaměstnancům, kteří mají příjmení Mareš:

UPDATE Zaměstnanci SET Plat = 20000 WHERE Prijmeni = 'Mareš'

A jak použít SQL v Microsoft .NET?

V dnešním díle jsme si ukázali, čtyři nejčastěji používané SQL příkazy pro práci s databází, jejichž pokročilá podoba samozřejmě může vypadat mnohem košatěji včetně propojovacího článku JOIN. Pro náš projekt nám však tyto základy budou vyhovovat.

V příštím díle atabázový jazyk SQL použijeme už v konrétním případě při tvorbě našeho adresáře v jazyce C#. Ukážeme si rozdíly mezi připojenými a odpojenými řešeními, druhy připojovacích řetězců k jednotlivým druhům databází a hlavně pak práci s třídami, které najdete ve jmenném prostoru System.Data a které jsou určené pro práci s databází.

Pokud si chcete vyzkoušet funkční adresář, podívejte se na předchozí článek, který se věnoval tvorbě jednoduchého adresáře pomocí jednoduchého strukturovaného úložiště v XML souboru.

Témata článku: Programování, Select, From, Update, Plat, Order, Syntax, English

10 komentářů

Nejnovější komentáře

  • Mi.Chal 22. 10. 2008 20:29:06
    Mě šlo o to, že si nenapsal, že ten limit funguje taky jenom někde -...
  • randomofamber 22. 10. 2008 1:27:44
    Jak nevylepšil. Upozornil jsem na to, že existuje variabilita a doporučil...
  • Mi.Chal 20. 10. 2008 22:34:51
    Řekl bych, že si to taky moc nevylepšil, TOP funguje taky jenom někde...
Určitě si přečtěte

Kde nejlevněji uložit 1 TB dat: Srovnali jsme aktuální ceny cloudových úložišť

Kde nejlevněji uložit 1 TB dat: Srovnali jsme aktuální ceny cloudových úložišť

** Srovnali jsme známá cloudová úložiště podle toho, kolik měsíčně zaplatíte za 1TB ** Ceny se pohybují od dvou stovek až po tisíc korun ** Google umožní uložit až 30 TB dat

18.  3.  2017 | Stanislav Janů | 115

Špičkoví hackeři útočili na prohlížeče. Chrome odolal, ale Edge je tragédie

Špičkoví hackeři útočili na prohlížeče. Chrome odolal, ale Edge je tragédie

** Do Vancouveru se sjeli hackeři ** Soutěžili v útocích na prohlížeče ** Chrome odolal, ale Edge to projel na celé čáře

22.  3.  2017 | Jakub Čížek | 78

Pojďme programovat elektroniku: Meteostanice, která bude díky Sigfoxu posílat stav počasí třeba z vrcholu Sněžky

Pojďme programovat elektroniku: Meteostanice, která bude díky Sigfoxu posílat stav počasí třeba z vrcholu Sněžky

** Příští roky budou ve znamení internetu věcí ** Podívali jsme se podrobně na síť Sigfox ** Takhle s ní komunikují krabičky z celé Evropy

19.  3.  2017 | Jakub Čížek | 18

Obří Mechroboti jsou realitou, měří čtyři metry a mají hmotnost přes 1,5 tuny

Obří Mechroboti jsou realitou, měří čtyři metry a mají hmotnost přes 1,5 tuny

** Jihokorejská společnost Hankook Mirae Technology vyrábí obří Mechroboty ** Jsou určené pro ovládání člověkem uvnitř ** V prodeji se objeví koncem tohoto roku za 200 milionů korun

20.  3.  2017 | Karel Javůrek | 18


Aktuální číslo časopisu Computer

Supertéma o počítačové bezpečnosti

AMD Ryzen přichází

Velké testy kinoprojektorů a levných sluchátek

Příslušenství do USB-C