Cleverlance SQL

Содержание

Слайд 2

Manipulace s daty

Vkládání záznamů do tabulky
Aktualizace záznamů v tabulce
Odstranění záznamu z tabulky

STRANA

Manipulace s daty Vkládání záznamů do tabulky Aktualizace záznamů v tabulce Odstranění záznamu z tabulky STRANA

Слайд 3

INSERT

Vkládání jednoho záznamu
Syntaxe:
Seznam sloupců můžeme vynechat pokud budeme vkládat hodnoty do všech

INSERT Vkládání jednoho záznamu Syntaxe: Seznam sloupců můžeme vynechat pokud budeme vkládat
sloupců, pořadí hodnot pak musí odpovídat pořadí sloupců v tabulce
Znakové a datumové proměnné musí být ohraničeny pomocí apostrofů

INSERT INTO tabulka [(sloupec [, sloupec...])]
VALUES (hodnota [, hodnota...]);

STRANA

Слайд 4

Příklad

Založení nového zaměstnance:
zamestnanec_id 123
jmeno a prijmeni Milan Hruby
pozice Cukrar
nadrizeny_id 26
oddeleni 6
zakladni plat 13000

INSERT INTO zamestnanci (zamestnanec_id, jmeno, prijmeni, pozice,

Příklad Založení nového zaměstnance: zamestnanec_id 123 jmeno a prijmeni Milan Hruby pozice
nadrizeny_id, datum_nastupu, oddeleni, zakladni_plat) VALUES (123, 'Milan', 'Hruby', 'Cukrar', 26, '06-05-2005', 6, 13000);

STRANA

Слайд 5

Vkládání hodnoty NULL

Dvě metody, jak vložit prázdnou hodnotu:
explicitní - použitím hodnoty NULL
implicitní

Vkládání hodnoty NULL Dvě metody, jak vložit prázdnou hodnotu: explicitní - použitím
- vynecháme sloupec v seznamu sloupců

INSERT INTO platy (id_zamestnance, mesic, rok, premie) VALUES (5, 12, 1982, NULL);

INSERT INTO platy (id_zamestnance, mesic, rok) VALUES (5,12, 1982);

STRANA

Слайд 6

Defaultní hodnoty

Pokud použijeme implicitní metodu pro vložení prázdné hodnoty na sloupec pro

Defaultní hodnoty Pokud použijeme implicitní metodu pro vložení prázdné hodnoty na sloupec
který je definována defaultní hodnota, pak se záznam uloží s definovanou defaultní hodnotou

STRANA

Слайд 7

Default

STRANA

Default STRANA

Слайд 8

Omezení NOT NULL

STRANA

INSERT INTO platy (id_zamestnance, mesic, rok)
VALUES (5, NULL, 1982);

Omezení NOT NULL STRANA INSERT INTO platy (id_zamestnance, mesic, rok) VALUES (5, NULL, 1982);

Слайд 9

FOREIGN KEY

Cizí klíč – FOREIGN KEY
Hodnota vkládaná do tohoto sloupce musí existovat

FOREIGN KEY Cizí klíč – FOREIGN KEY Hodnota vkládaná do tohoto sloupce
v rodičovské tabulce
Pokud sloupec není součástí primárního klíče je možné vložit hodnotu NULL (pokud na sloupci není omezení NOT NULL)

STRANA

Слайд 10

FOREIGN KEY

STRANA

INSERT INTO zamestnanci
VALUES (124, 'Pavel', 'Novacek', 'KONTROLOR', 5, '10-10-2004', 99,

FOREIGN KEY STRANA INSERT INTO zamestnanci VALUES (124, 'Pavel', 'Novacek', 'KONTROLOR', 5, '10-10-2004', 99, 31000);
31000);

Слайд 11

Příklad

Bylo založeno nové oddělení a zároveň byl přijat nový pracovník, který bude

Příklad Bylo založeno nové oddělení a zároveň byl přijat nový pracovník, který
toto oddělení vést
Založte oba dva nové záznamy
– nové oddělení, které bude mít jako managera nového pracovníka
- nového pracovníka, který bude pracovat v novém oddělení

STRANA

Слайд 12

Automatické generování identifikátorů

MS SQL
CREATE TABLE tablename (   tablename_id INT IDENTITY PRIMARY KEY, ...)

Automatické generování identifikátorů MS SQL CREATE TABLE tablename ( tablename_id INT IDENTITY

MySQL
CREATE TABLE tablename (   tablename_id INTEGER AUTO_INCREMENT PRIMARY KEY, ...)
Oracle
s využitím sekvence a triggerů

STRANA

Слайд 13

Sekvence (Oracle)

Sekvence je numerický generátor hodnot
NEXTVAL vrací příští použitelné sekvenční číslo. Jde

Sekvence (Oracle) Sekvence je numerický generátor hodnot NEXTVAL vrací příští použitelné sekvenční
o unikátní hodnotu vždy když je voláno bez ohledu na uživatele
CURRVAL obsahuje poslední sekvenční hodnotu vydanou pro aktuálního uživatele

INSERT INTO oddeleni(oddeleni_id,
oddeleni_nazev, lokalita_id)
VALUES (odd_oddid_seq.NEXTVAL,
'Support', 4);
1 row created.

STRANA

Слайд 14

Trigger (Oracle)

Trigger na generovani primarnich klicu pro zamestnance?
CREATE TABLE mytable (   mytable_id INTEGER

Trigger (Oracle) Trigger na generovani primarnich klicu pro zamestnance? CREATE TABLE mytable
PRIMARY KEY,   ... -- (other columns) );   CREATE SEQUENCE mytable_seq;   CREATE TRIGGER mytable_seq_trigger BEFORE INSERT ON mytable FOR EACH ROW BEGIN   IF (:new.mytable_id IS NULL) THEN     SELECT mytable_seq.nextval INTO :new.mytable_id     FROM DUAL;   END IF; END; /

STRANA

Слайд 15

UPDATE

Umožňuje změnit stávající data
Úprava sloupců vyjmenovaných v klauzuli SET se provede u

UPDATE Umožňuje změnit stávající data Úprava sloupců vyjmenovaných v klauzuli SET se
všech záznamů, které odpovídají podmínkám v klauzuli WHERE
Syntaxe:

UPDATE tabulka
SET sloupec=hodnota[,sloupec=hodnota,...]
[WHERE podmínka];

STRANA

Слайд 16

Příklad UPDATE

Zvyšte plat o 1000 Kč všem účetním.

UPDATE zamestnanci SET zakladni_plat =

Příklad UPDATE Zvyšte plat o 1000 Kč všem účetním. UPDATE zamestnanci SET
zakladni_plat + 1000 WHERE pozice='Ucetni';

UPDATE tabulka
SET sloupec=hodnota[,sloupec=hodnota,...]
[WHERE podmínka];

STRANA

Слайд 17

DELETE

Příkaz DELETE slouží k odstranění záznamů z tabulky
Odstraní všechny záznamy, které splňují

DELETE Příkaz DELETE slouží k odstranění záznamů z tabulky Odstraní všechny záznamy,
podmínky uvedené v klauzuli WHERE
Lze smazat pouze celý řádek ne jen hodnoty jednotlivých sloupců

DELETE [FROM] tabulka
[WHERE podmínka];

STRANA

Слайд 18

Příklad

Smažeme zaměstnance se zaměstnaneckým číslem 123, kterého jsme založili v úvodu této

Příklad Smažeme zaměstnance se zaměstnaneckým číslem 123, kterého jsme založili v úvodu
lekce

DELETE FROM zamestnanci WHERE zamestnanec_id=123;

STRANA