Badanie technologii LINQ

Wielkość: px
Rozpocząć pokaz od strony:

Download "Badanie technologii LINQ"

Transkrypt

1 WEiI PK Katedra Inżynierii Komputerowej Badanie technologii LINQ Ćwiczenia z przedmiotu Obiektowe bazy danych Włodzimierz Khadzhynov

2 Spis treści Wstęp... 4 LINQ to Objects... 5 Rozszerzenia języka C#3.0 dla LINQ... 5 Wykorzystanie metod anonimowych... 7 Zmienna Var... 8 Typy anonimowe... 8 Wykorzystanie lambda-wyrażeń... 9 Operatory zapytań Wyrażenia zapytaniowe (query expression) Wykorzystanie metody Cast lub OfType LINQ to XML LINQ to SQL Generacja klas encyjnych dla LINQ to SQL Tworzenie klas encyjnych za dopomogą utility SqlMetal Tworzenie klas encyjnych za dopomogą Object Relational Designer Modyfikacja kolumny w bazie Wstawianie danych Pobieranie baz Northwind oraz Pub oraz dołączenie tych baz do MS SQL Server LINQ to DataSet Zadania ćwiczeniowe dla studenta LINQ to Object LINQ to XML LINQ to SQL z wykorzystaniem SQLMETAL LINQ to SQL z wykorzystaniem O/R Designera Projektowanie zapytań LINQ

3 Select Ćwiczenie dla studentów Where Ćwiczenie dla studentów OrderBy Ćwiczenie dla studentów Take i Skip Ćwiczenie dla studentów GroupBy Ćwiczenie dla studentów Distinct, Union, Intersect, Except Ćwiczenie dla studentów Join Operators Ćwiczenie dla studentów

