Programowanie Obiektowe Java

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

Download "Programowanie Obiektowe Java"

Transkrypt

1 Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej

2 Bazy danych DBMS H2 SQL JDBC 2/128

3 Bazy danych za: Wikipedia Baza danych = zbiór danych zapisanych zgodnie z określonymi regułami. W szerszym znaczeniu będzie obejmować np. księżkę telefoniczną. W węższym (dla nas interesującym) znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego specjalizowanego do gromadzenia i przetwarzania tych danych. Program taki nazywany jest systemem zarządzania bazą danych (ang. database management system, DBMS). 3/128

4 Bazy danych Rodzaje baz danych (wg. struktur organizacji danych) Bazy proste: kartotekowe hierarchiczne Bazy złożone: relacyjne obiektowe relacyjno-obiektowe strumieniowe temporalne nierelacyjne (NoSQL) 4/128

5 Bazy danych Rodzaje baz danych (wg. struktur organizacji danych) Bazy proste: kartotekowe hierarchiczne Bazy złożone: Najczęściej używane bazy danych: RELACYJNE relacyjne obiektowe relacyjno-obiektowe strumieniowe temporalne nierelacyjne (NoSQL) 5/128

6 Bazy danych Relacyjne bazy danych w modelu relacyjnym dane grupowane są w relacje, które reprezentowane są przez tablice 6/128

7 Bazy danych Relacyjne bazy danych media/file:relational_model_concepts_pl.png 7/128

8 Bazy danych Relacyjne bazy danych w modelu relacyjnym dane grupowane są w relacje, które reprezentowane są przez tablice relacje są pewnym zbiorem rekordów o identycznej strukturze wewnętrznie powiązanych za pomocą związków zachodzących pomiędzy danymi związki pomiędzy relacjami zapewniają integralność referencyjną danych i pozwalają modelować odpowiednią logikę naszej struktury 8/128

9 Bazy danych Relacyjne bazy danych Więcej informacji: związki pomiędzy relacjami zapewniają integralność referencyjną danych i pozwalają modelować odpowiednią logikę naszej struktury 9/128

10 Relacyjne bazy danych Najważniejsze w modelu relacyjnym dane grupowane są w relacje, które reprezentowane są przez tablice osoby Id imie 1 Małgorzata Janik Helena Nowak 1984 nazwisko data_urodzenia 10/128

11 Bazy danych System zarządzania bazą danych, (ang. Database Management System, DBMS) oprogramowanie bądź system informatyczny służący do zarządzania bazą danych (czyli zbiorem danych z określonymi regułami). System zarządzania bazą danych może być również serwerem bazy danych lub może udostępniać bazę danych lokalnie na określonym komputerze. 11/128

12 Bazy danych Photo by: Selmer van Alten Mamy np. wspomnianą książkę telefoniczną Chcemy ją zapisać w postaci cyfrowej Co robimy? 12/128

13 Bazy danych Co robimy? Photo by: Selmer van Alten Ustalamy rodzaj bazy danych, w jakiej chcemy ją zapisać. Bazy proste: kartotekowe hierarchiczne Bazy złożone: relacyjne obiektowe relacyjno-obiektowe strumieniowe temporalne nierelacyjne (NoSQL) 13/128

14 Bazy danych Co robimy? Photo by: Selmer van Alten Ustalamy rodzaj bazy danych, w jakiej chcemy ją zapisać. Łatwe, Łatwe, relacyjna. 14/128

15 Bazy danych Co robimy? Photo by: Selmer van Alten Ustalamy rodzaj bazy danych, w jakiej chcemy ją zapisać. Łatwe, Łatwe, relacyjna. Ustalamy jakiego DBMS będziemy używać. 15/128

16 Bazy danych Co robimy? Photo by: Selmer van Alten Ustalamy rodzaj bazy danych, w jakiej chcemy ją zapisać. Łatwe, Łatwe, relacyjna. Ustalamy jakiego DBMS będziemy używać. Łatwe, Popularne możliwości: 16/128

17 Bazy danych Co robimy? Photo by: Selmer van Alten Ustalamy rodzaj bazy danych, w jakiej chcemy ją zapisać. Łatwe, Łatwe, relacyjna. Ustalamy jakiego DBMS będziemy używać. Łatwe, Popularne możliwości: Łatwe, Bądź inne, dopasowane do naszych potrzeb : na 345 możliwych Programowanie Obiektowe (Wykład) 17/128

18 Baza danych H2 18/128

19 Baza danych H2 Zalety: Mieści się w jednym pliku jar (w tym pliku mieści się serwer, a nie tylko klient). Dobry wybór do małych aplikacji (np. w Swingu) które chcą korzystać z funkcjonalności dostępu do bazy danych, a nie chcą zmuszać użytkownika do instalacji serwera. 19/128

20 Baza danych H2 20/128

21 Bazy danych Co robimy? Photo by: Selmer van Alten Ustalamy rodzaj bazy danych, w jakiej chcemy ją zapisać. Łatwe, Łatwe, relacyjna. Ustalamy jakiego DBMS będziemy używać. Łatwe, Np. H2. Tworzymy w DBMS wszystkie potrzebne tabele i wypełniamy je. Łatwe, Jak? Musimy się jakoś skomunikować z naszą bazą danych. Najbardziej popularnym językiem do komunikacji jest SQL. 21/128

