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

Podobné dokumenty
Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

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

Databázové systémy I

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

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

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

Databáze SQL SELECT. David Hoksza

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

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

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

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

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Databáze 2011/2012 SQL SELECT II. RNDr.David Hoksza, Ph.D.

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

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

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

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

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

Kapitola 4: SQL. Základní struktura

PG 9.5 novinky ve vývoji aplikací

Databázové systémy. Dotazovací jazyk SQL - II

KIV/ZIS - SELECT, opakování

Základní přehled SQL příkazů

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

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

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

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,...

5. blok Souhrnné a skupinové dotazy

Databázové systémy a SQL

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

- sloupcové integritní omezení

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

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

Jazyk S Q L základy, příkazy pro práci s daty

Jazyk SQL slajdy k přednášce NDBI001

Obsah. SQL konstrukce select join Rekurze (rekurzivní with) Analytické funkce, group by Pivoting

Osnova je orientační pro FIT, u FEKTu se dá předpokládat, že budou zohledněny předchozí znalosti studentů, kde většina s databází nikdy přímo

Operátory ROLLUP a CUBE

UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

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

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

Návrh a tvorba WWW stránek 1/14. PHP a databáze

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Databázové systémy a SQL

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.

Materializované pohledy

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

SQL - SELECT. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 7

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

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

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

1. Relační databázový model

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

Dotazování v relačním modelu a SQL

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

DATA CUBE. Mgr. Jiří Helmich

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

MS Access Dotazy SQL

6. SQL složitější dotazy, QBE

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

Databázové systémy BIK-DBS

Databázové systémy. Agregace, sumarizace, vnořené dotazy. Vilém Vychodil

Databázové systémy Tomáš Skopal

Algoritmizace a programování

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

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

Formální sémantika SQL dotazování

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

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

IDS optimalizátor. Ing. Jan Musil, IBM ČR Community of Practice for

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D.

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

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

3. Jazyky relačních databázových systémů

SQL - úvod. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 6

Dotazovací jazyk pro řazená data

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

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

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

U koly na procvic ení jazyka T-SQL

OQL. (Object Query Language) Michal Bartoš Filip Bureš

Systémy řízení proudů dat

Řešené příklady STUDENT(RČ, JMÉNO, SPECIALIZACE) PŘEDMĚT(KÓD, NÁZEV, SYLLABUS, GARANT) ZÁPIS(RČ, KÓD, SEMESTR, ZNÁMKA)

KIV/ZIS - SQL dotazy. stáhnout soubor ZIS- 04_TestovaciDatabaze accdb. SQL dotazy. budeme probírat pouze SELECT

Vkládání poddotazů do dotazů

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

CRS komunikační rozhraní

PostgreSQL. Podpora dědičnosti Rozšiřitelnost vlastní datové typy. Univerzální nasazení ve vědecké sféře

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

PRG036 Technologie XML

Materiál ke cvičením - SQL

Jazyk SQL. Jaroslav Pokorný MFF UK, Praha J. Pokorný 1

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

WWW dotazovací služby pro prostorová data URM. Jiří Čtyroký Útvar rozvoje hl. m. Prahy

Aritmetické operátory

Transkript:

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

TOP, OFFSET-FETCH Konverze datových typů Logické funkce Práce s řetězci Poddotazy a množinové dotazy SQL Windowing Agenda

TOP TOP omezení počtu vrácených řádků Číslo Procenta Používat s ORDER BY pro zaručení determinističnosti SELECT TOP (N) TOP (N) PERCENT TOP (N) WITH TIES První n záznamů, pokud poslední není jedinečný vrátí všechny shodné s posledním Dotaz musí obsahovat ORDER BY

OFFSET - FETCH SQL Server 2012 Rozšíření ORDER BY Umožňuje zobrazení určitého rozsahu řádků (stránkování) ORDER BY <order_by_list> OFFSET <offset_value> ROW(S) FETCH FIRST NEXT <fetch_value> ROW(S) ONLY Hodnota offsetu musí být zadaná může být i nula FETCH může být vynechán

Tří hodnotová logika SQL server využívá NULL pro označení chybějících hodnot Vyhodnocená predikátů TRUE, FALSE, UNKOWN SQL komponenty vyhodnocuji NULL různě: ON, WHERE, HAVING odfiltrují UNKNOWN CHECK povoluje UNKNOWN ORDER BY, DISTINCT vyhodnocují NULL jako shodné záznamy Test IS NULL, IS NOT NULL