4 Wstęp LINQ (Language Integrated Query zapytania zintegrowane) to technologia zapytań zintegrowanych z językiem programowania, pozwalająca na pisanie zapytań dotyczących lokalnych kolekcji obiektów i zdalnych źródeł danych, a przy tym podlegających kontroli typów. Podstawowymi jednostkami danych w LINQ są kolekcje i elementy. Kolekcja danych odpytywana przez LINQ musi implementować interfejs IEnumerable<>, a element to dowolny pojedynczy element takiej kolekcji. Dostęp do obiektów wewnątrz programu oraz do obiektów baz danych jest zrealizowany w sposób jednolity. LINQ to składnia, którą można wykorzystać do odpytywania różnych źródeł danych: obiektów, baz danych SQL, dokumentów XML, encji itd. LINQ posiada pełne wsparcie dla transakcji, widoków, procedur przechowanych. Zapytania LINQ stają się częścią języka wspierającego.net (C#, VB itd.).wszystkie operatory zapytań są implementowane jako statyczne metody rozszerzające klasy Enumerable. Jeśli LINQ ma działać, musi znać mapę całej bazy danych. Zapytanie LINQ zwraca kolekcję z przestrzeni nazw typów ogólnych. Kolekcja ta może być modyfikowana, a następnie zwrócona do źródła. Dzięki temu zachowywana jest pełna kontrola typów danych i ich konwersji w poszczególnych mechanizmach pośredniczących w pobieraniu danych. Dane mogą pochodzić z: zwykłych obiektów (LINQ to objects), bazy danych (LINQ to sql), dokumentów XML (LINQ to XML). Można zastosować na nich takie operacje jak: projekcje lub złączenia. LINQ zapożyczył z języka SQL sposób budowania zapytań. Każdy programista mający kontakt z językiem SQL nie będzie miał większych problemów z tworzeniem zapytań LINQ. Na rys.1 pokazany jest schemat architektury LINQ. Rys.1 LINQ to Objects to jest interfejs API IEnumerable <T> dla standardowych operacji zapytań. LINQ to Objects pozwala realizować zapytania do tablic i kolekcji danych. Standardowe operacji zapytań są w postaci metod statycznych klasy System.Linq.Enumerable. 4

5 LINQ to Objects Przykład zapytania LINQ do tablicy ciągów znaków jest pokazany w listingu 1. Listing using System; 2. using System.Linq; 3. string[] greetings = "hello world", "hello LINQ", "hello Politechnika" ; 4. var items = from s in greetings where s.endswith("linq") select s; 5. foreach (var item in items) 6. Console.WriteLine(item); 7. Console.ReadLine(); Z tego listingu można zrozumieć, że LINQ potrzebuje bibliotekę System.Linq. Zapytanie do danych podobno jest formatu zapytania SQL, ale z odwrotnym porządkiem operatorów oraz zawiera konstrukcje s in w operatorze from. Oprócz tego każdy obiekt zawiera sporo dodatkowych metod. Zwłaszcza, obiekt s zawiera metodę EndsWith(). Główną zaletą LINQ jest pełna integracja z językiem C#. LINQ nie proponuje nowe klasy dla realizacji swoich zapytań. LINQ może pracować z istniejącymi kolekcjami oraz tablicami, którzy są skojarzone z istniejącymi klasami. Głównymi wymogami do tych kolekcji jest konieczność realizacji interfejsu IEnumerable <T>. Aby ułatwić odczytywanie danych z nieznanych źródeł, w LINQ wprowadzono zmienne deklarowane przy użyciu słowa kluczowego VAR (zmienne typu anonimowego). Typ zmiennych tego rodzaju jest ustalany przez kompilator na podstawie wartości użytej przy inicjalizacji. Przy tym inicjalizacja musi nastąpić w tej samej linii kodu co deklaracja. Po zainicjowaniu zmienne z typem VAR respektują kontrolę typów, to znaczy, np. do zmiennej typu VAR zainicjowanej stałą typu INT nie można już przypisać łańcucha znaków. Zmienne tego typu mogą być jedynie zmiennymi lokalnymi, a więc mogą być deklarowane i inicjowane tylko wewnątrz metody. Przykład nieprawidłowego wykorzystania VAR jest pokazany w listingu: var name = "Joe"; name = 1; Rozszerzenia języka C#3.0 dla LINQ Metody rozszerzające to są metody którzy są statycznymi oraz mogą być wywołane na instancji (obiekcie) klasy przez notację punktową bez konieczności odwołania do klasy. Rozszerzenia (extension methods) pozwalają dodawać nowe metody do istniejących klas bez modyfikacji ich kodu. Metody rozszerzające muszą być definiowane jako statyczne w statycznych klasach niezagnieżdżonych oraz mogą być wywoływane tak, jak metody składowe innych wcześniej zdefiniowanych klas. Dla przykładu dodajmy do klasy String metodę zmieniającą apostrof w hash. W listingu 2 jest pokazany ten przykład. Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; using System.Linq; 5. using System.Text; 6. static void Test_rozszerzenia() 5

6 7. 8. Console.WriteLine("0 : Begin", new StackTrace(0, 9. true).getframe(0).getmethod().name); 10. string s = "SQL Inje'c'tion"; 11. Console.WriteLine(s.UsunApostrof()); 12. Console.WriteLine(s.UsunApostrof('#')); 13. Console.WriteLine(s.UsunApostrof(c => (c == '\'')? '#' : c)); 14. Console.WriteLine("0 : ", new StackTrace(0, 15. true).getframe(0).getmethod().name); 16. Console.ReadLine(); static class Rozszerzenia public static string UsunApostrof(this String argument) return argument.replace('\'', '#'); public static string UsunApostrof(this String argument, char 23. zamiennik) return argument.replace('\'', zamiennik); delegate char DZmieniacz(char znak); 28. //public static string UsunApostrof(this String argument, 29. DZmieniacz zmieniacz) 30. public static string UsunApostrof(this String argument, 31. Func<char, char> zmieniacz) string wynik = ""; 34. foreach (char znak in argument.tochararray()) 35. wynik += zmieniacz(znak); 36. return wynik; W liniach 7-17 jest wyznaczona metoda Test_rozszerzenia() która wykorzysta rozszerzenia dla klasy string definiowane w liniach Niezbędnym dla rozszerzenia klasy String w tym przykładzie jest obecność argumentów This String (obecny obiekt) w metodach rozrzedzających. Argument This String musi być zawsze pierwszym argumentem w metodzie rozrzedzającej. Przy prawidłowej definicji metody jest ona widoczna w IntelliSense dowolnego obiektu klasy String. W liniach są definiowane trzy różne stereotypy metod rozszerzających UsunApostrof()dla klasy string. W liniach jest definiowana rozszerzająca z wykorzystaniem delegata funkcji jako argumentu. Delegat został deklarowany w linii 28 oraz metoda rozszerzająca w linii 31: public static string UsunApostrof(this String argument, Func<char, char> zmieniacz) Tu jest wykorzystany typ parametryczny Func<char, char>. Jego pierwszym parametrem może być typ argumentu (char), a drugim typ zwracany przez metodę (char). W linii 14 pokazany przykład wykorzystania tej metody za dopomogą wyrażenia Lambda: Console.WriteLine(s.UsunApostrof(c => (c == '\'')? '#' : c)); Technologia LINQ oprócz możliwości integracji zapytań pozwoli realizować sporo funkcji integracji danych w programowaniu obiektowym. Rozpatrzymy przykład. Przypuścimy że mamy dowolną metodę A która wraca tablicę ciągów znaków typu STRING. Ten wynik trzeba przekazać do metody B, która potrzebuje na wejściu ciąg znaków typu INTEGER. W zwykłych przypadkach dla przekazania danych do metody B są potrzebna dodatkowa pętla do przekształcenia tablicy STRING do postaci 6

7 typu INTEGER. W przypadku wykorzystania LINQ ta operacja może być zrealizowana przez lambda wyrażenia oraz wewnętrzne metody zapytań w sposób podobny w listingu 3. Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7. string[] numbers = "0042", "010", "9", "27" ; 8. int[] nums = numbers.select(s => Int32.Parse(s)).ToArray(); 9. foreach (int num in nums) 10. Console.WriteLine(num); 11. Console.ReadLine(); W linii 7 jest zdefiniowana tablica ciągów znaków. W linii 8 jest zrealizowane przekształcenie tablicy numbers do nowej tablicy nums. Dla realizacji dodatkowej operacji sortowania w poprzednim przykładzie może być zrealizowany następny kod (Listing 4). Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7. string[] numbers = "0042", "010", "9", "27" ; 8. int[] nums = numbers.select(s => Int32.Parse(s)).OrderBy(s => 9. s).toarray(); 10. foreach (int num in nums) 11. Console.WriteLine(num); 12. Console.ReadLine(); Wykorzystanie metod anonimowych Wykorzystanie delegatów potrzebuje w klasycznym podejściu definicję delegata oraz następną instancję tego delegata do konkretnej metody. W przypadkach kiedy metody delegata będą wykorzystane tylko jeden raz lepiej tworzyć metody anonimowe. Metody anonimowe pozwalają specyfikować kody metod w punkcie przekazywania delegata. Aby napisać metodę anonimową, należy zastosować słowo kluczowe delegate uzupełnione o deklarację parametrów, a następnie właściwe ciało funkcji. W listingu 5. Jest pokazany kod programu dla filtracji tablicy liczb typu Integer. Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7

8 7. int[] nums = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; 8. int[] oddnums = Common.FilterArrayOfInts(nums, delegate(int i) return ((i & 1) == 1); ); 9. foreach (int i in oddnums) 10. Console.WriteLine(i); 11. Console.ReadLine(); 12. public class Common public delegate bool IntFilter(int i); 15. public static int[] FilterArrayOfInts(int[] ints, 16. IntFilter filter) ArrayList alist = new ArrayList(); 19. foreach (int i in ints) if (filter(i)) alist.add(i); return ((int[])alist.toarray(typeof(int))); W liniach jest definiowana klasa Comon. W linii 14 jest definiowany delegat: public delegate bool IntFilter(int i), który jest wykorzystany w metodzie FilterArrayOfInts(int[] ints,intfilter filter.instancja delegata jest zrealizowana w linii 8. Zmienna Var Wykorzystanie zmiennej o słowie kluczowym var daje możliwość określania typu zmiennej lokalnej przy inicjalizacji. Typ zmiennej w trym przypadku jest ustalany przez kompilator na podstawie wartości użytej w moment inicjalizacji, np.: var i = 7; --> int i =7; var lancuch = "Slowo"; --> string lancuch = "Slowo"; var liczby = new int [ ] 1,2,3; --> int[ ] liczby = new int[ ] 1,2,3; Inicjalizacja zmiennej następuje w tej samej linii kodu co deklaracja. Dzięki zastosowaniu słowa kluczowego var można odczytywać dane z nieznanych źródeł. Jest to bardzo przydatne przy stosowaniu zapytań LINQ. Typy anonimowe Typ anonimowy to prosta klasa utworzona w locie do przechowywania zestawu wartości. Aby utworzyć typ anonimowy, należy zastosować słowo kluczowe New z inicjalizatorem obiektu zawierającym nazwy i wartości dla poszczególnych właściwości, które mają zostać zawarte w typie anonimowym: var anonim=new i=1, l=1l, s="politechnika", f=1.0f, d=1.0; MessageBox.Show(anonim.GetType().FullName); MessageBox.Show(anonim.s); 8

9 Wykorzystanie lambda-wyrażeń Lambda wyrażenia są skróconą postacią do specyfikacji algorytmu. Lambda wyrażenia są specyfikowane jako lista parametrów, operacją lambda => oraz listę operacji: (parameter 1, parameter 2,,parameter N) => Operator 1; Operator 2; Operator N; Return (typ zwracanego lambda wyrażenia); Przykłady : x => x ; To wyrażenie oznaczy, że x wraca x. x=>x.length>0; To wyrażenie oznaczy, że x wraca wartość boolowską. x=>x.length ; To wyrażenie oznaczy, że x wraca wartość typu Integer. (x,y) => x==y; To wyrażenie oznaczy, że (x,y) wracają wartość boolowską. (x,y) => If (x>y) Return(x); Else Return(y); 9

10 Lambda wyrażenia można wykorzystać do wyspecyfikowania delegatów w programie. Ten przykład jest pokazany w listingu 6. W listingu 6 jest wykorzystany poprzedni przykład filtracji liczb, dlatego zamienione zostali tylko linii 7-11 kodu listingu 6. Listing 6 int[] nums = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; int[] oddnums = Common.FilterArrayOfInts(nums, i => ((i & 1) == 1)); foreach (int i in oddnums) Console.WriteLine(i); Operatory zapytań Metoda przekształcająca sekwencję wejściową nazywa się operatorem zapytania klasie Enumerable zdefiniowano około 40 operatorów zapytań oraz wszystkie są jako statyczne metody rozszerzające. Te operatory nazywają standardowymi operatorami zapytań. Kaskadowe operatory zapytań można budować z pojedynczych operatorów zapytań. Wyrażenia zapytaniowe (query expression) Wyrażenie zapytaniowe zawsze zaczyna się od klauzuli from i zawsze kończy się klauzulą select,albo group. Klauzula from deklaruje zmienną zakresową, która można traktować jako zmienną przemierzającą elementy kolekcji wejściowej ( podobne jak w instrukcji foreach). Kompilator przetwarza wyrażenia zapytaniowe, tłumacząc je na operatory kaskadowe. Główną zaletą składni zapytań jest to, że upraszcza ona zapytania, w których występują : Klauzula let do wprowadzenia nowej zmiennej obok zmiennej zakresowej, Generatory (SelectMany) z odwołaniem do zewnętrznej zmiennej zakresowej, Odpowiednik Join albo GroupJoin z odwołaniem do zewnętrznej zmiennej zakresowej. Wykorzystanie metody Cast lub OfType Operacji zapytań LINQ mogą być wywoływane na kolekcjach którzy realizują interfejs IEnumerable< T>. Żadna z dziedziczonych kolekcji C# z przestrzeni System.Collection nie realizuje IEnumerable< T>. Wykorzystać kolekcje dziedziczone można przez zapytania Cast<> dla konwersji do sekwencji IEnumerable<T >. Listing 1.9 Listing 1.6 przykład przekształcenia sekwencji klasy Employee do sekwencji innej klasy Contact. Klasa Employee przeznaczona jest dla magazynowania danych pracowników w postaci obiektów klasy ArrayList. Klasa ArrayList reprezentuje tablicę obiektów klasy obiect o dynamicznym rozmiarze. Klasa Employee zawiera metodę GetEmployees (), która wraca wszystkich pracowników jako sekwencję obiektów ArrayList. Metoda PublishContacts(Contact[] contacts) publikuje kontakty oraz potrzebuje na wejściu sekwencje obiektów typu Contact[]. Dla publikacji kontaktów wszystkich pracowników 10

11 trzeba przekształcić sekwencje obiektów klasy Employee typu ArrayList do sekwencji obiektów typu Contact[]. Standardowa metoda Cast() realizuje konwersję ArrayList obiektów Employee do sekwencji IEnumerable< Employee>. W metodzie Select() jest stworzona sekwencja obiektów IEnumerable< > z niezbędnymi polami klasy Contact. Metoda ToArray() konwertuje IEnumerable< > do sekwencji Contact[]. static void Listing1_6() Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); ArrayList alemployees = LINQDev.HR.Employee.GetEmployees(); LINQDev.Common.Contact[] contacts = alemployees.cast<linqdev.hr.employee>().select(e => new LINQDev.Common.Contact Id = e.id, Name = string.format("0 1", e.firstname, e.lastname) ).ToArray<LINQDev.Common.Contact>(); LINQDev.Common.Contact.PublishContacts(contacts); Console.WriteLine(alEmployees.GetType()); Console.WriteLine("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); Console.ReadLine(); namespace LINQDev.HR public class Employee public int id; public string firstname; public string lastname; public static ArrayList GetEmployees() //Oczywiście prawdopodobnie tutaj będzie prawdziwy kod zapytania do bazy danych ArrayList al = new ArrayList(); al.add(new Employee id = 1, firstname = "Piotr", lastname = "Osowski" ); al.add(new Employee id = 2, firstname = "Bartosz", lastname = "Ciwinski" ); al.add(new Employee id = 3, firstname = "Andrzej", lastname = "Smoliak" ); return (al); namespace LINQDev.Common public class Contact public int Id; public string Name; 11

12 public static void PublishContacts(Contact[] contacts) // This publish method just writes them to the console window. foreach (Contact c in contacts) Console.WriteLine("Contact Id: 0 Contact: 1", c.id, c.name); LINQ to XML LINQ to XML to jest interfejs LINQ API przeznaczony dla XML. Klasy i metody są rozlokowane w System.Xml.Linq. Przykład zapytania do XML z wykorzystaniem LINQ to XML pokazany jest w listingu 7. Listing 7. //Listing1_2(); using System; using System.Linq; using System.Xml.Linq; XElement books = <book> <title>bazy danych</title> <author>włodzimierz Khadzhynov</author> </book> <book> <title>pro WF: Windows Workflow in.net 3.0</title> <author>bruce Bukovics</author> </book> <book> <title>pro C# 2005 and the.net 2.0 Platform, Third Edition </title> <author>andrew Troelsen</author> </book> </books>"); var titles = from book in books.elements("book") where (string)book.element("author") == "Włodzimierz Khadzhynov" select book.element("title"); foreach (var title in titles) Console.WriteLine(title.Value); Console.ReadLine(); W tym listingu plik XML jest załadowany do kolekcji obiektów books klasy XElement za dopomogą metody Parse. LINQ to XML pozwoli nie wykorzystać klasę XmlDocument. 12

13 LINQ to SQL. LINQ to SQL pojawił się wraz z Visual studio 2008 i jest to technologia mapująca bazę danych SQL Server do postaci obiektowej, czyli O/RM (object relational mapping) oraz pozwalająca na odpytywanie bazy danych za pomocą składni LINQ. Za pomocą LINQ to SQL w bardzo łatwy sposób można wykonać CRUD (create, read, update, delete) na bazie danych. Na rys.2 jest pokazane w jaki sposób są przekształcone zapytania LINQ na poziomie aplikacji do zapytań serwera SQL. Rys.2 W listingu 6 jest pokazany przykład wykorzystania zapytania LINQ to SQL. Listing 8 1. using System.Linq; 2. using System.Data.Linq; 3. using nwind; //Northwind db = new Northwind(@"Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"); 4. Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); 5. var custs = from c in db.customers where c.city == "London" select c; 6. foreach (var cust in custs) 7. Console.WriteLine("0", cust.companyname); 8. Console.ReadLine(); Tu została dodana w trzeciej linii kodu przestrzeń nazw nwind (linia 3). Ta przestrzeń nazw została zdefiniowana w pliku Nortwind.cs oraz zawiera klasę Northwind (patrz rys. 3). Klasa Northwind dziedziczy klasę DataContext oraz prezentuje całą bazę danych w postaci zbioru klas encyjnych niezbędnych do odwołania do obiektów tabeli bazy danych. 13

14 Rys.3. Generacja klas encyjnych dla LINQ to SQL. Plik Northwind.cs oraz przestrzeń nwind która zawiera klasę DataContext, mogą być stworzone w dwa sposoby: za dopomogą utility SQLMetal lub przez Object Relational Designer. Tworzenie klas encyjnych za dopomogą utility SqlMetal. Utilita SQLMetal jest w składzie DOTNET Framework 3.5 oraz może być wykorzystana tylko dla baz danych MS SQL Server. Przykład uruchomiania SQLMetal jest pokazany na rys.4. Rys.4 Po zakończeniu programu sqlmetal plik northwind.cs trzeba dodać do projektu. Tworzenie klas encyjnych za dopomogą Object Relational Designer. Designer pozwoli tworzyć klasy encyjne przez przeciąganie tablic bazy danych w pole projektu. Dla tworzenia tych klas są potrzebne następne kroki: 14

15 1. Dodać do projektu plik klas LINQ to SQL. Nazwa tego pliku może być dowolną, ale lepiej skojarzyć je z nazwą bazy danych. Po kliknięciu ADD pojawi się puste okno Designera: 2. W oknie Server Explorer trzeba ustalić połączenie z bazą danych: 15

16 3. Trzeba przenieść obiekty bazy danych do pola designera: 4. Prawy panel designera(na rys. niżej) służy dla tworzenia metod kontekstu. Na ten panel można przeciągnąć przechowywane procedury bazy danych: 16

17 Rezultaty tworzenia klas encyjnych będą w pliku mojabaza.dbml oraz w następnych plikach : Informacja o bazie danych klasy DataContext będzie wyznaczona w pliku app.config: Po stworzeniu pliku mojabaza.dbml są stworzone wszystkie klasy tablic bazy danych. To można spojrzeć w oknie browsera obiektów: 17

18 Modyfikacja kolumny w bazie W listingu 9 jest pokazany przykład modyfikacji kolumny w tablice Customer bazy danych Northwind. W linii 18 został stworzony obiekt db klasy DataContext. Głównym przeznaczeniem klasy DataContext jest połączenie z bazą danych. Ta klasa zawiera serwisy dla sprawdzenia dokonanych zmian w bazie danych oraz dla realizacji tych zmian. Oddzielne tablice w bazie danych są właściwościami klasy DataContext, dlatego odwołać się do obiektów reprezentujących tablicę można w sposób pokazany w linii 19: db.customers. Listing using System; 2. using System.Collections.Generic; 3. using System.Data.Linq; 4. using System.Diagnostics; // For the StackTrace. 5. using System.Linq; 6. using System.Text; 7. using nwind; 8. namespace LINQChapter class Program static void Main(string[] args) 13. Listing12_1(); static void Listing12_1() Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); // tworzenie obiektu DataContext. 18

19 Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); // Wywołanie użytkownika LAZYK. 18. Customer cust = (from c in db.customers 19. where c.customerid == "LAZYK" 20. select c).single<customer>(); 21. Console.WriteLine(cust.ContactName); // modyfikacja pola contact name. 22. cust.contactname = "Ned Plimpton"; 23. try 24. // zachowanie zmian. 25. db.submitchanges(); 26. // Detect concurrency conflicts. 27. catch (ChangeConflictException) 28. // Resolve conflicts. 29. db.changeconflicts.resolveall(refreshmode.keepchanges); Console.WriteLine("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); 32. Console.ReadLine(); Wykorzystanie LINQ to SQL dla baz danych można rozpatrywać dla następnych typów operacji z rekordami: Wstawiania Zapytania Modyfikacji Usuwania. Wstawianie danych. Obiekt DataContext odwzorowuje dowolne asocjacje Stworzenie egzemplarzy klasy encyjnej nie jest jeszcze wystarczającym dla ostatecznego wstawiania rekordu do bazy danych. Obiekt encyjny musi być wstawiany do kolekcji tablicy Table<T> (gdzie T typ klasy encyjnej) wszystkich kolekcji tablic kontekstu, lub musi być dodany do kolekcji EntitySet<T> odpowiedniego obiektu encyjnego, zawierającego inne obiekty. Przykład realizacji operacji wstawiania rekordów danych ze wstawianiem do kolekcji tablicy encji bazy danych jest pokazany w listingu 10. Listing using System; 2. using System.Collections.Generic; 3. using System.Data.Linq; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7. using nwind; 8. Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); // 1. Tworzenie the DataContext. 19

20 //Northwind db = new Northwind(@"Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"); 9. Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); 10. // 2. Tworzenie instancji obiektu encyjnego 11. Customer cust = new Customer CustomerID = "LAWN", 14. CompanyName = "Lawn Wranglers", 15. ContactName = "Mr. Abe Henry", 16. ContactTitle = "Owner", 17. Address = "1017 Maple Leaf Way", 18. City = "Ft. Worth", 19. Region = "TX", 20. PostalCode = "76104", 21. Country = "USA", 22. Phone = "(800) MOW-LAWN", 23. Fax = "(800) MOW-LAWO" 24. ; // 3. Dodanie obiektu encyjnego do tabeli Customers. 25. db.customers.insertonsubmit(cust); // 4. Wywołanie metody SubmitChanges (). 26. db.submitchanges(); // 5. Zapytanie recordu. 27. Customer customer = db.customers.where(c => c.customerid == "LAWN").First(); 28. Console.WriteLine("0-1", customer.companyname, customer.contactname); // Ta część kodu odzyskiwa bazę danych od prowadzonych zmian 29. Console.WriteLine("Deleting the added customer LAWN."); 30. db.customers.deleteonsubmit(cust); 31. db.submitchanges();console.writeline("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); 32. Console.ReadLine(); W linii 9 jest stworzony kontekst bazy danych. Baza danych zawiera kolekcji tablic encji. W liniach 11 stworzona jest instancja obiektu customer. W linii 25 instancja obiektu customer została dodana do tablicy Customers za dopomogą metody InsertOnSubmit(). W linii 26 zmiany zostali wprowadzone do bazy danych. W liniach wpisany rekord został ponownie wywołany z bazy danych i oddrukowany na konsoli. W liniach wpisany rekord jest usunięty z bazy. Przypuścimy trzeba dodać instancję obiektu order. Można to z realizować w sposób pokazany w listingu 5 bezpośrednio do obiektu order. Można to zrobić w sposób inny, zwłaszcza można dodać ten obiekt do kolekcji orders wyznaczonej instancji obiektu Customer. W listingu 11 jest pokazany przykład wstawiania rekordu przez kolekcje obiektów skojarzonych z wyznaczonej encją. Listing 11. using System; 1. using System.Collections.Generic; 2. using System.Data.Linq; 3. using System.Diagnostics; // For the StackTrace. 4. using System.Linq; 5. using System.Text; 6. using nwind; 20

21 7. Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); 8. Northwind db = new Northwind(@"server=localhost;uid=sa;pwd=asdf;database=Northwind"); 9. Customer cust = (from c in db.customers where c.customerid == "LONEP" select c).single<customer>(); // Used to query record back out. 10. DateTime now = DateTime.Now; 11. Order order = new Order CustomerID = cust.customerid, EmployeeID = 4, OrderDate = now, RequiredDate = DateTime.Now.AddDays(7), ShipVia = 3, Freight = new Decimal(24.66), ShipName = cust.companyname, ShipAddress = cust.address, ShipCity = cust.city, ShipRegion = cust.region, ShipPostalCode = cust.postalcode, ShipCountry = cust.country ; 12. cust.orders.add(order); 13. db.submitchanges(); 14. IEnumerable<Order> orders = db.orders.where(o => o.customerid == "LONEP" && o.orderdate.value == now); 15. foreach (Order o in orders) Console.WriteLine("0 1", o.orderdate, o.shipname); 18. // This part of the code merely resets the database so the example can be // run more than once. 19. db.orders.deleteonsubmit(order); 20. db.submitchanges(); 21. Console.WriteLine("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); 22. Console.ReadLine(); W linii 9 jest odszukana w bazie danych instancja obiektu customer z identyfikatorem "LONEP".W linii 11 jest stworzona instancja obiektu order. W linii 12 do kolekcji orders obiektu customer została dodana stworzona instancja za dopomogą metody ADD. Wracamy uwagę na to, że dodania do kolekcji Table<T> było za dopomogą metody InsertOnSubmit() (patrz listing 5. Linia 25) oraz do kolekcji EntitySet<T> przez metodę Add(). Pobieranie baz Northwind oraz Pub oraz dołączenie tych baz do MS SQL Server Standardowa instalacja MS SQL Server 2008 nie zawiera przykładowych baz Northwind oraz Pub którzy byli w starszych wersjach MS SQL Server Dla doinstalowania tych baz do MS SQL Server 2005 trzeba realizować następne kroki: 21

