Funkce pro práci s jednotlivými řádky

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

Aritmetické operátory

Databázové systémy I. 4. přednáška

Deklarativní IO shrnutí minulé přednášky

Databázové systémy a SQL

Databázové systémy a SQL

Integritní omezení (IO)

Vkládání, aktualizace, mazání

7. blok Funkce. Studijní cíl

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

Znak Slovy Popis Zdroj Výsledek Formátova cí řetězec v CZ verzi Excelu

Kódy pro formát čísla

Programovací jazyk Pascal

Dotazy tvorba nových polí (vypočítané pole)

Virtual Private Database (VPD) Jaroslav Kotrč

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

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

Jazyk PL/SQL Úvod, blok

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

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

FORMÁTOVÁNÍ POKRAČOVÁNÍ

Microsoft Office. Excel vlastní formát buněk

PROGRAMOVÁNÍ V SQL Podpora výuky databázových systémů na SOŠ, založené na technologiích společnosti ORACLE.

2. cvičení z ZI1 - Excel

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

Algoritmizace a programování

Rozšíření ksh vůči sh při práci s proměnnými

Operátory ROLLUP a CUBE

Formátové specifikace formátovací řetězce

Základy jazyka SQL. 87 Jazyk SQL SQL je dotazovací jazyk, takže přes propojenou aplikaci se serveru odevzdá dotaz

MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

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

Algoritmizace a programování

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

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

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

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

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

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

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Úvod do programování. Lekce 1

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

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

Práce s datumem a časem v PostgreSQL. Pavel Stěhule P2D2 2019

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

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

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

Skripty základy VB, vestavěné objekty, příklady

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

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

UŽIVATELSKY DEFINOVANÉ FUNKCE

Využití XML v DB aplikacích

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Mechanismus obarvení řádků browse

Popis programovacího jazyka PL/SQL

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

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.

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

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Oracle XML DB. Tomáš Nykodým

Programování v jazyce JavaScript

DATABÁZE MS ACCESS 2010

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Uživatelská příručka SBOX

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

Multi-dimensional expressions

Stručný obsah Úvod Úvod do SQL 1. Seznámení s jazykem SQL 2. Začínáme s dotazy 3. Výrazy, podmínky a operátory

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jazyk C# a platforma.net

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny.

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Datové typy strana 29

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

Paměť počítače. alg2 1

Databáze I. Přednáška 4

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

Databázové systémy I

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

CZ.1.07/1.5.00/

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

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

FORMÁT SOUBORŮ S PLATEBNÍMI PŘÍKAZY PRO. Citibank Europe plc, organizační složka. Systém internetového bankovnictví

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

VISUAL BASIC. Práce se soubory

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Zápis programu v jazyce C#

Úvod do programování 6. hodina

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Transkript:

Funkce pro práci s jednotlivými řádky

Cíl lekce Po dokončení této lekce budete umět: Popsat různé typy funkcí jazyka SQL Používat znakové, číselné a datové funkce v příkazech SELECT Popsat použití konverzních funkcí

Funkce SQL Vstup arg 1 arg 2 arg n Funkce Funkce vykonávají akce Výsledná hodnota Výstup

Dva typy funkcí SQL Funkce Funkce pro jeden řádek Funkce pro více řádků

Funkce pro práci s jednotlivými řádky Manipulují s datovými položkami Přijímají parametry a vracejí jednu hodnotu Zpracovávají každý vrácený řádek Vracejí jeden výsledek na řádek Mohou upravovat datový typ Je možné je vnořovat název_funkce (sloupec výraz, [arg1, arg2,...])

Funkce pro práci s jednotlivými řádky Znakové Obecné Funkce pro jeden řádek Číselné Konverzní Typu Date

Znakové funkce Znakové funkce Funkce měnící velikost písmen LOWER UPPER INITCAP Funkce pro práci se znaky CONCAT SUBSTR LENGTH INSTR LPAD

Funkce měnící velikost písmen Změna velikosti písmen ve znakovém řetězci Funkce LOWER('SQL Course') UPPER('SQL Course') INITCAP('SQL Course') Výsledek sql course SQL COURSE Sql Course

Práce s funkcemi měnícími velikost písmen Zobrazte číslo zaměstnance, jméno a číslo oddělení pro zaměstnance jménem Blake. SQL> SELECT empno, ename, deptno 2 FROM emp 3 WHERE ename = 'blake'; no rows selected SQL> SELECT empno, ename, deptno 2 FROM emp 3 WHERE LOWER(ename) = 'blake'; EMPNO ENAME DEPTNO --------- ---------- --------- 7698 BLAKE 30

Funkce pro práci se znaky Manipulace se znakovými řetězci Funkce CONCAT('Good', 'String') SUBSTR('String',1,3) LENGTH('String') INSTR('String', 'r') LPAD(sal,10,'*') Výsledek GoodString Str 6 3 ******5000

