4. blok část A Logické operátory

Podobné dokumenty
6. blok část C Množinové operátory

6. blok část B Vnořené dotazy

5. blok Souhrnné a skupinové dotazy

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

12. blok Pokročilé konstrukce SQL dotazů - část II

Úvod do databázových systémů

Úvod do databázových systémů

Střední odborná škola a Střední odborné učiliště, Hořovice

KIV/ZIS cvičení 5. Tomáš Potužák

5 Přehled operátorů, příkazy, přetypování

KIV/ZIS cvičení 6. Tomáš Potužák

2. blok Zabezpečení a ochrana dat

Sada 2 - MS Office, Excel

Databázové systémy Cvičení 5.3

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Úvod do databázových systémů

Informační systémy ve zdravotnictví. 8. cvičení

Úvod do databázových systémů

MS Excel Filtr automatický, rozšířený

Databázové systémy I

Úvod do logiky (VL): 4. Zjištění průběhu pravdivostních hodnot formule tabulkovou metodou

2. blok část A Jazyk SQL, datové typy

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 4

Algoritmizace a programování

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Algoritmizace a programování

4. lekce Přístup k databázi z vyššího programovacího jazyka

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Microsoft Office. Excel vyhledávací funkce

Výroková logika - opakování

Informační systémy ve zdravotnictví. 10. cvičení

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Multi-dimensional expressions

NEJLEP Í NÁPADY PRO DÌTI

JAK SE ASERTIVNÌ PROSADIT

ISBN (elektronická verze ve formátu PDF)


NEJLEP Í NÁPADY PRO DÌTI


JAK SE DOMLUVIT S TCHYNÍ

KAPITOLY Z O ETØOVATELSKÉ PÉÈE I

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Databáze SQL SELECT. David Hoksza

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

( ) ( ) Negace složených výroků II. Předpoklady:

Databázové systémy Cvičení 5

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Databáze v MS ACCESS

Dotazovací jazyky I. Datová krychle. Soběslav Benda

13 Barvy a úpravy rastrového

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

Inovace výuky prostřednictvím šablon pro SŠ

Střední odborná škola a Střední odborné učiliště, Hořovice

Informační systémy ve zdravotnictví. 6. cvičení

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3bph)

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 10

Úvod do řešení lineárních rovnic a jejich soustav

Použití filtrů v Museionu

Databázové systémy a SQL

Operátory ROLLUP a CUBE

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

12 Metody snižování barevného prostoru

LEKCE 6. Operátory. V této lekci najdete:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

2. ÚVOD DO OVLÁDACÍ TECHNIKY

Distanční opora předmětu: Databázové systémy Tématický blok č. 7: Fulltextové vyhledávání Autor: RNDr. Jan Lánský, Ph.D.

13. blok Práce s XML dokumenty v databázi Oracle

Řazení, filtrování a seskupování, vlastní zobrazení

Úvod do informatiky. Miroslav Kolařík

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

VZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý

Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu:

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Sada 1 - PHP. 15. Výběr dat z databáze. Příkaz SELECT

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

Operátory. Základy programování 1 Tomáš Kühr

1.4.3 Složené výroky konjunkce a disjunkce

Úvod do databázových systémů 3. cvičení

DATABÁZE MS ACCESS 2010

Databázové systémy. Cvičení 6: SQL

Inovace bakalářského studijního oboru Aplikovaná chemie

Transkript:

4. blok část A Logické operátory Studijní cíl Tento blok je věnován představení logických operátorů AND, OR, NOT v jazyce SQL a práce s nimi. Doba nutná k nastudování 1-2 hodiny Průvodce studiem Při studiu tohoto bloku se předpokládá, že čtenář je obeznámen se základní syntaxí příkazu SELECT, spojováním tabulek, použitím vyhledávacích podmínek a základních funkcí. 1. Logické operátory Při získávání dat z databáze ne vždy vyžadujeme kompletní soubor dat. V mnoha případech potřebujeme pouze ty záznamy, které odpovídají nějaké podmínce (nad daty je aplikována restrikce). Mohou nastat také případy, kdy potřebujeme, aby data odpovídala více než jedné podmínce zároveň, případně, aby odpovídala alespoň jedné podmínce z několika. Také negování podmínek je běžná potřeba. K tomuto účelu slouží logické operátory. Jazyk SQL disponuje třemi logickými operátory. Jsou to: OR (alespoň jedna podmínka musí nabývat hodnoty PRAVDA) AND (všechny podmínky musí nabývat hodnoty PRAVDA) NOT (podmínka musí nabývat hodnoty NEPRAVDA) 2. Logický operátor OR Operátor OR můžeme chápat jako spojku nebo. Musí tedy platit jedna nebo druhá podmínka. Podmínek samozřejmě můžeme řetězit libovolný počet. Hodnota PRAVDA nastává tehdy, pokud je podmínka splněna. Hodnota NEPRAVDA potom, pokud podmínka splněna není. 1