Priorita datových typů Priorita určuje výsledný datový typ Konverze na nižší prioritu musí byt vynucena CHAR -> VARCHAR -> NVARCHAR -> TINYINT -> INT -> DECIMAL -> TIME -> DATE -> DATETIME2 -> XML

Konverze datových typů Implicitní konverze CAST(value as datatype) skončí chybou pokud se konverze nepodaří CONVERT(datatype, value, style no.) stýl date, time, XML PARSE(řetězec as datatype USING culture) převod řetězců na datum čas, číslo SQL 2012 TRY_PARSE, TRY_CONVERT - SQL 2012 pokud se konverze nepodaří vrácen NULL

Logické funkce ISNUMERIC() 1 pokud je převod možný jinak 0 IIF(test, true, false) CHOOSE(index, hodnoty)

Funkce pro práci s NULL ISNULL() nahrazení NULL zadanou hodnotou COALESCE() vrací první ne NULL hodnotu NULLIF() vrací NULL pokud jsou oba argumenty zhodne

Práce s řetězci + - konkatenace Pokus zřetězení obsahuje NULL výsledek je NULL CONCAT (SQL 2012) Převod NULL na prázdny řetezec SUBSTRING() LEFT(), RIGHT() LEN(), DATALENGTH() CHARINDEX() REPLACE() UPPER(), LOWER()

LIKE predikát Porovnaní řetězce se vzorem % - řetězec s libovolnou délkou _ - jeden znak [seznam znaků] jeden znak ze seznamu [znak - znak] jeden znak z rozsahu [^seznam znaků] znak se nenachází v seznamu ESCAPE vyhledávaní znaku z rezervovaných znaků

Datum DATETIME(8),SMALLDATE(4), DATETIME2(6-8), DATE(3), TIME(3-5), DATETIMEOFFSET(8-10) Zadávaní jako řetězec YYYYMMDD GETDATE() GETUTCDATE() CURRENT_TIMESTAMP() SYSDATETIME() STSUTCDATETIME() SYSDATETIMEOFFSET()

Agregační funkce Common Statistical Other SUM MIN MAX AVG COUNT COUNT_BIG STDEV STDEVP VAR VARP CHECKSUM_AGG GROUPING GROUPING_ID

Poddotazy Poddotazy jsou vnořené dotazy, kterých výsledek je vrácen do nadřazeného dotazu Můžou být nezávislé nebo závislé Výsledek může být jedna hodnota, více hodnot nebo tabulka V případě závislých dotazů se poddotaz vyhodnocuje pro každý řádek NOT EXISTS/EXISTS (poddotaz) vyhodnocení jako TRUE /FALSE

Množinové operace Výsledek dvou nebo více dotazů může být dále zpracováván Množiny můžou být kombinovány, porovnávaný, nebo mohou být mezi nimi provedeny operace ORDER BY je povolen na výsledek operace množin UNION - výsledek všech řádků z množin bez duplicit UNION ALL výsledek všech řádky u duplicitní z množin INTERSECT - jedinečné řádky z obou množin EXCEPT řádky z první množiny, které nejsou v množině druhé

APPLY Tabulkový operátor používaný ve FROM klauzuli CROSS APPLY aplikuje pravou tabulku na každý řádek levý tabulky OUTER APPLY aplikuje pravou tabulku na každý řádek levý tabulky, pokud je práva tabulka pro řádek prázdna, přidá NULL hodnoty

SQL Windowing Windows povolují specifikovat pořadí jako část kalkulace bez závislosti na koncovém pořadí vstupu nebo výstupu Zjednodušení dotazů pro výpočet počtů, pohyblivého průměru OVER definuje okno, nebo skupinu řádků, které budou použité ve window funkci OVER ( [ <PARTITION BY clause> ] [ <ORDER BY clause> ] [ <ROWS or RANGE clause> ] ) PARTITION limituje skupiny řádků se stejnou hodnotou ve sloupci Frame určuje začátek a konec UNBOUNDED(směrem k hranici určující PRECEDING nebo FOLLOWING), CURRENT ROW, ROWS BETWEEN

Windowing funkce Agregační SUM, MIN, MAX, Řadící RANK, DENSE-RANK, ROW_NUMBER, NTILE Vyžaduje ORDER BY Distribuční PERCENT_RANK, CUME_DIST, PERCENTILE_CONT, PERCENTILE_DISC Offset funkce LAG, LEAD, FIRST_VALUE, LAST_VALUE Porovnání mezi řádky v seskupení bez potřeby SELF JOINu