Obecně
SQL je jazyk deklarativní, tzn. říkáme mu co má být výsledkem a již nás nezajímá, jak tohoto
výsledku počítač dosáhne (narozdíl od imperativních (Pascal, Java, apod.), kde musíme
popsat krok po kroku co má udělat). Používá se pro práci s relačními databázemi.
Vznik
V 70. letech 20. století probíhal ve firmě IBM výzkum relačních databází. Pro jejich ovládání
vytvořili jazyk SEQUEL (Structured English Query Language). K vývoji se přidali i další firmy.
V r. 1979 byla uvedena na trh první relační databázová platforma Oracle Database od firmy
Relational Software (dnešní Oracle). Po vydání několika dalších byl SEQUEL přejmenován
na SQL a prosadil se jako standard (označeno jako SQL-86).
V dalších letech se jazyk vylepšoval a vznikl tak standard SQL-92 a později SQL-99, který se
používá dodnes (někdy se uvádí jen jako SQL2 a SQL3).
Příkazy
SELECT
Vybírá data z databáze.
Syntax:
SELECT sloupec1,sloupec2 FROM tabulka1 WHERE pomínka1 AND/OR podmínka2;
Ukázky:
SELECT * FROM uzivatele;
vybere všechny záznamy z tabulky uživatelé.
SELECT jmeno,prijmeni FROM uzivatele WHERE vek>18;
vybere všechny záznamy ze sloupce jméno a příjmení z tabulky uživatelé, kde věk je větší
než 18.
SELECT jmeno FROM uzivatele WHERE prijmeni=‘novák‘ AND vek<30;
vybere všechny záznamy ze sloupce jméno, kde příjmení je novák a věk menší než 30.
INSERT
Vkládá do databáze nová data
Syntax:
INSERT INTO tabulka(sloupec1,sloupec2,…) VALUES (hodnota1,hodnota2,…);
Ukázky:
INSERT INTO uzivatele(jmeno,prijmeni,vek) VALUES (‘Marek‘,‘Novotný‘,‘18‘);
vloží do tabulky uzivatele záznam.
INSERT INTO uzivatele VALUES (‘Jan‘,‘Hrubý‘);
vloží do tabulky uživatelé (se sloupci jmeno,prijmeni,vek) záznam jméno=Jan,
příjmeni=Hrubý, věk=NULL (NULL znamená prázdná hodnota).
UPDATE
Mění data v databázi.
Syntax:
UPDATE tabulka SET sloupec1 = hodnota WHERE podmínka;
Ukázky:
UPDATE uzivatel SET vek=18 WHERE jmeno=‘Jan‘ a prijmeni=‘Hrubý‘;
V tabulce uzivatel najde záznam/záznamy Jan Hrubý a upraví u něj hodnotu věk na 18.
UPDATE uzivatel SET vek=20;
Všem záznamům v tabulce uživatel změní věk na 20.
MERGE
Kombinace INSERT a UPDATE – data vloží (pokud neexistuje odpovídající klíč) nebo data
upraví (UPDATE záznamu s odpovídajícím klíčem).
DELETE
Data z databáze odstraní.
Syntax:
DELETE FROM tabulka WHERE podmínka;
Ukázky:
DELETE FROM uzivatel WHERE jmeno=‘Jan‘;
Vymaže všechny uživatele se jménem Jan.
DELETE FROM uzivatel WHERE jmeno=‘Tomáš‘ AND prijmeni=‘Horáček‘;
Vymaže všechny uživatele se jménem Tomáš a příjmením Horáček.
CREATE
Vytváření nových objektů.
Syntax:
CREATE DATABASE nazev_databaze;
Vytvoří databázi
CREATE TABLE tabulka (
sloupec1 dat. typ,
sloupec2 dat. typ,
sloupec3 dat. typ,
….);
Vytvoří tabulku.
ALTER
Změny existujících objektů.
Syntax:
ALTER TABLE tabulka DROP COLUMN sloupec;
Vymaže sloupec z tabulky.
ALTER TABLE tabulka ADD sloupec dat.typ;
Přidá sloupec do tabulky.
DROP
Odstraňování objektů.
Syntax:
DROP TABLE tabulka;
TRUNCATE
Vymazání dat v tabulkách.
Syntax:
TRUNCATE TABLE tabulka;
Komentáře
Pro jednořádkové komentáře se využívají znaky — s tím, že jakýkoli text za tímto znakem je
programem ignorován až do konce řádku.
Pro víceřádkové komentáře se používají znaky /* a */ (komentář se píše mezi ně) s tím, že
jakýkoliv text za */ se dále zpracovává.