22 1.Uruchomić stronę WWW 2.Odszukać rozdział na stronie przeznaczony do pobierania tych baz: 3.Urochomić pokazany wyżej link do strony z zawartością pliku SQL2000SampleDb.msi oraz urochomić proces kopiowania tego pliku. 4. Plik SQL2000SampleDb.msi musi być razarchiwowany na dysku c:\. Po rearchywacji na dysku c: będzie stworzony katalog C:\SQL Server 2000 Sample Databases. W tym katalodzie są pliki instnwnd.sql oraz instpubs.sql: 5. Dla dołączenia pliku bazy danych Northwind (lub Pubs) do MS SQL Server 2005 trzeba kliknąć dwa razy instnwnd.sql (instpubs.sql) dla uruchomienia Sql Management Studio W środowiśku Management Studio zalądować plik instnwnd.sql (instpubs.sql) oraz uruchomić go przez EXECUTE. Plik bazy danych zostanie dołączony do serwera. LINQ to DataSet Korzystając z ADO.NET można prezentować i modyfikować dane z bazy danych. 22

23 Zadania ćwiczeniowe dla studenta 1.LINQ to Object Stwórz program w którym jest zdefiniowana tablica ciągów znaków. W zawartość tej tablicy wpisz nazwiska studentów swojej grupy. Za dopomogą polecenia LINQ to Object wydrukuj wszystkie nazwiska studentów poczynające z wyznaczonej litery. Wskazówka: typowa konstrukcja kodu do wywołania elementu z tablicy ciągów znaków może mieć następny wygląd: IEnumerable<string> items = grupa.where(p => p.startswith("a")); foreach (string item in items) Console.WriteLine(item); 2.LINQ to XML Stwórz plik XML z nazwami przedmiotów oraz wykładowców. Za dopomogą polecenia LINQ to XML wydrukuj przedmioty danego wykładowcy oraz wykładowców skojarzonych z tym przedmiotem. 3.LINQ to SQL z wykorzystaniem SQLMETAL Dołącz bazę danych Northwind do MS SQL Server 2008 Stworz nowy projekt w Visual Studio 2012 Stworz kontekst bazy za dopomogą utility Sqlmetal Dołącz plik kontekstu do projektu Stwórz kod programu do wywołania wszystkich zamowień wyznaczonego klienta Stwórz kod programu do wstawiania nowego zamowienia 4. LINQ to SQL z wykorzystaniem O/R Designera Stworz nowy projekt w Visual Studio 2012 Za dopomogą O/R Designera dołącz niezbędne obiekty Stwórz kod programu do jednoczesnego wstawiania nowego klienta razem z trzema zamowieniami Stwórz kod programu do wywołania wszystkich towarów zamowianych klientem w wyznaczonym zamowieniu 5. Projektowanie zapytań LINQ Technologia LINQ została stworzona, aby ułatwić czytanie kodu, w którym znajdują się kawałki SQL. Dlatego wyrażenia LINQ mają podobna strukturę, co wyrażenie select w SQL. Można między innymi: Wybierać dane na podstawie warunku. Sumować wyniki Wyszukiwać Min i Max Stosować join Grupować dane Sortować dane Poszczególne lekcje odpowiadają określonej grupie zadań. 23