22 Język SQL SQL, ang. Structured Query Language, jest językiem pozwalającym na modyfikację relacyjnych baz danych i umożliwia dostęp do nich. SQL został standardem American National Standards Institute (ANSI) w 1986, oraz International Organization for Standardization (ISO) w Mimo standardów, pomiędzy różnymi DBMS występują pewne różnice w użyciu SQL. Wszystkie bazy danych mają własne dialekty SQL, więc tekst zapytań będzie różnić się dla różnych baz danych. To powoduje, że bazy danych są bardzo słabo przenośne. Zawsze musimy pisać kod pod konkretny typ bazy danych. Podstawy SQL właściwie wszędzie są takie same. 22/128

23 Język SQL Język SQL pozwala na zarządzanie bazą danych, między innymi poprzez: - tworzenie nowych tabel - dodawanie danych do tabel - modyfikację danych zawartych w tabelach - modyfikację struktury tabel - usuwanie danych z tabel - oraz usuwanie całych tabel - pobieranie danych z tabel 23/128

24 Język SQL Podstawowe właściwości: - wielkość liter nie ma znaczenia - polecenia w językach baz danych nazywamy zapytaniami lub kwerendami (ang. query). dlatego SQL nazywany jest też językiem zapytań (ang. query language) - każde zapytanie kończy się średnikiem ( ; ) 24/128

25 Język SQL Przykładowy skrypt (przykłady zapytań) Usuń tabelę (jeśli istnieje) DROP TABLE IF EXISTS TEST; Stwórz nową tabelę z kolumnami ID i NAME CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255)); Dodaj nowy wiersz INSERT INTO TEST VALUES(1, 'Hello'); Dodaj kolejny wiersz INSERT INTO TEST VALUES(2, 'World'); Wypisz tabelę SELECT * FROM TEST ORDER BY ID; Zmień zawartość wiersza UPDATE TEST SET NAME='Hi' WHERE ID=1; Usuń wiersz DELETE FROM TEST WHERE ID=2; 25/128

26 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE Składnia: CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype,... ); Typ kolumny (przykłady): int date / datetime float varchar(255) 26/128

27 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE Przykład: CREATE TABLE pracownik ( int id, varchar(100) imie, varchar(100) nazwisko ); id imie nazwisko 1 Jan Kowalski 2 Zofia Kwiatkowska 27/128

28 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE Składnia: CREATE TABLE table_name ( column1 datatype not null, column2 datatype, column3 datatype,. PRIMARY KEY (column1) ); Klucz podstawowy (PRIMARY KEY): Tabelę należy tworzyć w ten sposób, by zawsze móc jednoznacznie odwołać się do każdego z rekordów. Klucz podstawowy określa taką jednoznaczną wartość (zestaw wartości) po którym możemy każdy wiersz rozróżnić. Każda tabela ma tylko jeden klucz, który nie może być NULL. 28/128

29 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE Składnia: CREATE TABLE table_name ( column1 datatype PRIMARY KEY, column2 datatype, column3 datatype,. ); Klucz podstawowy (PRIMARY KEY): Tabelę należy tworzyć w ten sposób, by zawsze móc jednoznacznie odwołać się do każdego z rekordów. Klucz podstawowy określa taką jednoznaczną wartość (zestaw wartości) po którym możemy każdy wiersz rozróżnić. Każda tabela ma tylko jeden klucz, który nie może być NULL. 29/128

30 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE Składnia: CREATE TABLE table_name ( int id not null auto_increment, column2 datatype, column3 datatype,. PRIMARY KEY (column1) ); Automatyczne przypisywanie: auto_increment pozwala na automatyczne wpisywanie pól typu id : pierwszą wartością będzie 1, każda następna będzie poprzednia+1 30/128

31 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE Składnia: CREATE TABLE table_name ( int id not null auto_increment, column2 datatype default wartość, column3 datatype,. PRIMARY KEY (column1) ); default Pozwala na ustawienie domyślnej wartości dla danej kolumny. Jeśli dodając nowy rekord nie ustalimy innej wartości, zostanie przypisana ta, którą określa default. 31/128

32 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE DROP TABLE IF EXISTS `waluty`; Jeśli już istnieje tabela o nazwie waluty to ją usuń. CREATE TABLE `waluty` ( `Id` int unsigned NOT NULL auto_increment, `data` date default GETDATE(), `USD` float default NULL, `EUR` float default NULL, `GBP` float default 0, PRIMARY KEY (`Id`) ) ; Stwórz tabelę waluty z następującymji kolumnami: Id, data, USD EUR, GBP 32/128

33 Język SQL tworzenie przykładowej tabeli Tworzenie tabeli: CREATE TABLE DROP Typ kolumny: TABLE int IF EXISTS date float `waluty`; CREATE TABLE `waluty` ( `Id` int unsigned NOT NULL auto_increment, `data` date default GETDATE(), `USD` float default NULL, getdate() `EUR` float default NULL, funkcja zwracająca `GBP` float default 0, obecną datę PRIMARY KEY (`Id`) ) ; Kluczem podstawowym jest automatycznie inkrementowane Id. 33/128

34 Język SQL tworzenie przykładowej tabeli waluty Id data USD EUR GPB 34/128

35 Język SQL tworzenie przykładowej tabeli osoby Id imie 1 Małgorzata Janik Helena Nowak 1984 nazwisko data_urodzenia 35/128

36 Język SQL tworzenie przykładowej tabeli osoby create table osoby + drop if exists Id imie 1 Małgorzata Janik Helena Nowak 1984 nazwisko data_urodzenia 36/128

