23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-

Slides:



Advertisements
Podobné prezentace
(instance konkrétní třídy)
Advertisements

Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Zpracování SQL Lubomír Andrle 5. přednáška
Aplikační a programové vybavení
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Databázové systémy SQL Výběr dat.
Fakulta elektrotechniky a informatiky
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
C# pro začátečníky Mgr. Jaromír Osčádal
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Object Query Language (OQL)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Algoritmy a programovací techniky
Objektové programování
Relační databáze.
Algoritmy vyhledávání a řazení
Vypracoval: Ondřej Dvorský Třída: VIII.A
08/04/20151 Události (1) Členy třídy umožňující objektu nebo třídě rea- govat na zprávy (události) Dovolují třídě nebo objektu informovat jinou třídu nebo.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Informatika pro ekonomy II přednáška 10
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
JavaScript Podmínky, cykly a pole.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B16 Autor Ing. Jiří Kalousek Období vytvoření březen.
12/04/20151 Kolekce (1) Kolekce (collection) představují standardní datové struktury (seskupení) prvků (objektů) Jsou definovány ve jmenném prostoru System.Collections.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
Databázové modelování
Informatika II PAA DOTAZOVACÍ JAZYKY
RDF a RQL Roman Krejčík. RDF a RQL RDF – Resource Description Framework –Jazyk pro ukládání informací v XML –RDF Schema RQL – RDF Query Language –Dotazování.
Principy OOP Objektově orientované programování vychá-zí ze třech základních principů (rysů): zapouzdření (encapsulation) dědičnost (inheritance) polymorfismus.
Aplikační a programové vybavení
Databázové systémy Informatika pro ekonomy, př. 18.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Databázové systémy SQL Výběr dat.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Administrace Oracle Paralelní zpracování.
Kam se ubírá jazyk C#? Dr. Ing. Dalibor Kačmář Academic Developer Evangelist Developer & Platform Evangelist Group Microsoft Czech & Slovakia Anders Hejlsberg.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Perzistence XML dat Kamil Toman
YOUR LOGO C# ADO.NET. YOUR LOGO Úvod – ADO.NET  ADO.NET zajišťuje přístup k databázím  2 koncepčně jedinečné styly -Připojeně -Odpojeně přechodné (offline)
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
.NET framework platforma Jiří Pokorný
Databáze MS ACCESS 2010.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
KIV/ZD cvičení 5 Tomáš Potužák.
Delegáty (1) Delegát (delegate) je datový typ, který definuje signaturu metody Delegáty bývají rovněž označovány jako typo-vě bezpečné ukazatele na funkce.
Informatika pro ekonomy přednáška 8
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Databázové systémy a SQL
Dynamické proměnné (1) Proměnné, jejichž počet a (nebo) velikost pa-měti využívané těmito proměnnými se v prů-běhu programu mění Dynamické proměnné lze.
Oblast platnosti identifikátoru (1)
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
Optimalizace SQL dotazů
Přednáška 9 Triggery.
ZAL – 7. cvičení 2016.
Transkript prezentace:

23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ- ním a funkcionálním způsobem Představuje dotazovací jazyk (podobný SQL), který je integrovaný přímo do syntaxe jazyka C# Poskytuje syntaktickou kontrolu dotazů v době překladu programu Mezi výhody technologie LINQ patří zejména: –zjednodušení a zpřehlednění programového kódu –jednotná forma práce s různě reprezentovanými daty

23/04/20152 LINQ (2) LINQ: –přináší nový způsob pro dotazování nad různě repre- zentovanými daty –usnadňuje: jejich třídění jejich propojování vyhledávání v nich Zpracovávaná data mohou být uložena např. v: –polích –kolekcích odvozených od generického rozhraní IEnumerable –XML –SQL databázích

23/04/20153 LINQ (3) Zpřehlednění práce s daty pomocí LINQ je v ja- zyku C# dosaženo prostřednictvím: –implicitně typovaných proměnných: definované pomocí klíčového slova var (bez použití identifikátoru označujícího datový typ) v době definice musí být provedena i jejich inicializace představují silně typované proměnné jejich typ je určen z pravé strany inicializace příklad: var distance = 20; //int –inicializátorů objektů: umožňují v době vytváření objektů nastavit jejich vlast- nosti a datové položky (bez nutnosti použití specifického konstruktoru) příklad: Dog dog = new Dog { Name = ”Rex”, Age = 5 };

23/04/20154 LINQ (4) –inicializátorů kolekcí: dovolují v době volání konstruktoru kolekce uvést seznam objektů kolekce musí implementovat rozhraní IEnumerable a obsahovat metodu Add pro vložení položky příklad: IList nums = new List () { 1, 2, 3, 4, 5 }; –anonymních typů: slouží k zapouzdření proměnných bez nutnosti deklarovat datový typ obsahují jednu nebo více vlastností, které se nastaví při vytvoření instance a dále slouží jen ke čtení

23/04/20155 LINQ (5) lze je deklarovat jen pomocí implicitně typované proměn- né ( var ) vlastnosti se určí z objektové inicializace příklad: var Rex = new { Name = "Rex", Age = 5 }; –lambda výrazů: jednodušší forma zápisu anonymních metod –rozšiřujících metod: metody rozšiřující již existující datové typy (třídy nebo struktury) dodatečnými statickými metodami Překlad z dotazu LINQ na dotaz pro konkrétní platformu je realizovaný pomocí tzv. LINQ (po- skytovatelů) providers