Badanie technologii LINQ

Badanie technologii LINQ WEiI PK Katedra Inżynierii Komputerowej Badanie technologii LINQ Ćwiczenia z przedmiotu Obiektowe bazy danych Włodzimierz Khadzhynov 2010-03-02 Spis treści Wstęp... 3 LINQ to Objects... 3 LINQ to XML...

Bardziej szczegółowo

Podstawowe funkcje dodatku linq w C#

Podstawowe funkcje dodatku linq w C# Podstawowe funkcje dodatku linq w C# 1. Łączenie Tabel Do łączenia dwóch lub więcej tabel wykorzystujemy komendę join. Składnia całego wyrażenia gotowego do wyświetlenia w DataGridView wygląda następująco:

Bardziej szczegółowo

Leszek Stasiak Zastosowanie technologii LINQ w

Leszek Stasiak Zastosowanie technologii LINQ w Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji

Bardziej szczegółowo

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ POLITECHNIKA WROCŁAWSKA KOŁO NAUKOWE KREDEK Laboratorium nr 4 TEMAT ĆWICZENIA Zapoznanie z technologią LINQ Wykonał: Mateusz Woszczyk 155693 Termin: Cz / 19.00 Data wykonania ćwiczenia: 20.11.2011 1. LINQ

Bardziej szczegółowo