Podmínka A Podmínka B Výsledek (A OR B) PRAVDA PRAVDA PRAVDA PRAVDA NEPRAVDA PRAVDA NEPRAVDA PRAVDA PRAVDA NEPRAVDA NEPRAVDA NEPRAVDA PRAVDA NULL PRAVDA NEPRAVDA NULL NULL NULL PRAVDA PRAVDA NULL NEPRAVDA NULL NULL NULL NULL Z pravdivostní tabulky je patrné, že výsledný výraz bude nabývat hodnoty NEPRAVDA jedině v případě, že všechny dílčí podmínky budou nabývat hodnoty NEPRAVDA. Příklad pro operátor OR i další operátory si předvedeme nad tabulkou produkty, která obsahuje následující sloupce a data: Jaká je cena produktů s označením A600N a A2500H? SELECT oznaceni, cena FROM produkty oznaceni = 'A600N' OR oznaceni = 'A2500H'; Pro získání výsledků z výše uvedeného dotazu jsme použili logický operátor OR. Do výsledků jsme potřebovali zahrnout ty řádky z tabulky PRODUKTY, které mají ve sloupci OZNACENI hodnotu A600N nebo hodnota A2500H. 3. Logický operátor AND Operátor AND můžeme nahradit spojením a zároveň. Musí tedy platit první podmínka a zároveň i druhá. Funkci operátoru si ukážeme opět na pravdivostní tabulce. 2

Podmínka A Podmínka B Výsledek (A OR B) PRAVDA PRAVDA PRAVDA PRAVDA NEPRAVDA NEPRAVDA NEPRAVDA PRAVDA NEPRAVDA NEPRAVDA NEPRAVDA NEPRAVDA PRAVDA NULL NULL NEPRAVDA NULL NEPRAVDA NULL PRAVDA NULL NULL NEPRAVDA NEPRAVDA NULL NULL NULL Na rozdíl od operátoru OR, je celý pravdivý pouze v případě, že všechny dílčí podmínky výrazu nabývají hodnoty PRAVDA. Operátor je velice vhodný na získávání hodnot z určitého intervalu od - do. Ukažme si na příkladu: Které produkty jsou dražší než 20000 ale levnější než 25000? SELECT oznaceni, cena FROM produkty cena > 20000 AND cena < 25000; Do výsledků tohoto příkazu jsme potřebovali zahrnout ty řádky z tabulky PRODUKTY, které mají ve sloupci CENA hodnotu větší než 20000 ale zároveň hodnotu menší než 25000. Proto byl použit logický operátor AND. 4. Logický operátor NOT Operátor NOT slouží k negování podmínky. Pokud tedy podmínka nabývá hodnoty PRAVDA, po aplikování operátory NOT bude výsledná hodnota výrazu NEPRAVDA. NOT je jako jediný logický operátor unární (vyžaduje pouze jeden operand). Operátory AND a OR jsou binární (vyžadují dva operátory). Podmínka A Výsledek (NOT A) PRAVDA NEPRAVDA NEPRAVDA PRAVDA NULL NULL 3

