Language INtegrated Query (LINQ)



Podobne dokumenty
Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

1. Wyświetlić wszystkie liczby zawarte w tablicy tabl(). 2. Wyświetlić wyłącznie liczby ujemne zawarte w tablicy tabl().

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

Wykład 6. SQL praca z tabelami 3

Autor: Joanna Karwowska

Relacyjne bazy danych. Podstawy SQL

Zadania z SQLa (MS SQL Server)

Systemy GIS Tworzenie zapytań w bazach danych

Autor: Joanna Karwowska

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Autor: Joanna Karwowska

Wprowadzenie do języka SQL

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Przestrzenne bazy danych Podstawy języka SQL

Relacyjne bazy danych. Podstawy SQL

Podstawowe funkcje dodatku linq w C#

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Podstawowe zapytania SELECT (na jednej tabeli)

Wykład 5. SQL praca z tabelami 2

SQL - Structured Query Language. strukturalny język zapytań

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Bazy danych. dr inż. Arkadiusz Mirakowski

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Visual Basic.NET kolekcje danych, technologia LINQ

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Instrukcja laboratoryjna cz.6

8.9. Język SQL Kwerenda wybierająca w języku SQL

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Język SQL. Rozdział 2. Proste zapytania

Jerzy Nawrocki, Wprowadzenie do informatyki

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

SQL (ang. Structured Query Language)

2. Wyświetlić wyłącznie liczby ujemne zawarte w tablicy tabl[]. 3. Wyświetlić rosnąco liczby ujemne zawarte w tablicy tabl[].

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

SQL praca z tabelami 4. Wykład 7

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Map Reduce Proste zliczanie słów i zapytania SQL

Wprowadzenie do baz danych

Kurs. Podstawy MySQL

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Technologie baz danych

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Microsoft SQL Server Podstawy T-SQL

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Struktura bazy danych

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Optymalizacja poleceń SQL Metody dostępu do danych

Współczesne systemy baz danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Język SQL podstawy zapytań

LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Ćwiczenie zapytań języka bazy danych PostgreSQL

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Operacja PIVOT w języku SQL w środowisku Oracle

Współczesne systemy baz danych

LAB 3 (część 1 Projektu)

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Język SQL, zajęcia nr 1

Bazy danych SQL Server 2005

Bazy danych. Informacje podstawowe

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Bazy danych 7. SQL podstawy

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Programowanie obiektowe

Podyplomowe Studia Systemy informatyczne w logistyce

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Laboratorium Bazy danych SQL 2

3. Podzapytania, łączenie tabel i zapytań

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

OLAP i hurtownie danych c.d.

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Materiały pomocnicze do zajęć z przedmiotu Projekt ADP

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Język SQL w Delphi. 1. Kwerendy Przygotowanie do ćwiczenia Komenda SELECT

Baza danych Uczniowie.mdb

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Język SQL, zajęcia nr 2

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Przykładowa baza danych BIBLIOTEKA

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Transkrypt:

Języki Programowania na Platformie.NET (część 2) http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl

Zastosowanie LINQ pozwala na dostęp do danych w formie podobnej do SQL. Możliwy jest dostęp do danych: znajdujących się w kolekcjach i tablicach, w bazie danych SQL, w encjach (Entity Framework), w obiektach DataSet (ADO.NET), w formacie XML takich jak: dokumenty XML, Web serwisy, WCF, w zdarzeniach (Reactive Extensions) udostępnianych przez innych dostawców niż Microsoft, np.: Amazon, Google, MySQL, SPoint, AD, NHibernate, LDAP, Excel, Snmp,... z generatorów liczb pierwszych, (pseudo)losowych, ciągów,...

LINQ - podstawy Operacja z użyciem LINQ przebiega następująco: uzyskanie źródła/źródeł danych zbudowanie zapytania wykonanie zapytania

Przykład Dim x() As Integer = {5,3,6,3,1,0,9,7,-2,11,43} uwtorzenie zapytania: Dim male = From liczba In x Where liczba < 10 Select liczba wykonanie zapytania: For Each Dim n In male Console.WriteLine(n) Next

Zapytanie do tablicy zastosowanie LINQ do tablicy jest możliwe, ponieważ tablice implementują interfejs IEnumerable(Of T) to samo odnosi się do wszystkich typów, które implementują ten interfejs (np. List(Of T), Dictionary(Of TKey, TValue)) lub pochodny jak IQueryable(Of T) w przypadku typów, które nie implementują takich interfejsów potrzebny jest odpowiedni provider, który implementuje niezbędną funkcjonalność dla standardowych operatorów w zapytaniu, na przykład XElement jest typem pozwalającym na dostęp do plików XML poprzez LINQ

Struktura zapytania - podstawy zapytanie zaczyna sie od słowa kluczowego From. Odpowiada ono za identyfikację typu źródła danych oraz zmiennych, które są używane do odnoszenia się do poszczególnych danych (ang. range variables lub iteration variables). W niektórych zapytaniach słowo to jest opcjonalne. Przykład: Dim zapytanie = From k In klienci...

Struktura zapytania - podstawy Where służy do filtrowania wyników (selekcja): Dim zapytanie = From k In klienci Where k.imie = "Ala"... Do łączenia zapytań Where można używać operatorów logicznych And lub OR:... Where imie.miasto = "Gdansk" And imie.imie = "Ala"... Where cust.miasto = "Wroclaw" Or cust.imie = "Ola"