37 Język SQL tworzenie przykładowej tabeli osoby create table osoby + drop if exists Id imie nazwisko data_urodzenia 1 Małgorzata Janik Helena Nowak 1984 Primary key NOT NULL auto_increment 37/128

38 Język SQL tworzenie przykładowej tabeli osoby create table osoby + drop if exists Id imie 1 Małgorzata Janik Helena Nowak 1984 Primary key NOT NULL auto_increment nazwisko data_urodzenia Id int unsigned Imie - varchar(20) Nazwisko - varchar(40) data_urodzenia - date 38/128

39 Język SQL tworzenie przykładowej tabeli osoby create table osoby + drop if exists Id imie nazwisko data_urodzenia 1 Małgorzata Janik Helena Nowak 1984 domyślnie NULL Primary key NOT NULL auto_increment Id int unsigned Imie - varchar(20) Nazwisko - varchar(40) data_urodzenia - date 39/128

40 Język SQL tworzenie przykładowej tabeli DROP TABLE IF EXISTS `Osoby`; CREATE TABLE `Osoby` ( `Id` int(6) unsigned NOT NULL auto_increment, `imie` varchar(20), `nazwisko` varchar(40), `data_urodzenia` date default NULL, PRIMARY KEY (`Id`) ) ; 40/128

41 Język SQL dodawanie danych Tworzenie tabeli: INSERT INTO Składnia: Jeśli pilnujemy kolejności kolumn: INSERT INTO table_name VALUES (value1, value2, value3,...); Niezależnie od kolejności: INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...); 41/128

42 Język SQL dodawanie danych INSERT INTO `waluty` VALUES (1, ,4.1171,4.165,6.6576); INSERT INTO `waluty` (`Id`,`data`,`USD`,`EUR`,`GBP`) VALUES (2,' ',4.1267,4.2232,6.7571); INSERT INTO `waluty` (`data`,`usd`,`eur`,`gbp`) VALUES (' ',4.1299,4.2797,6.776); INSERT INTO waluty (data,usd) VALUES (' ,4.1129); Id data USD EUR GPB Pozostałe pola zostaną wypełnione automatycznie (auto_increment) bądź będą miały wartość NULL. 42/128

43 Język SQL komenda SELECT SELECT column1, column2,... FROM table_name [WHERE condition] [ORDER BY o_column] gdzie: column1, column2,... to nazwy kolumn, których zawartość ma być wyświetlona jako wynik zapytania table_name to nazwa tabeli, z której pobierane są dane condition to warunek jaki muszą spełniać wiersze tabeli, aby zostać wyświetlone o_column to kolumna, wg. której mają być posortowane wyniki zapytania 43/128

44 Język SQL komenda SELECT Chcąc pobrać wszystkie kolumny z tabeli zamiast wypisywać ich nazwy można użyć * (gwiazdka), np.. komenda: SELECT * FROM osoby; zwróci wszystkie kolumny z tabeli osoby. Parametry [WHERE condition] oraz [ORDER BY o_column] są opcjonalne. 44/128

45 Język SQL komenda SELECT Załóżmy, że tabela osoby zawiera trzy kolumny: imie, nazwisko oraz wiek. W takim przypadku komenda: SELECT imie FROM osoby WHERE wiek = 18; zwróci imiona osób, które mają 18 lat. SELECT nazwisko, imie FROM osoby ORDER BY wiek; zwróci nazwiska i imiona wszystkich osób z tabeli, posortowane według wieku. SELECT nazwisko, imie FROM osoby ORDER BY nazwisko DESC; zwróci nazwiska i imiona wszystkich osób z tabeli, posortowane alfabetycznie według nazwisk, w odwróconej kolejności od Z do A (modyfikator DESC sprawia, że kolejność sortowania jest odwócona) 45/128

46 Język SQL komenda SELECT W warunkach występujących po WHERE można stosować: operatory porównania =, >=, > itp. operatory logiczne AND i OR do porównywania łańcuchów można stosować polecenie LIKE akceptujące wzorce napisów, w których znak _ zastępuje dowolną literę, zaś znak % zastępuje dowolny ciąg znaków SELECT * FROM osoby WHERE nazwisko LIKE 'A%'; zwróci wszystkie dane osób, których nazwisko rozpoczyna się na literę A. W "warunkach" można używać również operatora BETWEEN, który pozwala wybierać dane z określonego zakresu, np.: SELECT * FROM osoby WHERE wiek BETWEEN 18 AND 30; zwróci rekordy z osobami o wieku od 18 do 30 lat. Jest to równoważne z zapisem: SELECT * FROM osoby WHERE wiek > 18 AND wiek < 30; 46/128

47 Język SQL komenda UPDATE Zmiana wierszy tabeli: UPDATE Składnia: UPDATE table_name SET column1 = value1, column2 = value2,... WHERE condition ); 47/128

48 Język SQL komenda UPDATE Zmiana wierszy tabeli: UPDATE Przykład: UPDATE Osoby SET imie = Katarzyna, nazwisko = Kwiatkowska WHERE id=2; ); 48/128

49 Język SQL komenda DELETE Usuwanie wierszy tabeli: DELETE FROM Składnia: DELETE FROM table_name WHERE condition ; Przykład: DELETE FROM OSOBY WHERE imie = Malgorzata ; Usunie wszystkie Małgorzaty z tabeli OSOBY 49/128