Použití funkcí pro práci se znaky SQL> SELECT ename, CONCAT (ename, job), LENGTH(ename), 2 INSTR(ename, 'A') 3 FROM emp 4 WHERE SUBSTR(job,1,5) = 'SALES'; ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A') ---------- ------------------- ------------- ---------------- MARTIN MARTINSALESMAN 6 2 ALLEN ALLENSALESMAN 5 1 TURNER TURNERSALESMAN 6 0 WARD WARDSALESMAN 4 2

ROUND: Číselné funkce Zaokrouhlí hodnotu na zadaný počet desetinných míst ROUND(45.926, 2) 45.93 TRUNC: Zkrátí hodnotu na zadaný počet desetinných míst TRUNC(45.926, 2) 45.92 MOD: Vrátí zbytek po celočíselném dělení MOD(1600, 300) 100

Použití funkce ROUND Zobrazte hodnotu 45,923 zaokrouhlenou na setiny, jednotky a na desítky. SQL> SELECT ROUND(45.923,2), ROUND(45.923,0), 2 ROUND(45.923,-1) 3 FROM SYS.DUAL; ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1) --------------- -------------- ----------------- 45.92 46 50

Použití funkce TRUNC Zobrazte hodnotu 45,923 zkrácenou na setiny, jednotky a na desítky. SQL> SELECT TRUNC(45.923,2), TRUNC(45.923), 2 TRUNC(45.923,-1) 3 FROM SYS.DUAL; TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1) --------------- ------------- --------------- 45.92 45 40

Použití funkce MOD Pro všechny zaměstnance s pracovním zařazením vypočítejte zbytek podílu mzdy a provize. SQL> SELECT ename, sal, comm, MOD(sal, comm) 2 FROM emp 3 WHERE job = 'SALESMAN'; ENAME SAL COMM MOD(SAL,COMM) ---------- --------- --------- ------------- MARTIN 1250 1400 1250 ALLEN 1600 300 100 TURNER 1500 0 1500 WARD 1250 500 250

Práce s údaji typu date Systém Oracle ukládá údaje typu date v interním číselném formátu na 8 bytech: století, rok, měs, den, hod, min, vteřiny. hlavička stol rr mm dd hh24 mi ss Implicitní formát data je DD-MON-YY. SYSDATE je funkce vracející aktuální datum a čas s přesností na vteřinu na serveru DUAL je pracovní tabulka s právě jedním řádkem.

Výrazy typu DATE Přičtením nebo odečtením čísla k datu nebo od data získáte hodnotu datového typu datum. Odečtením dvou dat získáte počet dní mezi těmito daty. Hodiny můžete k datu přičíst po vydělení 24.

Aritmetické operátory a data SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS 2 FROM emp 3 WHERE deptno = 10; ENAME WEEKS ---------- --------- KING 830.93709 CLARK 853.93709 MILLER 821.36566

Funkce nad hodnotami DATE FUNKCE MONTHS_BETWEEN ADD_MONTHS NEXT_DAY LAST_DAY ROUND POPIS Počet měsíců mezi dvěma daty Přidá k datu kalendářní měsíc Den následující po zadaném datu Poslední den měsíce Zaokrouhlení údaje date TRUNC Oříznutí údaje date

Použití datových funkcí MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') 19.6774194 ADD_MONTHS ('11-JAN-94',6) '11-JUL-94' NEXT_DAY ('01-SEP-95','FRIDAY') '08-SEP-95' LAST_DAY('01-SEP-95') '30-SEP-95'

Použití datových funkcí ROUND('25-JUL-95','MONTH') 01-AUG-95 ROUND('25-JUL-95','YEAR') 01-JAN-96 TRUNC('25-JUL-95','MONTH') 01-JUL-95 TRUNC('25-JUL-95','YEAR') 01-JAN-95

Konverzní funkce Konverze datového typu Implicitní konverze datového typu Explicitní konverze datového typu

Implicitní konverze datového typu Při přiřazení může Oracle automaticky provést konverzi Původní typ VARCHAR2 nebo CHAR VARCHAR2 nebo CHAR NUMBER DATE Nový typ NUMBER DATE VARCHAR2 VARCHAR2

Implicitní konverze datového typu Při vyhodnocování výrazů může Oracle automaticky provést konverzi Původní typ Nový typ VARCHAR2 nebo CHAR VARCHAR2 nebo CHAR NUMBER DATE

Explicitní konverze datového typu TO_NUMBER TO_DATE NUMBER CHARACTER DATE TO_CHAR TO_CHAR

Funkce TO_CHAR a data TO_CHAR(date, 'fmt') Model formátu: Musí být uzavřen do apostrofů a rozlišuje velikost písmen Může obsahovat libovolný platný prvek formátu data Obsahuje prvek fm pro odstranění mezer a potlačení nul Je od datové hodnoty oddělen čárkou

Prvky formátovacího vzoru date YYYY YEAR MM MONTH DY DAY Plný rok číselně Slovní vyjádření roku Pořadové číslo měsíce v roce Plný název měsíce Tříznaková zkratka dne v týdnu Plný název dne

Prvky formátovacího vzoru date Časové prvky formátují časový složku údaje typu date. HH24:MI:SS AM 15:45:32 PM Můžete přidat znakové řetězce uzavřené v uvozovkách. DD "of" MONTH 12 of OCTOBER Přípony řadových číslovek se opisují. ddspth fourteenth