Language INtegrated Query (LINQ)

Language INtegrated Query (LINQ) 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:

Bardziej szczegółowo

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Java jest językiem dynamicznym

Bardziej szczegółowo

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

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne. LINQ w Microsoft Visual Basic 'zapytanie pobierające wszystkie liczby z kolekcji 'zmienna zapytanie jest typu: System.Collections.Generic.IEnumerable(Of Integer) Dim zapytanie = From wiersz In liczby 'lub

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki LINQ TO XML Celem ćwiczenia jest zapoznanie się z możliwościami przetwarzania dokumentów XML na platformie.net. W toku zadania zostaną przedstawione dwie technologie: LINQ TO XML i XPath. Autor ćwiczenia:

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

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

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS. Anonco.pl NORTHWIND dwiczenia praktyczne. NORTHWIND ćwiczenia praktyczne KiK s Tutorials Spis treści Część 1. Wprowadzenie 3 Wprowadzenie do SQL Server 3 Rozpoczynamy pracę z SQL Server 4 Część 2. Typy

Bardziej szczegółowo

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Nullable type, null-coalesce,

Bardziej szczegółowo

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium

Bardziej szczegółowo

Podstawy programowania. Podstawy C# Tablice

Podstawy programowania. Podstawy C# Tablice Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej

Bardziej szczegółowo

Wykład 3 Składnia języka C# (cz. 2)

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH

LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH Scientific Bulletin of Che lm Section of Mathematics and Computer Science No. 1/2008 LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH GRZEGORZ WIŚNIEWSKI Państwowa Wyższa Szkoła Zawodowa w Chełmie

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Tworzenie zapytań do Microsoft SQL Server

Tworzenie zapytań do Microsoft SQL Server MS 20461 Tworzenie zapytań do Microsoft SQL Server Czas trwania: 5 dni (40 h) Poziom trudności: Średnio Zaawansowany Autoryzacja: Microsoft Opis: Szkolenie administratorów baz danych oraz programistów

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

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

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop. 2016 Spis treści Spis rysunków 11 Spis tabel 13 Przedmowa 15 Wprowadzenie 17 Podziękowania 27 O autorach 29 1 Wprowadzenie

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Lab.8: Podstawy języka SQL.

Lab.8: Podstawy języka SQL. Lab.8: Podstawy języka SQL. SQL (Structured Query Language) jest językiem zapytań służącym do obsługi relacyjnych baz danych. Współcześnie każdy SZBD posiada własną implementację języka, opartą na wspólnym

Bardziej szczegółowo

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

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB2: TEMAT: Relacyjne bazy danych Cz. I, II Cel laboratorium