23/04/20156 LINQ (6) Mezi nejčastěji používané poskytovatele techno- logie LINQ patří: –LINQ to Objects: slouží k práci s libovolnou kolekcí (polem), která imple- mentuje rozhraní IEnumerable –LINQ to SQL: mapuje příkazy LINQ na dotazy SQL a umožňuje práci s MS SQL Server a MS SQL Express –LINQ to DataSet: používá technologii ADO.NET pro komunikaci s databá- zemi –LINQ to XML: umožňuje práci se (dotazy nad) soubory XML

23/04/20157 LINQ to Objects (1) Definován ve jmenném prostoru System.Linq Slouží k dotazování nad daty, která jsou v ope- rační paměti (poli, třídami implementujícími rozhraní IEnumerable ) Dotazovací engine je spuštěn spolu s programem a umožňuje lokální dotazování Odpadává nutnost vytváření vlastních algoritmů pro vyhledávání v kolekcích Dotazování není dynamické: –jakmile se jeden dotaz vyhodnotí a vrátí výslednou množinu, tak se do něj již nepromítají změny v pů- vodních datech

23/04/20158 LINQ to Objects (2) Pro zápis dotazů LINQ je možné použít např. následující operátory (klíčová slova): –from : první klíčové slovo dotazu slouží ke specifikaci datového zdroje, nad kterým je prováděn dotaz –where ( Where ): umožňuje definovat podmínku (restrikci) pro výsledek jestliže podmínka vrátí hodnotu true, tak je prvek zahrnut do výsledku –select ( Select ): produkuje výsledky dotazu používá se k implementaci projekce, kde jsou pouze něk- teré datové složky objektu použity ve výsledku uvádí se vždy na konci dotazu

23/04/20159 LINQ to Objects (3) –group ( GroupBy ): umožňuje seskupování prvků ve výsledku podle určitého klíče k použití tohoto slova se váže také použití klíčového slo- va by –into : používáno v kombinaci s klíčovým slovem group, join nebo select k uložení výsledku a další možné práci s tímto výsledkem –orderby ( OrderBy, OrderByDescending ): slouží k řazení prvků ve výsledku podle definovaných kritérií pro sestupné řazení je možné jej použít s klíčovým slovem descending

23/04/ LINQ to Objects (4) –join ( Join, GroupJoin ): používá se k propojení prvků z různých datových zdrojů na základě definované podmínky ekvivalence v kombinaci s tímto slovem se používají nová slova equals a on –let : slouží k definici lokální proměnné v rámci dotazu do této proměnné může být přiřazena sekvence elementů, nebo jednoduchá hodnota Jmenný prostor System.Linq definuje ještě další rozšiřující metody, které lze v souvislosti s kolekcemi (poli) používat, např.: –First, Last : výběr prvního nebo posledního prvku

23/04/ LINQ to Objects (5) –FirstOrDefault, LastOrDefault : vrací první, resp. poslední prvek výchozí hodnotu daného datového typu v případě, že dotaz vrátil prázdný výsledek –ElementAt : vrací prvek podle zadaného indexu –Count : vrací počet prvků –Union, Intersect, Except : provádí množinové operace (sjednocení, průnik a rozdíl) –Min, Max : vrací minimální, resp. maximální hodnotu –Sum, Average : vypočítá součet, resp. průměr prvků

23/04/ LINQ to Objects (6) –Reverse : obrátí pořadí prvků v kolekci (poli) –Concat : spojí dvě sekvence (pole, kolekce) dohromady –OfType : výběr pouze těch prvků, které jsou specifikovaného typu –Take : vybere prvních n prvků –Skip : vybere všechny prvky počínaje (n+1). prvkem –TakeWhile : Vybírá prvky dokud není splněna určitá podmínka –SkipWhile : přeskakuje prvky, dokud není splněna určitá podmínka

23/04/ LINQ to Objects (7) Obecný tvar jednoduchého dotazu LINQ: from [typ] proměnná in datový_zdroj [where] podmínka_restrikce [orderby] klíč_řazení [descending] select výraz_projekce; Příklad: int[] numbers = { 1, 2, 3, 4, 5 }; var result = from n in numbers where n < 4 orderby n descending select n; vybere z pole numbers všechna čísla menší než 4 a provede jejich sestupné seřazení

23/04/ LINQ to Objects (8) Předcházející dotaz může být také zapsán s vy- užitím rozšiřujících metod a lambda výrazů: int[] numbers = { 1, 2, 3, 4, 5 }; var result = numbers.Where(n => n n); Dotazy LINQ jsou prováděny s tzv. odloženým spuštěním (deferred execution): –dotaz je spuštěn až ve chvíli, kdy je k němu přistou- peno –samotné uložení dotazu do proměnné jeho spuštění nevyvolá

23/04/ LINQ to Objects (9) Příklad: List numbers = new List () {1, 2, 3, 4, 5}; var result = from n in numbers where n > 3 select n; numbers.Add(6); foreach (int i in result) Console.Write("{0} ", i); Uvedený program, vypíše hodnoty 4 5 6