Vypište všechny produkty kromě produktu s označením A600N. SELECT oznaceni FROM produkty NOT oznaceni = 'A600N'; Do výsledku příkladu jsou zahrnuty pouze ty řádky z tabulky PRODUKTY, které ve sloupci OZNACENI neobsahují hodnotu A600N. Pokud bychom logický operátor NOT vynechali, výsledkem by byl pouze řádek, který ve sloupci OZNACENI obsahuje hodnotu A600N. 5. Kombinování logických operátorů Ve velkém množství případů použití jednoho logického operátoru není dostačující, proto je možné logické operátory libovolně kombinovat. Kombinovat je možno libovolné množství operátorů. Priority vyhodnocování logických operátorů můžeme upravovat pomocí závorek. Ukažme si kombinaci kombinování logických operátorů na modifikacích výše uvedených příkladů. Jaká je cena produktů, které nenesou označení A600N nebo A2500H? SELECT oznaceni FROM produkty NOT (oznaceni = 'A600N' OR oznaceni = 'A2500H'); 4

Pro správné pochopení výsledku si nejdříve rozebereme, v jakém pořadí jsou podmínky za klauzulí v tomto případě vyhodnocovány. Postup vyhodnocení si budeme demonstrovat na řádku, kde sloupec OZNACENI nese hodnotu A8JN- 4P019M 1. Jsou vyhodnoceny operátory =, tedy výrazy oznaceni='a600n' a oznaceni='a2500h'. a. Porovná se hodnota A8JN-4P019M s hodnotou A600N. Hodnoty se nerovnají, výsledkem bude hodnota NEPRAVDA. b. Porovná se hodnota A8JN-4P019M s hodnotou A600N. Hodnoty se nerovnají, výsledkem bude hodnota NEPRAVDA. 2. Vyhodnotí se výraz v závorce, tedy operátor OR. Ten již pracuje s hodnotami získanými z bodu 1. Vyhodnocuje se tedy výraz NEPRAVDA OR NEPRAVDA. Výsledkem tohoto výrazu je hodnota NEPRAVDA. 3. Vyhodnotí se operátor NOT, který bude pracovat s hodnotou z bodu 2. Vyhodnocuje se tedy výraz NOT NEPRAVDA, kde výsledkem je hodnota PRAVDA. Řádek tedy bude zahrnutý do výsledku dotazu. Demonstrovaný příklad je možné řešit i druhým způsobem, použitím logického operátoru AND. Vyřešme si tedy stejný příklad ještě jednou: Jaká je cena produktů, které nenesou označení A600N nebo A2500H? SELECT oznaceni, cena FROM produkty (NOT oznaceni = 'A600N') AND (NOT oznaceni = 'A2500H'); Na příkladu je vidět, že stejného výsledku je možné dosáhnout více způsoby. Stačí zaměnit logické operátory mezi sebou a pomocí závorek správně nastavit priority vyhodnocování. Pojmy k zapamatování Příkazy a funkce: AND, OR, NOT Problém: užití logických operátorů ke spojování podmínek, změna priority vyhodnocování podmínek 5

Shrnutí V této lekci jste se seznámili s použitím logických operátorů. Logické operátory pracují s hodnotami PRAVDA a NEPRAVDA. Logické operátory je možno libovolně řetězit a kombinovat. Stejný problém je možno řešit více způsoby, pokud vyměníme logické operátory. Otázky na procvičení 1. Jaký slovní obrat můžeme použít při hovoru o operátoru OR a operátoru AND? 2. Jaký operátor použijeme, pokud chceme hodnoty z intervalu od do? 3. Jak můžeme upravit priority vyhodnocování výrazů? 4. V jakém pořadí bude vyhodnocován výraz NOT (oznaceni = 'XXX' AND oznaceni = 'YYY')? 5. Kolik logických operátorů můžeme zkombinovat do jednoho výrazu? Odkazy a další studijní prameny http://www.techonthenet.com/oracle (syntaxe příkazů SQL jazyka a funkcí) http://www.sqlcourse.com (interaktivni SQL trénink) http://www.oracle.com/technetwork/database/enterpriseedition/documentation (dokumentace k databázové platformě Oracle) http://www.penguin.cz/noviny/?id=chip/index (seriál Databáze standardu SQL z časopisu CHIP) Odkazy a další studijní prameny ŠIMŮNEK, M. SQL, kompletní kapesní průvodce. Grada Publishing, 1999. ISBN 80-7169-692-7. STEPHENS, K.R., PLEW, R.R. Naučte se SQL za 21 dní. Praha: Computer Press, 2004. ISBN 80-7226-870-8. GROFF, J.R., WEINBERG, P.N. SQL - kompletní průvodce. Praha: Computer Press, 2005. ISBN 80-251-0369-2. 6