50 H2 umożliwia łączenie się z bazą z panelu kontrolnego z poziomu przeglądarki Wystarczy po instalacji odpalić program H2 Console, wtedy pojawią się następujące okienka: (plik z bazą musi być w katalogu domowym użytkownika) 50/128

51 51/128

52 Java i bazy danych Mamy już język porozumiewania się z bazą danych (SQL)....ale przecież chcąc porozumiewać się z bazą danych nie będziemy za każdym razem wpisywać komend w konsoli. Zwykle chcemy, by nasz program w wyniku np. naciśnięcia przycisku pobierał dane / odpowiednio modyfikował bazę danych. Chcielibyśmy więc bezpośrednio z poziomu kodu Javy wysyłać do bazy danych odpowiednie instrukcje. 52/128

53 Java DataBase Connectivity JDBC, ang. Java DataBase Connectivity, to biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za pomocą języka SQL. Interfejs ten operuje na poziomie typowego dla baz danych języka SQL i pozwala w prosty sposób konstruować zapytania do bazy danych oraz wykorzystywać ich wyniki w kodzie Javy. Środowisko Java zawiera API JDBC, natomiast użytkownik musi dodatkowo uzyskać sterownik JDBC dedykowany do swojej bazy danych. 53/128

54 JDBC ogólna zasada wykorzystania 1. Uzyskanie połączenia ze źródłem danych 2. Wykonywanie operacji na bazie danych (przekazywanie poleceń w postaci kwerend SQL) 3. Przetwarzanie danych pobranych z bazy w efekcie wykonania kwerend 54/128

55 JDBC ogólna zasada wykorzystania // Łączenie z bazą: Connection con = DriverManager.getConnection( "jdbc:mydriver:mydatabase", username, password); // Wykonywanie kwerendy: Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( "SELECT a, b, c FROM Table1"); // Przetwarzanie pobranych danych while (rs.next()) { int x = rs.getint("a"); String s = rs.getstring("b"); float f = rs.getfloat("c"); } 55/128

56 JDBC ogólna zasada wykorzystania // Łączenie z bazą: Connection con = DriverManager.getConnection( "jdbc:mydriver:mydatabase", username, password); H2: // Wykonywanie kwerendy: "jdbc:h2:nazwabazy", Statement stmt = con.createstatement(); username, ResultSet rs = stmt.executequery( Jeśli baza danych nie istnieje, password "SELECT a, b, c FROM Table1"); to próba podłączenia spowoduje // Przetwarzanie pobranych danych utworzenie nowej pustej bazy while (rs.next()) { (w postaci pliku *.db). int x = rs.getint("a"); String s = rs.getstring("b"); float f = rs.getfloat("c"); MySQL: } "jdbc:mysql://localhost/nazwabazy? user=username&password=password 56/128

57 Tworzenie bazy z poziomu JAVY TworzenieBazy.java Program otwiera / tworzy bazę danych H2 o nazwie nazwabazy nazwa użytkownika to sa domyślnie bez hasła conn = DriverManager.getConnection("jdbc:h2:nazwabazy", "sa", ""); // domyslnie nazwa uzytkownika to "sa" a dostep jest bez hasla - "" // Proba podlaczenia do bazy H2, ktora nie istnieje // domyslnie powoduje utworzenie nowej instancji pustej bazy // (w postaci pliku z rozszerzeniem *.db, np. nazwabazy.h2.db) // Dymyslne tworzenie pustej bazy danych czasem moze generowac bledy, // dlatego mozliwe jest wylaczenie domyslnego tworzenia pustej bazy // conn = DriverManager.getConnection("jdbc:h2:nazwabazy5;IFEXISTS=TRUE", "sa", ""); 57/128

58 JDBC ogólna zasada wykorzystania // Łączenie z bazą: Connection con = DriverManager.getConnection( "jdbc:mydriver:mydatabase", username, password); // Wykonywanie kwerendy: Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( "SELECT a, b, c FROM Table1"); // Przetwarzanie pobranych danych Query = while (rs.next()) { Zapytanie, Kwerenda int x = rs.getint("a"); String s = rs.getstring("b"); float f = rs.getfloat("c"); } 58/128

59 JDBC ogólna zasada wykorzystania // Łączenie z bazą: Connection con = DriverManager.getConnection( "jdbc:mydriver:mydatabase", username, password); // Wykonywanie kwerendy: Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( "SELECT a, b, c FROM Table1"); // Przetwarzanie pobranych danych Język SQL while (rs.next()) { int x = rs.getint("a"); String s = rs.getstring("b"); float f = rs.getfloat("c"); } 59/128

60 Operacje na bazie z poziomu JAVY Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery("select * FROM Tab1"); Trzy podstawowe metody wywołania kwerend: stmt.executequery(...), stmt.executeupdate(...), stmt.execute(...) Różnią się to sposobem przekazywania wyniku. W pierwszym przypadku otrzymamy wynik w postaci tabeli (wynik zapytania). ExecuteQuery stosuje się zazwyczaj do zapytań typu SELECT... W drugim przypadku otrzymamy ilość pomyślnie przeprowadzonych zmian w bazie. Update stosuje się zazwyczaj do zapytań typu CREATE TABLE... lub INSERT... Trzecia opcja jest uogólnieniem dwóch poprzednich. Zwraca wynik, z tym, że to użytkownik musi sprawdzić jaki wynik otrzymał. 60/128