Struktura zapytania - podstawy Select służy do zwracania tylko wybranych wierszy (projekcja): Dim zapytanie = From k In klienci Where k.imie = "Ala" Select k.nazwisko, k.pesel

Wybór określonych pól przykład Dim wynik = From s In studenci Where s.miasto = "Gdansk" Order By s.nazwisko Ascending Select Imie = s.imie, Numer = s.nrind For Each stud In wynik Console.WriteLine(stud.Imie & " " & stud.numer) Next

Złączenia Złączenie można uzyskać używając odpowiednio operatora Where: Dim vowels() As String = {"A", "E", "I", "O", "U"} Dim vowelnames = From student In students, vowel In vowels Where student.last.indexof(vowel) = 0 Select Name = student.first & " " & student.last, Initial = vowel Order By Initial For Each vname In vowelnames Console.WriteLine(vName.Initial & ": Next " & vname.name) A: Terry Adams O: Svetlana Omelchenko O: Michiko Osada http://msdn.microsoft.com/en-us/library/bb384504.aspx

Złączenia... lub korzystając z operatora Join (odpowiednik INNER JOIN z SQL): Dim vowelnames2 = From student In students Join vowel In vowels On student.last(0) Equals vowel Select Name = student.first & " " & student.last, Initial = vowel Order By Initial A: Terry Adams O: Svetlana Omelchenko O: Michiko Osada http://msdn.microsoft.com/en-us/library/bb384504.aspx

Sortowanie Złączenie uzyskujemy używając operatora Order By: Dim londoncusts1 = From cust In customers Where cust.city = "London" Order By cust.name Ascending... Operator Ascending jest opcjonalny (domyślny).

Sortowanie... z pominięciem Where: Dim slowa = {"ala", "ma", "kota", "i", "psa"} Dim zapytanie = From w In slowa Order By w.length Select w i, ma, ala, psa, kota i Select: Dim x = From k In klienci Order By k.wiek

Sortowanie po kilku kryteriach Przykład sortowania względem długości (rosnąco), oraz (dla jednakowych długości) po pierwszej literze w słowie (malejąco) Dim slowa = {"ala", "ma", "kota", "i", "psa"} Dim zap = From w In slowa Order By w.length, w.substring(0,1) Descending Select w i, ma, psa, ala, kota

Sortowanie po kilku kryteriach Ten sam przykład sortowania ale błędny. Powoduje zaburzenie pierwszego uporządkowania Dim slowa = {"ala", "ma", "kota", "i", "psa"} Dim zap = From w In slowa Order By w.length Order By w.substring(0,1) // utrata kolejności Select w ala, i, kota, ma, psa

Inne operatory Let pozwala na przypisanie wartości, np.: From p In produkty Let x = p.cena*0.1 Where x > 100 Dzieli zdanie na tablicę słów i wybiera te które zaczynają się od samogłoski. Dim earlybirdquery = from sentence in strings let words = sentence.split( ) from word in words let w = word.tolower() where w[0] == a w[0] == e w[0] == i w[0] == o w[0] == u select word; http://msdn.microsoft.com/en-us/library/vstudio/bb383976.aspx

Inne operatory Dictinct eliminuje duplikaty: From k In klienci Select k.imie Distinct.

Operator grupowania Group [ listfield1 [, listfield2 [...] ] By keyexp1 [, keyexp2 [...] ] Into aggregatelist Przykład: Dim PracownikDzial1 = From p In Pracownicy Dim PracownikDzial2 = From p In Pracownicy Group By NazwaDzialu = p.dzial Into Dzial = Group, Count() Order By NazwaDzialu

Przykład dostępu do bazy danych Create a standard ADO.NET connection: Dim nwindconn As SqlConnection = _ New SqlConnection(My.Settings.NORTHWINDConnectionString1) nwindconn.open()... other ADO.NET database access code... Use pre-existing ADO.NET connection to create DataContext: Dim interop_db = New NorthwindDataContext(nwindConn) With {.Log = db.log} Dim orders = From o In interop_db.orders _ Where o.freight > 500D _ Select o ObjectDumper.Write(orders) nwindconn.close() http://msdn.microsoft.com/en-us/vbasic/bb737919.aspx

Przykład dostępu do bazy danych

Przykład dostępu do kolekcji Dim customers As List(Of Customer) = GetCustomerList() Dim customersbycountry = From cust In customers _ Order By cust.country, cust.city _ Group By CountryName = cust.country _ Into RegionalCustomers = Group, Count() Order By CountryName For Each country In customersbycountry Console.WriteLine(country.CountryName & _ " (" & country.count & ")" & vbcrlf) For Each customer In country.regionalcustomers Console.WriteLine(vbTab & customer.companyname & _ " (" & customer.city & ")") Next Next http://msdn.microsoft.com/en-us/library/bb763068.aspx

Przykład dostępu do kolekcji Output: Canada count=2 Contoso, Ltd Halifax Fabrikam, Inc. Vancouver United States count=1 Margie s Travel Redmond http://msdn.microsoft.com/en-us/library/bb763068.aspx