Formátový prvek RR Aktuální rok 1995 1995 2001 2001 Zadané datum 27-OCT-95 27-OCT-17 27-OCT-17 27-OCT-95 Formát RR 1995 2017 2017 1995 Formát YY 1995 1917 2017 2095 Dvě číslice aktuálního roku 0-49 50-99 Dvěma číslicemi zadaný rok 0-49 50-99 Vracené datum je v aktuálním století. Vracené datum je v příštím století. Vracené datum je v minulém století. Vracené datum je v aktuálním století.

Použití funkce TO_CHAR s date SQL> SELECT ename, 2 TO CHAR(hiredate, 'fmdd Month YYYY') HIREDATE 3 FROM emp; ENAME HIREDATE ---------- ----------------- KING 17 November 1981 BLAKE 1 May 1981 CLARK 9 June 1981 JONES 2 April 1981 MARTIN 28 September 1981 ALLEN 20 February 1981... 14 rows selected.

Funkce TO_CHAR a čísla TO_CHAR(number, 'fmt') Pomocí těchto formátů a funkce TO_CHAR můžete zobrazit číselnou hodnotu jako znaky. 9 0 $ L., Znázorňuje číslo Zobrazí nulu Přidá znak dolaru Použije symbol lokální měny Přidá desetinnou čárku Přidá oddělovač tisíců

Použití funkce TO_CHAR s čísly SQL> SELECT TO_CHAR(sal,'$99,999') SALARY 2 FROM emp 3 WHERE ename = 'SCOTT'; SALARY -------- $3,000

Funkce TO_NUMBER a TO_DATE Převod znakového řetězce do číselného formátu zajišťuje funkce TO_NUMBER TO_NUMBER(char) Převod znakového řetězce do datového formátu zajišťuje funkce TO_DATE TO_DATE(char[, 'fmt'])

Funkce NVL Převádí prázdnou hodnotu na skutečnou hodnotu Je možné použít datové typy date, character a number. Datové typy musí odpovídat NVL(comm,0) NVL(hiredate,'01-JAN-97') NVL(job,'No Job Yet')

Použití funkce NVL SQL> SELECT ename, sal, comm, (sal*12)+nvl(comm,0) 2 FROM emp; ENAME SAL COMM (SAL*12)+NVL(COMM,0) ---------- --------- --------- -------------------- KING 5000 60000 BLAKE 2850 34200 CLARK 2450 29400 JONES 2975 35700 MARTIN 1250 1400 16400 ALLEN 1600 300 19500... 14 rows selected.

Funkce DECODE DECODE(sloup/výraz, hodnota1, výsledek1 [, hodnota2, výsledek2,...,] [, implicitní]) Podmíněný výraz CASE CASE podvýraz WHEN hodnota1 THEN výsledek1 WHEN hodnota2 THEN výsledek2... WHEN hodnotan THEN výsledekn ELSE implicitní END

Použití funkce DECODE SQL> SELECT job, sal, 2 DECODE(job, 'ANALYST' SAL*1.1, 3 'CLERK', SAL*1.15, 4 'MANAGER', SAL*1.20, 5 SAL) 6 REVISED_SALARY 7 FROM emp; JOB SAL REVISED_SALARY --------- --------- -------------- PRESIDENT 5000 5000 MANAGER 2850 3420 MANAGER 2450 2940... 14 rows selected.

Použití podmíněného výrazu SELECT job, sal, CASE job WHEN 'ANALYST' THEN SAL*1.1 WHEN 'CLERK THEN SAL*1.15 WHEN 'MANAGER THEN SAL*1.20 ELSE SAL END REVISED_SALARY FROM emp; JOB SAL REVISED_SALARY --------- --------- -------------- PRESIDENT 5000 5000 MANAGER 2850 3420 MANAGER 2450 2940... 14 rows selected.

Víceúrovňové volání funkcí Hodnoty parametrů lze zadat výrazem a v tom lze zase volat funkci Vnořené volání funkcí se vyhodnocují od nejhlubší po nejvyšší úroveň F3(F2(F1(col,arg1),arg2),arg3) Krok 1 = Výsledek 1 Krok 2 = Výsledek 2 Krok 3 = Výsledek 3

Vnořování funkcí SQL> SELECT ename, 2 NVL(TO_CHAR(mgr),'No Manager') 3 FROM emp 4 WHERE mgr IS NULL; ENAME NVL(TO_CHAR(MGR),'NOMANAGER') ---------- ----------------------------- KING No Manager

Shrnutí Jednořádkové funkce jsou skalární funkce, které lze použít jako operand kteréhokoliv výrazu Při zpracování SQL příkazu se vyhodnocují pro každý řádek zdrojové tabulky zvlášť

Obsah cvičení Vytváření dotazů s číselnými, znakovými a datovými funkcemi Zřetězení ve funkcích Psaní dotazů nezávislých na velikosti písmen testujících užitečnost znakových funkcí Výpočty odpracovaných let a měsíců zaměstnanců Určení data posouzení pracovníka

Přehled kurzu <Sem zadejte informace o kurzu>