Bardziej szczegółowo

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Składowane procedury i funkcje

Składowane procedury i funkcje Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.

Bardziej szczegółowo

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Db4o obiektowa baza danych wersja.net

Db4o obiektowa baza danych wersja.net Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala

Bardziej szczegółowo

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders.

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders. SQL I Wybieranie danych z pojedynczej tabeli Baza NORTHWIND 1. Wybierz nazwy i adresy wszystkich klientów select CompanyName,Address from Customers 2. Wybierz nazwiska i numery telefonów pracowników select

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

PL/SQL. Zaawansowane tematy PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD

Bardziej szczegółowo

Transakcje inf. podstawowe

Transakcje inf. podstawowe Transakcje inf. podstawowe! Rozpoczęcie transakcji " Explicit " Autocommit! Zakończenie transakcji " COMMIT " ROLLBACK " Implicit BEGIN TRANSACTION UPDATE savings... UPDATE checking... COMMIT TRANSACTION

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

Zapytania do bazy danych

Zapytania do bazy danych Zapytania do bazy danych Tworzenie zapytań do bazy danych MS Access może być realizowane na dwa sposoby. Standard SQL (Stucture Query Language) lub QBE (Query by Example). Warto wiedzieć, że drugi ze sposobów

Bardziej szczegółowo

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA LABORATORIUM SYSTEMÓW MOBILNYCH STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA DANYCH Z PLIKÓW MIF, SHP I ICH KONWERSJI DO POSTACI RELACYJNEJ I. Temat ćwiczenia Stworzenie biblioteki słuŝącej do wczytywania

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Baza danych Northwind. Baza danych firmy sprzedającej artykuły spożywcze Informacje o towarach, dostawcach, klientach, zamówieniach klientów itp.

