Difference between revisions of "Prostorové databáze - cvičení"
m (→Dotazování nad jednou tabulkou) |
m (→Dotazování nad jednou tabulkou) |
||
Line 38: | Line 38: | ||
SELECT FIRST_NAME, LAST_NAME FROM employees; | SELECT FIRST_NAME, LAST_NAME FROM employees; | ||
− | V případě, že bychom chtěli pouze seznam příjmení všech zaměstanců bez opakování stejných jmen, použijeme klíčové slovo DISTINCT, které eliminuje výstup - bude bez opakování stejných řádků: | + | V případě, že bychom chtěli pouze seznam příjmení všech zaměstanců bez opakování stejných jmen, použijeme klíčové slovo ''DISTINCT'', které eliminuje výstup - bude bez opakování stejných řádků: |
SELECT DISTINCT LAST_NAME FROM employees; | SELECT DISTINCT LAST_NAME FROM employees; | ||
− | Budeme-li chtít ve výsledku změnit číselné hodnoty nějakého sloupce, lze je přímo dopočítat a na výstupu sloupec také přejmenovat pomocí tzv. alias, za slovem AS: | + | Budeme-li chtít ve výsledku změnit číselné hodnoty nějakého sloupce, lze je přímo dopočítat a na výstupu sloupec také přejmenovat pomocí tzv. ''alias'', za slovem ''AS'': |
SELECT LAST_NAME, SALARY + 100 AS "Vyplata s odmenou" FROM employees; | SELECT LAST_NAME, SALARY + 100 AS "Vyplata s odmenou" FROM employees; | ||
− | Pro výběr záznamů z tabulky, které vyhovují určité podmínce, použijeme operaci selekce. Zapisujeme ji za klíčové slovo WHERE a podle datového typu atributu volíme zápis podmínky. Pro jmenný seznam zaměstnanců z oddělení 80 pak příkaz vypadá následně: | + | Pro výběr záznamů z tabulky, které vyhovují určité podmínce, použijeme operaci ''selekce''. Zapisujeme ji za klíčové slovo WHERE a podle datového typu atributu volíme zápis podmínky. Pro jmenný seznam zaměstnanců z oddělení 80 pak příkaz vypadá následně: |
SELECT FIRST_NAME, LAST_NAME FROM employees WHERE DEPARTMENT_ID=80; | SELECT FIRST_NAME, LAST_NAME FROM employees WHERE DEPARTMENT_ID=80; | ||
− | V podmínce je možno použít operátory: | + | V podmínce je možno použít ''operátory'': |
<table> | <table> | ||
Line 73: | Line 73: | ||
</table> | </table> | ||
− | Například vyhledání všech zaměstanců, jejichž jméno začíná na K využije operátor LIKE pro porovnání s maskou řetěyce a navíc zástupný znak % za jakékoli jiné znaky (i žádný znak). | + | Například vyhledání všech zaměstanců, jejichž jméno začíná na K využije operátor ''LIKE'' pro porovnání s maskou řetěyce a navíc zástupný znak % za jakékoli jiné znaky (i žádný znak). |
SELECT LAST_NAME AS "Zamestnanci s příjemním na 'K'" FROM employees WHERE last_name LIKE 'K%' ; | SELECT LAST_NAME AS "Zamestnanci s příjemním na 'K'" FROM employees WHERE last_name LIKE 'K%' ; | ||
− | Pro vyhledání zaměstnanců, kteří nejsou přiděleni k žádnému oddělení, použijeme podmínku, kde zjistíme hodnotu NULL u atributu DEPARTMENT_ID. | + | Pro vyhledání zaměstnanců, kteří nejsou přiděleni k žádnému oddělení, použijeme podmínku, kde zjistíme hodnotu ''NULL'' u atributu DEPARTMENT_ID. |
SELECT FIRST_NAME, LAST_NAME FROM employees WHERE DEPARTMENT_ID IS NULL; | SELECT FIRST_NAME, LAST_NAME FROM employees WHERE DEPARTMENT_ID IS NULL; |
Revision as of 17:31, 30 July 2014
Contents
- 1 Obsah a cíle cvičení z předmětu Prostorové databáze
- 2 Požadavky na zápočet
- 3 Cvičení 1 - Instalace prostorové databáze a vizualizačního nástroje
- 4 Cvičení 2 - Přístupy k databázi, prostředí klienta
- 5 Cvičení 3 - Opakování SQL
- 6 Cvičení 4 - Opakování SQL
- 7 Cvičení 5 - Principy práce s prostorovými daty
- 8 Cvičení 5 - Prostorové dotazy
- 9 Cvičení 6 - Import dat s prostorovým kontextem
- 10 Cvičení 7 - Vizualizace dat s prostorovým kontextem
- 11 Cvičení 8 -
- 12 Cvičení 9 -
- 13 Cvičení 10 - Zpracování vlastního projektu
Obsah a cíle cvičení z předmětu Prostorové databáze
Požadavky na zápočet
Zápočet (33 bodů) je rozdělen následujícím způsobem:
- Písemný test - 9 bodů - v průběhu semestru
- Semestrální projekt - úlohy s prostorovými operátory - 24 bodů
Zadání zápočtového projektu je uvedeno na stránce s popisem úkolů.
Cvičení 1 - Instalace prostorové databáze a vizualizačního nástroje
Instalace image v prostředí Virtual PC, XE server, SQLDeveloper, GeoRaptor
Cvičení 2 - Přístupy k databázi, prostředí klienta
"Zprovoznění" uživatele HR, vyzkoušení přístupů k databázi - cmd, APEX, SQLDeveloper
Tutoriál SQLDeveloper
Cvičení 3 - Opakování SQL
Dotazování nad jednou tabulkou
Structured Query Language (SQL) představuje sadu příkazů, které umožňují pracovat s databází. Základem jazyka SQL je příkaz SELECT. Popis jeho plné notace je uveden na stránce Vyhledávání.
Opakování budeme provádět nad databází HR, ke které jsme získali přístup aktivací uživatele hr. Schema databáze je uvedeno na obrázku Schema HR.
Nejjednodušší forma dotazu - získáme obsah celé tabulky Zamestnanci:
SELECT * FROM employees;
V ORACLE se nerozlišuje psaní malými a velkými písmeny, takže název tabulky i klíčová slova lze psát různým způsobem - employees x EMPLOYEES, select x SELECT.
Výběr některých sloupců dosáhneme použitím projekce, tj. uvedením názvů sloupců za klíčové slovo SELECT. Zde je uveden dotaz, jehož výsledkem je jmenný seznam zaměstnanců:
SELECT FIRST_NAME, LAST_NAME FROM employees;
V případě, že bychom chtěli pouze seznam příjmení všech zaměstanců bez opakování stejných jmen, použijeme klíčové slovo DISTINCT, které eliminuje výstup - bude bez opakování stejných řádků:
SELECT DISTINCT LAST_NAME FROM employees;
Budeme-li chtít ve výsledku změnit číselné hodnoty nějakého sloupce, lze je přímo dopočítat a na výstupu sloupec také přejmenovat pomocí tzv. alias, za slovem AS:
SELECT LAST_NAME, SALARY + 100 AS "Vyplata s odmenou" FROM employees;
Pro výběr záznamů z tabulky, které vyhovují určité podmínce, použijeme operaci selekce. Zapisujeme ji za klíčové slovo WHERE a podle datového typu atributu volíme zápis podmínky. Pro jmenný seznam zaměstnanců z oddělení 80 pak příkaz vypadá následně:
SELECT FIRST_NAME, LAST_NAME FROM employees WHERE DEPARTMENT_ID=80;
V podmínce je možno použít operátory:
= | rovná se | AND | a současně |
< | je menší než | OR | nebo |
> | je větší než | NOT | negace |
<= | je menší nebo rovno | BETWEEN | pro intervalové hodnoty |
>= | je větší nebo rovno | IS (NOT) | ne/shoda s hodnotou NULL |
<> | není rovno (dle standardu ISO) | LIKE | shoda s maskou v řetězci |
Například vyhledání všech zaměstanců, jejichž jméno začíná na K využije operátor LIKE pro porovnání s maskou řetěyce a navíc zástupný znak % za jakékoli jiné znaky (i žádný znak).
SELECT LAST_NAME AS "Zamestnanci s příjemním na 'K'" FROM employees WHERE last_name LIKE 'K%' ;
Pro vyhledání zaměstnanců, kteří nejsou přiděleni k žádnému oddělení, použijeme podmínku, kde zjistíme hodnotu NULL u atributu DEPARTMENT_ID.
SELECT FIRST_NAME, LAST_NAME FROM employees WHERE DEPARTMENT_ID IS NULL;
Vytvoření tabulky
CREATE
Datové typy
Kompletní popis datových typů je možno nalézt v dokumentaci Oracle.
Úkoly:
V prostředí SQLDevelopera sestavte dotazy, kterými si vyzkoušíte své znalosti. Zadání dotazů je uvedeno na Opakování SQL.
Cvičení 4 - Opakování SQL
Dotazování nad více tabulkami
Cvičení 5 - Principy práce s prostorovými daty
Princip práce s prostorovými daty v prostředí SŘBD Oracle.
Příklad vytvoření tabulky s prostorovými daty, včetně tvorby prostorového indexu: příklad Parcely
Cvičení 5 - Prostorové dotazy
Cvičení 6 - Import dat s prostorovým kontextem
Cvičení 7 - Vizualizace dat s prostorovým kontextem
Cvičení 8 -
Cvičení 9 -
Cvičení 10 - Zpracování vlastního projektu
Výuková podpora pro cvičení z předmětu Objektově orientované technologie vznikla za podpory projektu Inovace bakalářských a magisterských studijních oborů na Hornicko-geologické fakultě VŠB-TUO pod číslem CZ.1.07/2.2.00/28.0308. Tento projekt je realizován za spoluúčasti EU.