61 Execute //Wyswietlanie calej tabeli: statement.execute("select * FROM waluty"); //Ograniczenie do 10 pierwszych rekordow statement.execute("select * FROM waluty limit 10" ); // Przykladowe kwerendy z dodatkwoym warunkiem: statement.execute("select * FROM waluty where data < ' '"); statement.execute("select * FROM waluty where usd > 4.50"); statement.execute("select * FROM waluty where usd > 4.50 and eur < 3.83"); 61/128

62 TworzenieTabeli.java Program tworzy tabelę waluty i wypełnia przykładowymi wartościami. Statement statement = conn.createstatement(); // Usuwanie tabeli jeśli już istnieje // kolejne uruchomienie przykladu nie wygeneruje bledu: statement.executeupdate("drop TABLE IF EXISTS `waluty`;"); // Tworzenie tabeli o okreslonej strukturze danych statement.executeupdate("create TABLE `waluty` ("+ "`Id` int(6) unsigned NOT NULL auto_increment,"+ "`data` date default NULL,"+ "`USD` float default NULL,"+ "`EUR` float default NULL,"+ "`GBP` float default NULL,"+ "PRIMARY KEY (`Id`)"+ ") ;"); 62/128

63 TworzenieTabeli.java Dodawanie danych do tabeli: statement.executeupdate("insert INTO `waluty` (`Id`,`data`,`USD`,`EUR`,`GBP`) VALUES (1,' ',4.1171,4.165,6.6576);"); // Przykladowe rownowazne polecenia SQL: statement.executeupdate("insert INTO `waluty` VALUES (1,' ',4.1171,4.165,6.6576);"); statement.executeupdate("insert INTO `waluty` (`data`,`usd`,`eur`,`gbp`) VALUES (' , , 4.165, );"); statement.executeupdate("insert INTO waluty VALUES (1,' ',4.1171,4.165,6.6576);"); statement.executeupdate("insert INTO waluty (Id,data,USD,EUR,GBP) VALUES (1,' ',4.1171,4.165,6.6576);"); 63/128

64 Prepared Statement Zamiast interfejsu Statement, w którym wykorzystujemy dokładną (statyczną) treść kodu SQL, można wykorzystać typ PreparedStatement, który pozwala na parametryzację. Użycie prekompilowanych komend jest wygodne, jeśli wywołujemy wiele podobnych komend na różnych argumentach, lub kiedy chcemy pobrać poszczególne wartości od użytkownika. PreparedStatement prep = conn.preparestatement ("INSERT into waluty(data, usd, eur, gbp) values (?,?,?,?)"); prep.setstring(1, " "); prep.setstring(2, "4.1171"); prep.setstring(3, "4.165"); prep.setstring(4, "6.6576"); prep.executeupdate(); Co jest równoważne: 64/128