Baza danych Northwind. Baza danych firmy sprzedającej artykuły spożywcze Informacje o towarach, dostawcach, klientach, zamówieniach klientów itp. Baza danych Northwind Baza danych firmy sprzedającej artykuły spożywcze Informacje o towarach, dostawcach, klientach, zamówieniach klientów itp. Baza danych Northwind cd.. Podstawowe tabele: Categories

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

Bazy danych Ćwiczenia projektowe

Bazy danych Ćwiczenia projektowe Bazy danych Ćwiczenia projektowe Przygotował: Piotr Hajder Katedra Informatyki Stosowanej i Modelowania Wydział Inżynierii Metali i Informatyki Przemysłowej, AGH Agenda 01. Powtórka 02. Interfejs CRUD

Bardziej szczegółowo

Instrukcja laboratoryjna

Instrukcja laboratoryjna Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Plan. Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel

Plan. Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel Plan Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel Przykładowa baza Joindb Joindb Database Diagram Sales PK Produce prod_id prod_name FK FK2 buyer_id prod_id

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Optymalizacja poleceń SQL Metody dostępu do danych

Optymalizacja poleceń SQL Metody dostępu do danych Optymalizacja poleceń SQL Metody dostępu do danych 1 Metody dostępu do danych Określają, w jaki sposób dane polecenia SQL są odczytywane z miejsca ich fizycznej lokalizacji. Dostęp do tabeli: pełne przeglądnięcie,

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja 1 struktura, kolekcja Kiedy potrzebne Duża liczba danych takiego samego typu tablice a jak nieznana liczba elementów? dane zawierające wartości różnego typu (osoba: pesel, nazwisko, rok urodzenia, pracuje/niepracuje,

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z

Bardziej szczegółowo

5.5. Wybieranie informacji z bazy

5.5. Wybieranie informacji z bazy 5.5. Wybieranie informacji z bazy Baza danych to ogromny zbiór informacji, szczególnie jeśli jest odpowiedzialna za przechowywanie danych ogromnych firm lub korporacji. Posiadając tysiące rekordów trudno

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

Kostki OLAP i język MDX

Kostki OLAP i język MDX Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo

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

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

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

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo