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

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

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)

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)

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

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

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

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

10 Relacyjne bazy danych Najważniejsze w modelu relacyjnym dane grupowane są w relacje, które reprezentowane są przez tablice

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.

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

13 Bazy danych Co robimy? Photo by: Selmer van Alten Ustalamy rodzaj bazy danych, w jakiej chcemy ją zapisać.

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

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

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

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

18 Baza danych H2

19 Baza danych H2

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

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

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.

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

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 ( ; )

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;

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)

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

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): Tabele 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 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): Tabele 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.

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

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.

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

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.

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

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

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

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

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

39 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) NOT NULL, `nazwisko` varchar(40)not NULL, `data_urodzenia` date default NULL, PRIMARY KEY (`Id`) ) ;

40 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 Język SQL dodawanie danych INSERT INTO `waluty` VALUES (1, , ,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 (' , ); Pozostałe pola zostaną wypełnione automatycznie (auto_increment) bądź będą miały wartość NULL.

42 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 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 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 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 Język SQL komenda UPDATE Zmiana wierszy tabeli: UPDATE Składnia: UPDATE table_name SET column1 = value1, column2 = value2,... WHERE condition );

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

48 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 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

51 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 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 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 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 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 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 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 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 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 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 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 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.executeupdateupdate("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 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 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 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; --"

66 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 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; Zwróci informacje o błędzie. Usunie tabelę users.

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

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

70 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"); }

71 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().

72 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(); }

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

74 WypisywanieTabeli.java

75 Wykres.java Tworzenie pliku JAR konieczny dostęp do pliku z bazą danych

76 Informacje dodatkowe

77 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

78 Struktura JDBC

79 Klasy i interfejsy JDBC

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ć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

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

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

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

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

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

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

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

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

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - 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

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

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

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

JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium

JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium Bazy Danych JDBC Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia Wprowadzenie do laboratorium. Nawiązywanie i zamykanie połączeń. Wykonywanie zapytań. Wykonywanie aktualizacji. Zarządzanie

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

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

Bazy danych. dr Radosław Matusik. radmat

Bazy danych. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat Sortowanie tablic Do sortowania tablic służą funkcje: Sortowanie tablic Do sortowania tablic służą funkcje: sort($tablica) - sortowanie w porządku rosnącym bez kluczy; Sortowanie

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