65 Prepared Statement dodatkowa funkcjonalność Wyobraźmy sobie aplikację, do której użytkownik się loguje. Użytkownik podaje login ( name ) i hasło ( password ) a następnie uruchamiane jest zapytanie: statement.execute("select COUNT(*) FROM users WHERE name=" + name + "AND password=" + password); ResultSet rs = statement.getresultset(); rs.next(); if (rs.getint(1) == 0){ //niezalogowany } A użytkownik wpisuje jako login: 65/128

66 Prepared Statement dodatkowa funkcjonalność Wyobraźmy sobie aplikację, do której użytkownik się loguje. Użytkownik podaje login ( name ) i hasło ( password ) a następnie uruchamiane jest zapytanie: statement.execute("select COUNT(*) FROM users WHERE name=" + name + "AND password=" + password); ResultSet rs = statement.getresultset(); rs.next(); if (rs.getint(1) == 0){ //niezalogowany } A użytkownik wpisuje jako login: "; DROP TABLE users; --" drop table users; 66/128

67 Prepared Statement dodatkowa funkcjonalność A użytkownik wpisuje jako login: "; DROP TABLE users; --" Czyli baza danych dostaje zapytanie: SELECT COUNT(*) FROM users WHERE name=; DROP TABLE users; 67/128

68 Prepared Statement dodatkowa funkcjonalność A użytkownik wpisuje jako login: "; DROP TABLE users; --" Czyli baza danych dostaje zapytanie: Zwróci informacje o błędzie. SELECT COUNT(*) FROM users WHERE name=; DROP TABLE users; Usunie tabelę users. 68/128

69 "; DROP TABLE users; --" SELECT COUNT(*) FROM users WHERE name=; DROP TABLE users; Usunie tabelę users. 69/128

70 Prepared Statement Jeśli chcemy pobierać wartości od użytkownika to nigdy, nigdy NIGDY nie tworzymy zapytań SQL z dodawania takich ciągów znaków. Należy używać polecenia PreparedStatement które zapewni, by podane przez użytkownika wartości nigdy nie zostanały ziterpretowane jako samodzielne polecenia SQL. 70/128

71 TworzenieTabeli.java Dodawanie danych do tabeli: // Rownowazne wywolanie z wykorzystaniem PreparedStatement PreparedStatement prep = conn.preparestatement ("INSERT into waluty(data, usd, eur, gbp) values (?,?,?,?)"); prep.setstring(1, " "); prep.setstring(2, textboxusd.text); prep.setstring(3, textboxeur.text); prep.setstring(4, textboxgbp.text); prep.executeupdate(); Używając PreparedStatement możemy bezpiecznie brać dane od użytkownika. 71/128

72 JDBC ogólna zasada wykorzystania // Łączenie z bazą: Connection con = DriverManager.getConnection( "jdbc:mydriver:mydatabase", username, password); // Wykonywanie kwerendy: Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( "SELECT a, b, c FROM Table1"); // Przetwarzanie pobranych danych while (rs.next()) { int x = rs.getint("a"); String s = rs.getstring("b"); float f = rs.getfloat("c"); } 72/128

73 ResultSet Wyniki wykonanej kwerendy dostępne są w obiekcie klasy ResultSet. ResultSet zawiera linie (rekordy) z wyniku wykonanej operacji. Początkowo jest ustawiony przed pierwszą linią. Aby przesunąć go na następna linijkę i przy okazji sprawdzić, czy jest więcej wyników, wykorzystuje się metodę next(). 73/128

74 ResultSet, ResultSetMetaData ResultSet rs = statement.getresultset(); ResultSetMetaData md = rs.getmetadata(); //wyswietlanie nazw kolumn: for (int ii = 1; ii <= md.getcolumncount(); ii++){ System.out.print(md.getColumnName(ii)+ " "); } System.out.println(); // wyswietlanie poszczegolnych wierszy while (rs.next()) { for (int ii = 1; ii <= md.getcolumncount(); ii++){ System.out.print( rs.getobject(ii) + " "); } System.out.println(); } 74/128

75 WypisywanieTabeli.java //Wyswietlanie calej tabeli: statement.execute("select * FROM waluty"); //Ograniczenie do 10 pierwszych rekordow statement.execute("select * FROM waluty limit 10" ); // Przykladowe kwerendy z dodatkwoym warunkiem: statement.execute("select * FROM waluty where data < ' '"); statement.execute("select * FROM waluty where usd > 4.50"); statement.execute("select * FROM waluty where usd > 4.50 and eur < 3.83"); Jeśli chcemy wyświetlić wynik z każdego statement, to po każdym execute musimy wyciągnąć ResultSet. 75/128

76 WypisywanieTabeli.java 76/128

77 QUIZ 77/128

78 Czym jest? DBMS H2 SQL JDBC Język zapytań System zarządzania bazą danych Biblioteka umożliwiająca łączenie się z bazą danych za pomocą Javy Baza danych 78/128

79 Czym jest? DBMS H2 SQL JDBC Język zapytań do porozumiewania się z bazą danych System zarządzania bazą danych (np. MySQL, Oracle, H2) Biblioteka umożliwiająca łączenie się z bazą danych za pomocą Javy Baza danych (przykład DBMS) 79/128

80 Czym jest? Kwerenda (query) Krotka (tuple) Relacja Klucz podstawowy Tabela Wiersz z tabeli (uporządkowany ciąg wartości) Zapytanie mające na celu np. pobranie danych, usuwanie, modyfikację. Minimalny zestaw atrybutów jednoznacznie identyfikujący każdą krotkę 80/128

81 Czym jest? Kwerenda (query) Krotka (tuple) Relacja Klucz podstawowy Tabela Wiersz z tabeli (uporządkowany ciąg wartości) Zapytanie mające na celu np. pobranie danych, usuwanie, modyfikację. Minimalny zestaw atrybutów jednoznacznie identyfikujący każdą krotkę 81/128

82 Do czego służy? INSERT INTO SELECT * FROM DROP TABLE CREATE TABLE UPDATE 82/128

83 Do czego służy? INSERT INTO SELECT * FROM DROP TABLE CREATE TABLE UPDATE Dodanie wiersza do tabeli Wyciągnięcie danych z bazy danych Usunięcie tabeli Stworzenie tabeli Modyfikacja wiersza tabeli 83/128

84 Dziękuję za Uwagę! To już ostatni wykład. Dziękuję wszystkim za uczestnictwo i powodzenia na laboratoriach! 84/128

85 Informacje dodatkowe 85/128

86 Nomenklatura obiektów w różnych terminologiach Teoria relacyjna Model ER (EntityRelationship) Relacyjne bazy Aplikacje Relacja Encja Tabela Klasa Krotka Instancja Wiersz Instancja klasy (obiekt) Atrybut Atrybut Kolumna Właściwość, atrybut Dziedzina Dziedzina/typ Typ danych Typ danych 86/128

87 Struktura JDBC 87/128

88 Klasy i interfejsy JDBC 88/128

Programowanie Obiektowe Java

Programowanie Obiektowe Java Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej malgorzata.janik@pw.edu.pl http://java.fizyka.pw.edu.pl/ Bazy danych DBMS H2 SQL JDBC Bazy Danych za: Wikipedia Baza danych = zbiór

Bardziej szczegółowo

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Wprowadzenie do JDBC z wykorzystaniem bazy H2 Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za

Bardziej szczegółowo

Programowanie Obiektowe Java

Programowanie Obiektowe Java Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej malgorzata.janik@pw.edu.pl http://java.fizyka.pw.edu.pl/ Bazy danych DBMS H2 SQL JDBC 2/128 Bazy danych za: Wikipedia Baza danych =

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

Ć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

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

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

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

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

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

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

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

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

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html JAVA I BAZY DANYCH ZAGADNIENIA: wprowadzenie; JDBC; komunikacja z bazą danych; HSQLDB. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Bazy danych. Polecenia SQL

Bazy danych. Polecenia SQL Bazy danych Baza danych, to miejsce przechowywania danych. Dane w bazie danych są podzielone na tabele. Tabele składają się ze ściśle określonych pól i rekordów. Każde pole w rekordzie ma ściśle ustalony

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

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

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

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

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

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2014 1 / 16 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_danych_i_usługi_sieciowe_-_2014z

Bardziej szczegółowo

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli 1. Tworzenie tabeli Aby stworzyć tabele w SQL-u należy użyć polecenia CREATE TABLE nazwa_tabeli (nazwa_pola1 właściwości_pola1, nazwa_pola2 właściwości_pola2, itd.) Nazwa_tabeli to wybrana przez nas nazwa

Bardziej szczegółowo

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL Tutorial PostgreSQL 1. Instalacja na własnym komputerze: a. Zainstaluj program ze strony: https://www.postgresql.org/download/ Wersja odpowiednia dla systemu operacyjnego Linux, Mac, Windows Przy pierwszym

Bardziej szczegółowo

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; Zestaw ćwiczeń1 Dzięki DDL (Data Definition Language) można operować na strukturach, w których dane są przechowywane czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy

Bardziej szczegółowo

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

Bardziej szczegółowo

Kurs. Podstawy MySQL

Kurs. Podstawy MySQL Kurs Podstawy MySQL Krótkie info. Autorem kursu jest Piotr Jędrusik. Kurs jest własnością serwisu MySQL FAQ www.mysqlfaq.prv.pl, email: mysqlfaq@twister.pl. 1. Tworzymy bazę. Stworzymy pierwszą bazę o

Bardziej szczegółowo

2017/2018 WGGiOS AGH. LibreOffice Base

2017/2018 WGGiOS AGH. LibreOffice Base 1. Baza danych LibreOffice Base Jest to zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego,

Bardziej szczegółowo

Podejście obiektowe do relacyjnych baz danych Hibernate.

Podejście obiektowe do relacyjnych baz danych Hibernate. Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady

Bardziej szczegółowo

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2. Bazy Danych i Systemy informacyjne Wykład 2 Piotr Syga 16.10.2017 Dodawanie, usuwanie i zmienianie rekordów Wstawianie rekordu wstawianie do tabeli INSERT INTO A VALUES ( fioletowy, okrągły, słodko-kwaśny

Bardziej szczegółowo

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy danych. dr inż. Arkadiusz Mirakowski Bazy danych dr inż. Arkadiusz Mirakowski Początek pracy z Transact SQL (T-SQL) 153.19.7.13,1401 jkowalski nr indeksu 2 Perspektywa - tabela tymczasowa - grupowanie Perspektywa (widok) Perspektywa (widok)

Bardziej szczegółowo

Bazy danych 7. SQL podstawy

Bazy danych 7. SQL podstawy Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny

Bardziej szczegółowo

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych Zadanie do wykonania na następny tydzień: Przedstawić aplikację napisaną w JSP realizującą analogiczne zadania jak pierwsza aplikacja

Bardziej szczegółowo

Programowanie w języku Java. Bazy danych SQLite w Javie

Programowanie w języku Java. Bazy danych SQLite w Javie Programowanie w języku Java Bazy danych SQLite w Javie Co to jest SQLite SQLite to bezserwerowa, nie wymagająca konfiguracji relacyjna baza danych. Znajduje szerokie zastosowanie np.. w systemie android

Bardziej szczegółowo

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Metody dostępu do danych JDBC - Java Database Connectivity JDO - Java Data Object ORM - Object-Relational

Bardziej szczegółowo

Imię i Nazwisko Data Ocena. Laboratorium 7

Imię i Nazwisko Data Ocena. Laboratorium 7 Imię i Nazwisko Data Ocena Laboratorium 7 Celem tego ćwiczenia jest pokazanie, że w MoscowML można pisać aplikacje użytkowe, np. prosty interpreter języka SQL (MLSQL) Listy i krotki Różnica pomiędzy krotkami

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables MYSQL 1 1. Sprawdzenie ustawień konfiguracyjnych Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables 2 2. Wstępna konfiguracja Po zainstalowaniu aplikacji należy przed uruchomieniem wykonać

Bardziej szczegółowo

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Dostęp do baz danych z serwisu www - PHP Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Bazy Danych I, 8 Grudzień 2009 Plan Trochę teorii Uwagi techniczne Ćwiczenia Pytania Trójwarstwowy

Bardziej szczegółowo

Podstawowe informacje o bazach danych. Technologie Informacyjne

Podstawowe informacje o bazach danych. Technologie Informacyjne Podstawowe informacje o bazach danych Technologie Informacyjne dr inż. Michna Michał, Politechnika Gdańska 2010/2011 Przykłady systemów baz danych Książka telefoniczna, książka kucharska Zarządzanie magazynem/hurtownią

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

Komunikacja z bazą danych psql

Komunikacja z bazą danych psql PostgreSQL jest systemem zarządzania relacyjnymi bazami danych rozprowadzanym na zasadach open source. Twórcą i właścicielem praw autorskich jest Uniwersytet Berkeley w Stanach Zjednoczonych. Ze wszystkich

Bardziej szczegółowo

Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access)

Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access) Programowanie komputerów Wykład 10: Dostęp do baz danych z poziomu aplikacji Java (JDBC Database Access) Relacyjne bazy danych Baza danych to zbiór danych powiązanych ze sobą pewnymi relacjami. System

Bardziej szczegółowo

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

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy Pytania SO Oprogramowanie Biurowe Pytania: Egzamin Zawodowy Pytania SO Oprogramowanie Biurowe (1) Gdzie w edytorze tekstu wprowadza się informację lub ciąg znaków, który ma pojawić się na wszystkich stronach

Bardziej szczegółowo

Wstęp do relacyjnych baz danych. Jan Bartoszek

Wstęp do relacyjnych baz danych. Jan Bartoszek Wstęp do relacyjnych baz danych Jan Bartoszek Agenda 1. 2. 3. 4. 5. 6. 7. Po co i dlaczego? Bazy danych & DBMS Relacje i powiązania Redundancja i jak jej uniknąć Diagramy ERD SQL Podsumowanie Czym są są

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

Database Connectivity

Database Connectivity Oprogramowanie Systemów Pomiarowych 15.01.2009 Database Connectivity Dr inŝ. Sebastian Budzan Zakład Pomiarów i Systemów Sterowania Tematyka Podstawy baz danych, Komunikacja, pojęcia: API, ODBC, DSN, Połączenie

Bardziej szczegółowo

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń. Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21

Bardziej szczegółowo

INTERNETOWY KURS PODSTAW IT

INTERNETOWY KURS PODSTAW IT INTERNETOWY KURS PODSTAW IT LEKCJA 13. KWERENDY I KROTKI. WPROWADZENIE DO BAZ DANYCH. Witaj po raz trzynasty! Poprzednia lekcja przybliżyła Ci idee wykorzystania frameworków w procesie wytwarzania oprogramowania.

Bardziej szczegółowo

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

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Wykład 5: PHP: praca z bazą danych MySQL

Wykład 5: PHP: praca z bazą danych MySQL Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych

Bardziej szczegółowo

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion Autor: Joanna Karwowska SQL zapewnia obsługę: zapytań - wyszukiwanie danych w bazie, operowania danymi - wstawianie, modyfikowanie

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

JDBC (Java Database Connectivity vit )

JDBC (Java Database Connectivity vit ) 1 JDBC (Java Database Connectivity) Marek Wojciechowski Czym jest JDBC? 2 JDBC jest standardowym interfejsem do współpracy aplikacji Java z relacyjną bazą danych JDBC definiuje standardowe interfejsy interfejsy

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

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

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się. Za operacje na bazie odpowiada biblioteka mysqli (i jak improved). Posiada ona interfejs obiektowy jak i proceduralny. Podłączenie do bazy (obiektowo) mysqli:: construct() ([ string $host [, string $username

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

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 11 PHP, MySQL: więcej, więcej!, więcej!!. tabel i funkcjonalności. Na dzisiejszych zajęciach zdefiniujemy w naszej bazie kilka tabel powiązanych kluczem obcym i zobaczymy,

Bardziej szczegółowo

Podstawy otwartych języków programowania Java Database Connectivity (JDBC)

Podstawy otwartych języków programowania Java Database Connectivity (JDBC) Podstawy otwartych języków programowania Java Database Connectivity (JDBC) Wiktor Wandachowicz Treść wykładu Przypomnienie terminów bazodanowych Architektura JDBC Schemat działania przy dostępie do danych

Bardziej szczegółowo

Widok Connections po utworzeniu połączenia. Obszar roboczy

Widok Connections po utworzeniu połączenia. Obszar roboczy Środowisko pracy 1. Baza danych: Oracle 12c - Serwer ELARA - Konta studenckie, dostęp także spoza uczelni - Konfiguracja: https://e.piotrowska.po.opole.pl/index.php?option=conf 2. Środowisko: SQL Developer

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads Instalacja MySQL Baza MySQL tworzona jest przez Szwedzką firmę MySQL AB strona domowa projektu to: www.mysql.com Wersję bezpłatną (różniącą się od komercyjnej brakiem wsparcia technicznego, nośnika i podręcznika)

Bardziej szczegółowo

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1 Tworzenie tabel Tabela podstawowa struktura, na której zbudowana jest relacyjna baza danych. Jest to zbiór kolumn (atrybutów) o ustalonych właściwościach, w których przechowuje się dane. Dane te są reprezentowane

Bardziej szczegółowo

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3 cur.executescript(""" DROP TABLE IF EXISTS uczen; CREATE TABLE IF NOT EXISTS uczen ( Uniwersytet Technologiczno-Przyrodniczy im. J.J. Śniadeckich w Bydgoszczy Instrukcja do ćwiczeń laboratoryjnych Przedmiot

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok; Temat: Funkcje, procedury i wyzwalacze. Oprócz tabel i widoków w bazach danych możemy tworzyć własne funkcje, procedury i specjalny typ procedur, które będą automatycznie wywoływanie przez MySQL w memencie

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

Ć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

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych http://www.mini.pw.edu.pl/~lucknerm Utworzenie tabeli w Oracle Utworzenie użytkownika Utworzenie połączenia w NetBeans Utworzenie

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

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 DB1, DB2: TEMAT: Wprowadzenie do SQL. Praca z pojedyncza

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

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

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Klucz podstawowy PRIMARY KEY Klucz kandydujący UNIQUE Klucz alternatywny - klucze kandydujące, które nie zostały wybrane na klucz podstawowy Klucz obcy - REFERENCES Tworząc tabelę,

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Programowanie w Ruby

Programowanie w Ruby Programowanie w Ruby Wykład 6 Marcin Młotkowski 14 listopada 2012 Plan wykładu Trwałość obiektów Bazy danych DBM Bazy danych SQL Active records Szeregowanie obiektów Obiekt Serializacja @tytul = 'Pan Tadeusz'

Bardziej szczegółowo

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Bazy danych podstawowe pojęcia Baza danych jest to zbiór danych zorganizowany zgodnie ze ściśle określonym modelem danych. Model danych to zbiór ścisłych

Bardziej szczegółowo