Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3.

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

Download "Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3."

Transkrypt

1 Instrukcja do laboratorium z przedmiotu: Bazy danych Laboratorium nr 3. Metody zarządzania i analizy danych Opracował A. Bujnowski Projekt Przygotowanie i realizacja kierunku inżynieria biomedyczna studia międzywydziałowe współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.

2 1. Cele laboratorium zapoznanie się z metodami wprowadzania, usuwania i modyfikacji danych. Instrukcje warunkowe. Zapytania złożone i funkcje agregacji 2. Przykładowa baza danych: Jako przykład bazy danych posłuży nam przygotowana uprzednio i nieco zmodyfikowana struktura bazy dla wypożyczalni płyt DVD. Na potrzeby dzisiejszego laboratorium do poprzednio zaprojektowanej struktury tabel dołączymy jeszcze jedną: gatunek oraz dodamy atrybut cena dla każdej płyty. Zakładamy, że płyta należy do jednego gatunku. Kod w języku SQL zakładający bazę danych podana jest poniżej, wytłuszczonym drukiem pokazano zmiany w stosunku do poprzedniej wersji CREATE TABLE klient ( imie varchar(20) not null, nazwisko varchar(40) not null, nr_dowodu char(10), id_klienta serial primary key); CREATE TABLE gatunek( nazwa varchar(30) not null, id_gatunku serial PRIMARY KEY ); CREATE TABLE plyta( tytul varchar(40) not null, numer serial primary key, cena numeric(4,2), gatunek integer REFERENCES gatunek ON DELETE SET NULL ON UPDATE CASCADE); CREATE TABLE wypozyczenie( kto_wypozyczyl int not null REFERENCES klient ON DELETE RESTRICT ON UPDATE RESTRICT, 2

3 co_wypozyczyl int not null REFERENCES plyta ON DELETE RESTRICT ON UPDATE CASCADE, data_wypozyczenia timestamp default now(), data_zwrotu timestamp, primary key(kto_wypozyczyl, co_wypozyczyl, data_wypozyczenia) ); CREATE TABLE jest_pracownikiem( rabat int, id_klienta int primary key references klient); Dla ujednolicenia sposobu pracy w tym ćwiczeniu, po zalogowaniu do serwera bazy.eti.pg.gda.pl usuń poprzednią bazę poleceniem: dropdb lab2_login gdzie login to Twój login do systemu. Następnie załóż nową bazę o nazwie jak poprzednio poleceniem: createdb lab2_login Teraz przygotuj plik tekstowy z definicją poleceń zakładających bazę danych: mcedit baza3.sql Wypełnij zawartość tego pliku poleceniami z zaprezentowanego wyżej listingu. Połącz się ze swoją bazą danych: psql lab2_login Wczytaj instrukcje z pliku baza1.sql: \i baza3.sql lab2_bujnows=# \i baza3.sql psql:baza3.sql:5: NOTICE: CREATE TABLE will create implicit sequence "klient_id_klienta_seq" for "serial" column "klient.id_klienta" psql:baza3.sql:5: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "klient_pkey" for table "klient" CREATE TABLE psql:baza3.sql:9: NOTICE: CREATE TABLE will create implicit sequence "plyta_numer_seq" for "serial" column "plyta.numer" psql:baza3.sql:9: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "plyta_pkey" for table "plyta" CREATE TABLE psql:baza3.sql:12: ERROR: syntax error at or near "cena" at character 2 3

4 psql:baza3.sql:19: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "wypozyczenie_pkey" for table "wypozyczenie" CREATE TABLE psql:baza3.sql:23: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "jest_pracownikiem_pkey" for table "jest_pracownikiem" CREATE TABLE psql:baza3.sql:28: NOTICE: CREATE TABLE will create implicit sequence "gatunek_id_gatunku_seq" for "serial" column "gatunek.id_gatunku" psql:baza3.sql:28: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "gatunek_pkey" for table "gatunek" CREATE TABLE lab2_bujnows=# W tej chwili struktura Twojej bazy danych jest gotowa do pracy. Na początku poznamy kilka poleceń na uzupełnienie jej danymi. Na początku jednak sprawdź, czy twoja baza przechowuje właściwą strukturę tabel: \d List of relations Schema Name Type Owner public gatunek table bujnows public gatunek_id_gatunku_seq sequence bujnows public jest_pracownikiem table bujnows public klient table bujnows public klient_id_klienta_seq sequence bujnows public plyta table bujnows public plyta_numer_seq sequence bujnows public wypozyczenie table bujnows (8 rows) \d klient Table "public.klient" Column Type Modifiers imie character varying(20) not null nazwisko character varying(40) not null nr_dowodu character(10) id_klienta integer not null default nextval('public.klient_id_klienta_seq'::text) Indexes: "klient_pkey" primary key, btree (id_klienta) \d plyta Table "public.plyta" Column Type Modifiers tytul character varying(40) not null numer integer not null default nextval('public.plyta_numer_seq'::text) cena numeric(4,2) gatunek integer Indexes: 4

5 "plyta_pkey" primary key, btree (numer) Foreign-key constraints: "$1" FOREIGN KEY (gatunek) REFERENCES gatunek(id_gatunku) \d gatunek Table "public.gatunek" Column Type Modifiers nazwa character varying(30) not null id_gatunku integer not null default nextval('public.gatunek_id_gatunku_seq'::text) Indexes: "gatunek_pkey" primary key, btree (id_gatunku) \d jest_pracownikiem Table "public.jest_pracownikiem" Column Type Modifiers rabat integer id_klienta integer not null Indexes: "jest_pracownikiem_pkey" primary key, btree (id_klienta) Foreign-key constraints: "$1" FOREIGN KEY (id_klienta) REFERENCES klient(id_klienta) \d wypozyczenie Table "public.wypozyczenie" Column Type Modifiers kto_wypozyczyl integer not null co_wypozyczyl integer not null d_wypozyczenia timestamp without time zone not null default now() d_zwrotu timestamp without time zone Indexes: "wypozyczenie_pkey" primary key, btree (kto_wypozyczyl, co_wypozyczyl, d_wypozyczenia) Foreign-key constraints: "$1" FOREIGN KEY (kto_wypozyczyl) REFERENCES klient(id_klienta) ON UPDATE RESTRICT ON DELETE RESTRICT "$2" FOREIGN KEY (co_wypozyczyl) REFERENCES plyta(numer) ON UPDATE CASCADE ON DELETE RESTRICT Jeżeli którakolwiek z tabel nie została założona lub jej struktura (poza właścicielem tabeli - owner) jest inna niż ta, pokazana w instrukcji dokonaj niezbędnych poprawek. Może się przydać polecenie DROP TABLE lub ALTER TABLE. 3. Wstawianie danych do tabel. Na poprzednich zajęciach wprowadzone instrukcja wprowadzania danych do bazy danych INSERT INTO tabela VALUES. Sprawdźmy jeszcze raz jak zadziałają poniższe instrukcje: 5

6 INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Jan','Kowalski','DB230398'); Sprawdź również uproszczoną metodę wprowadzania danych do takiej tabeli: INSERT INTO klient VALUES ('Anna','Nowak'); INSERT INTO klient VALUES ('Ewa','Zielińska','DB232343'); Możliwe jest też dodawanie z wymuszeniem własnej wartości id_klienta ale jest to niezalecane. Sprawdź dlaczego. Odpowiedzią niech będzie poniższy fragment kodu: INSERT INTO klient (imie,nazwisko,nr_dowodu,id_klienta) VALUES ('Jan','Kowal','DB130398',1); Powyższe zapytanie nie powiedzie się, gdyż próbujemy użyć istniejącego id_klienta ponownie. INSERT INTO klient (imie,nazwisko,nr_dowodu,id_klienta) VALUES ('Jan','Kowal','DB130398',1); ERROR: duplicate key violates unique constraint "klient_pkey" Ale możemy poprawnie dodać klienta, z innym id_klienta niż już użyte: INSERT INTO klient (imie,nazwisko,nr_dowodu,id_klienta) VALUES ('Janusz','Kowalski','DB210398',4); INSERT INTO klient (imie,nazwisko,nr_dowodu,id_klienta) VALUES ('Janusz','Kowalski','DB210398',4); Problem pojawi się przy próbie dodania nowego klienta z automatycznym id_klienta: INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Maria','Kowalska','DB230300'); lab2_bujnows=# INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Maria','Kowalska','DB230300'); ERROR: duplicate key violates unique constraint "klient_pkey" lab2_bujnows=# select * from klient; imie nazwisko nr_dowodu id_klienta Jan Kowalski DB Anna Nowak 2 Ewa Zielińska DB Janusz Kowalski DB (4 rows) Ale w tym przypadku ponowne wykonanie tego samego polecenia już zadziała poprawnie (bo system przyjmie id_klienta jako 5): 6

7 lab2_bujnows=# INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Maria','Kowalska','DB230300'); INSERT lab2_bujnows=# select * from klient; imie nazwisko nr_dowodu id_klienta Jan Kowalski DB Anna Nowak 2 Ewa Zielińska DB Janusz Kowalski DB Maria Kowalska DB (5 rows) lab2_bujnows=# Dlatego należy zachowywać ostrożność przy wpisywaniu wartości do kolumn o typie serial lub auto_increment (MySQL). W przypadku konieczności załadowania do bazy danych większej ilości danych przydatne może być wykorzystanie skryptów podobnych do tych, które wykorzystywane były przy zakładaniu bazy danych. Opuść bazę danych (polecenie \q) i wyedytuj plik tekstowy jak załączono poniżej: mcedit klienci.sql INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Adam','Wisniak','AFF456432'); INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Adrian','Wicki','AFF456433'); INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Iwona','Wisniak','AFF456434'); INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Jolanta','Ponicka','AFF456452'); INSERT INTO klient (imie,nazwisko,nr_dowodu) VALUES ('Adam','Brzeski','AFG456432'); INSERT INTO klient(imie,nazwisko,nr_dowodu) VALUES ('Adam','Irenowski','AFF400432'); INSERT INTO klient(imie,nazwisko,nr_dowodu) VALUES ('Jolanta','Wisniak','AFF454432'); Zapisz plik (F2) i opuść edytor (F10). Połącz się ze swoją bazą: psql lab2_login Wczytaj skrypt zewnętrzny poleceniem \i klienci.sql. 7

8 lab2_bujnows=# \i klienci.sql INSERT INSERT INSERT INSERT INSERT INSERT INSERT lab2_bujnows=# select * from klient; imie nazwisko nr_dowodu id_klienta Jan Kowalski DB Anna Nowak 2 Ewa Zielińska DB Janusz Kowalski DB Maria Kowalska DB Adam Wisniak AFF Adrian Wicki AFF Iwona Wisniak AFF Jolanta Ponicka AFF Adam Brzeski AFG Adam Irenowski AFF Jolanta Wisniak AFF (12 rows) Jak widać możliwe jest stosunkowo szybkie wczytywanie takich danych. Czasami jednak problematyczne może okazać się wyświetlanie potwierdzeń wczytywanych danych, lub konieczność przygotowania pliku z kompletną składnią w SQL-u. Większość systemów zarządzania bazami danych przychodzi tutaj z pomocą udostępniając interfejs do pobierania danych z pliku. Plik powinien być jednak odpowiednio sformatowany. W PostgreSQL poleceniem takim jest \copy: Copy działa w obie strony pozwala na eksport danych z tabeli do pliku (COPY TO) i z pliku do tabeli (COPY FROM). W tej chwili zajmiemy się tylko importem danych do bazy danych. Plik, który zawiera dane do wgrania powinien być odpowiednio przygotowany. Wgrywając dane do tabeli musi on składać się z wierszy, z których każde pole zawiera dokładnie taką samą ilość separatorów pól. Dwa kolejne separatory pól oznaczają wartość typu NULL. Ostatnia linia nie może składać się z pustych znaków itd. Domyślnym separatorem pól jest znak tabulacji, zaś wierszy znak końca linii. Przygotujmy zatem kilka plików wsadowych do wypełnienia gatunków i płyt: W tym celu opuść bazę danych (\q) i przygotuj pliki: mcedit gatunki.txt Zawartość pliku: komedia dramat musical kreskowka thriller sensacyjny przygodowy 8

9 historyczny fantasy mcedit plyty.txt Zawartość pliku: Shrek 15 Piraci z Karaibow 20 Calineczka 15 Szeregowiec Dolot 10 Constantine 20 Hellboy 15 UWAGA! Ważne jest aby w pliku plyty.txt pomiędzy tytułem a ceną cisnąć TAB a nie kilka spacji!!! Teraz spróbuj wczytać tak przygotowane dane z pliku. lab2_bujnows=# \copy gatunek(nazwa) from gatunki.txt lab2_bujnows=# select * from gatunek; nazwa id_gatunku komedia 1 dramat 2 musical 3 kreskówka 4 thriller 5 sensacyjny 6 przygodowy 7 historyczny 8 fantasy 9 (8 rows) lab2_bujnows=# lab2_bujnows=# \copy plyta(tytul,cena) from plyty.txt lab2_bujnows=# select * from plyta; tytul numer cena gatunek Shrek Piraci z Karaibów Calineczka Szeregowiec Dolot Constantine Hellboy (6 rows) 4. Aktualizacja danych w tabeli. W tak przygotowanej bazie danych pojawili się klienci, płyty i gatunki. lab2_bujnows=# select * from klient; 9

10 imie nazwisko nr_dowodu id_klienta Jan Kowalski DB Anna Nowak 2 Ewa Zielińska DB Janusz Kowalski DB Maria Kowalska DB Adam Wisniak AFF Adrian Wicki AFF Iwona Wisniak AFF Jolanta Ponicka AFF Adam Brzeski AFG Adam Irenowski AFF Jolanta Wisniak AFF (12 rows) lab2_bujnows=# select * from plyta; tytul numer cena gatunek Shrek Piraci z Karaibów Calineczka Szeregowiec Dolot Constantine Hellboy (6 rows) lab2_bujnows=# select * from gatunek; nazwa id_gatunku komedia 1 dramat 2 musical 3 kreskówka 4 thriller 5 sensacyjny 6 przygodowy 7 historyczny 8 fantasy 9 (9 rows) lab2_bujnows=# Płyty nie osiadają przypisanych gatunków. Spróbujmy zatem przypisać gatunki do płyt. Dokonamy tego przy pomocy polecenia UPDATE. Ustawmy zatem gatunek komedia dla płyty Shrek. To co trzeba zrobić to sprawdzić id gatunku dla komedii i wpisać to do bazy danych: lab2_bujnows=# select * from gatunek; nazwa id_gatunku komedia 1 dramat 2 musical 3 10

11 kreskówka 4 thriller 5 sensacyjny 6 przygodowy 7 historyczny 8 fantasy 9 (9 rows) lab2_bujnows=# select * from gatunek where nazwa='komedia'; nazwa id_gatunku komedia 1 (1 row) lab2_bujnows=# update plyta set gatunek=1 where tytul='shrek'; UPDATE 1 lab2_bujnows=# select * from plyta; tytul numer cena gatunek Piraci z Karaibów Calineczka Szeregowiec Dolot Constantine Hellboy Shrek (6 rows) lab2_bujnows=# Aby wykonać to zadanie musieliśmy wykonać dwa zapytania w pierwszym (SELECT) należało sprawdzić id_gatunku dla komedii i drugie polecenie jest faktycznym uzupełnieniem danych (UPDATE). Można zapisać to przy pomocy pojedynczego zapytania. Sprawdźmy to: update plyta set gatunek=(select id_gatunku from gatunek where nazwa = 'kreskowka') where tytul = 'Calineczka'; W podobny sposób przypisz wszystkie filmy do gatunków: Piraci z Karaibów przygodowy Szeregowiec Dolot kreskówka Constantine - thriller Hellboy - fantasy Zastanów się czy w podobny sposób nie da się zapisać wypożyczeń poleceniem INSERT. Spróbuj zapisać akcję wypożyczenia płyty o tytule Constantine dla pana Jana Kowalskiego. W podobny sposób wypożycz płyty użytkownikom: Adrian Wicki : Hellboy Iwona Wisniak : Szeregowiec Dolot Jolanta Ponicka : Constantine Operatory w SQL 11

12 W języku SQL istnieje szereg operatorów warunkowych do używania z klauzulą WHERE. Są to: Operatory logiczne AND i OR, używane do połączenia warunków. Przykład : SELECT * FROM klient where id_klienta > 5 AND id_klienta < 10; Operatory porównania: > (większe), < (mniejsze), <= (mniejsze lub równe), >= (większe lub równe), <> (różne) W przypadku ciągów tekstowych można wyróżnić operator LIKE, który pozwala na używanie znaków typu wildcard. Znaki te to '_' - zastępuje dowolny jeden znak oraz '%' - zastępuje dowolny ciąg znaków. Przykład: SELECT * FROM klient WHERE imię LIKE 'Ja%'; Operator BETWEEN.. AND - poznamy go poprzez przykład użycia: SELECT * FROM klient where id_klienta BETWEEN 3 AND 7; Operator IN() pozwala wybrać elementy z listy do porównania wartości: SELECT * FROM klient WERE id IN(3,5,9); SELECT * FROM klient WERE imie IN('Jan','Janina'); Operator IS pozwal na sprawdzenie, czy dana wartość jest NULL lub nie jest: SELECT * FROM wypozyczenie WHERE data_zwrotu IS NULL; SELECT * FROM wypozyczenie WHERE data_zwrotu IS NOT NULL; Operatory i klauzulę WHERE można stosować w instrukcjach SELECT, UPDATE lub DELETE do wybierania zakresu rekordów na których dokonywane będą przewidziane operacje. Dzięki operatorom AND i OR można budować bardzo wyszukane warunki. Zapytania złożone i widoki. Przypomnijmy sobie zapytania złożone z wielu tabel, które przerabialiśmy podczas ostatnich zajęć. Utrwalmy te zapytania w formie widoków. SELECT k.imie, k.nazwisko, p.tytul,w.data_wypozyczenia, w.data_zwrotu FROM klient k, wypozyczenie w, plyta p 12

13 WHERE k.id_klienta = w.kto_wypozyczyl AND p.numer = w.co_wypozyczyl; SELECT k.imie, k.nazwisko, p.tytul,w.data_wypozyczenia, w.data_zwrotu FROM klient k LEFT JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl LEFT JOIN plyta p ON p.numer = w.co_wypozyczyl; oraz SELECT k.imie, k.nazwisko, p.tytul,w.data_wypozyczenia, w.data_zwrotu FROM klient k JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl RIGHT JOIN plyta p ON p.numer = w.co_wypozyczyl; Ale struktura naszej Bazy danych jest dalece bardziej rozbudowana niż spróbujmy zastem wyświetlić zdecydowanie więcej danych. Zanim jednak to uczynimy dodajmy kila rekordów do tablicy jest pracownikiem. Pracownicy w naszej wypożyczalni to Jan Kowalski przysługuje mu rabat 50 % i Adam Brzeski z rabatem 40 %. Zatem dodajmy odpowiednie wpisy do tabeli jest_pracownikiem: INSERT INTO jest_pracownikiem(rabat,id_klienta) VALUES((SELECT id_klienta from klient where imie='jan' AND nazwisko = 'Kowalski'),50); Podobnie zrób dla pana Adama Brzeskiego z rabatem 40%. Teraz przepisz zapytanie w taki sposób, żeby pokazało tabelę wynikową w postaci: imię nazwisko tytuł gatunek data_wypozyczenia data_zwrotu cena rabat Łatwo zauważyć, że w pojedynczym zapytaniu z wykorzystaniem klauzuli WHERE jako warunku łączącego tabele. W wyniku tak postawionego zapytania otrzymamy jedynie wiersze dla wszystkich wypożyczonych płyt które mają gatunek i są wypożyczone przez klienta będącego pracownikiem: SELECT k.imie, k.nazwisko, p.tytul, g.nazwa, w.data_wypozyczenia, w.data_zwrotu, p.cena, j.rabat FROM klient k, plyta p, gatunek g, wypozyczenie w, jest_pracownikiem j WHERE k.id_klienta = w.kto_wypozyczyl and p.numer = w.co_wypozyczyl and k.id_klienta = j.id_klienta and p.gatunek = g.id_gatunku; 13

14 Przyjrzyjmy się instrukcji warunkowej po klauzuli where: k.id_klienta = w.kto_wypozyczyl and (prawdziwe dla wszystkich wypożyczeń) p.numer = w.co_wypozyczyl and (prawdziwe dla wszystkich wypożyczeń) k.id_klienta = j.id_klienta and (prawdziwe tylko dla pracowników) p.gatunek = g.id_gatunku;(prawdziwe tylko dla płyt z wypełnionym gatunkiem) Widać zatem, że część zapytania z komentarzem na czerwono znacznie ograniczy ilość wyświetlanych wyników. Musimy zatem skorzystać z innej postaci połączenia tabel przy pomocy JOIN. Sprawdźmy zatem jak zadziała połączenie join dla tych 5 tabel: SELECT k.imie, k.nazwisko, p.tytul, g.nazwa, w.data_wypozyczenia, w.data_zwrotu, p.cena, j.rabat FROM jest_pracownikiem j JOIN klient k ON k.id_klienta = j.id_klienta JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl JOIN plyta p ON p.numer = w.co_wypozyczyl JOIN gatunek g ON p.gatunek = g.id_gatunku; Jak to działa i jaka jest kolejność złączeń? Sprawdźmy to na następującym rysunku, gdzie odpowiednio j oznacza tabelę jest_pracownikiem, k tabelę klient, w tabelę wypozyczeie, p tabelę plyta i g tabelę gatunek: j k w j g Kolejne owale oznaczają tutaj kolejność łączeń. Jako pierwsze połączenie występuje tutaj połączenie klienta z jest_pracownikiem. Tabela jest_pracownikiem występuje po lewej stronie związku, ale powinniśmy w wyniku zapytania wyświetlić wszystkich klientów nawet jeśli nie są pracownikami. Chronimy zatem prawą stronę związku tabel klient i jest_pracownikiem. Sprawdźmy jak zadziała ta część zapytania: SELECT k.imie, k.nazwisko, j.rabat from jest_pracownikiem j JOIN klient k ON k.id_klienta = j.id_klienta; SELECT k.imie, k.nazwisko, j.rabat from jest_pracownikiem j RIGHT JOIN klient k ON k.id_klienta = j.id_klienta; Następną w kolejności złączeń tabelą jest wypożyczenie dołączmy ją do poprzedniego zapytania: 14

15 SELECT k.imie, k.nazwisko, j.rabat, w.data_wypozyczenia, w.data_zwrotu from jest_pracownikiem j RIGHT JOIN klient k ON k.id_klienta = j.id_klienta JOIN wypozyczenie w ON w.kto_wypozyczyl = k.id_klienta; Łatwo zauważyć, że taki JOIN zepsuje wynik RIGHT JOIN'a z poprzedniego zapytania. Ponieważ to co chcemy chronić jest po lewej stronie związku musimy skorzystać z LEFT JOIN w kolejnym złączeniu. Sprawdźmy to: SELECT k.imie, k.nazwisko, j.rabat, w.data_wypozyczenia, w.data_zwrotu from jest_pracownikiem j RIGHT JOIN klient k ON k.id_klienta = j.id_klienta LEFT JOIN wypozyczenie w ON w.kto_wypozyczyl = k.id_klienta; Podobnie dołączmy płytę i gatunek: SELECT k.imie, k.nazwisko, p.tytul, g.nazwa, w.data_wypozyczenia, w.data_zwrotu, p.cena, j.rabat FROM jest_pracownikiem j RIGHT JOIN klient k ON k.id_klienta = j.id_klienta LEFT JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl LEFT JOIN plyta p ON p.numer = w.co_wypozyczyl LEFT JOIN gatunek g ON p.gatunek = g.id_gatunku; Utrwalmy podobne do powyższego zapytanie w formie widoku: CREATE VIEW raport1 AS SELECT k.imie ' ' k.nazwisko, p.tytul, g.nazwa, w.data_wypozyczenia, w.data_zwrotu, p.cena, j.rabat FROM jest_pracownikiem j RIGHT JOIN klient k ON k.id_klienta = j.id_klienta LEFT JOIN wypozyczenie w ON k.id_klienta = w.kto_wypozyczyl LEFT JOIN plyta p ON p.numer = w.co_wypozyczyl LEFT JOIN gatunek g ON p.gatunek = g.id_gatunku; Użyliśmy tutaj operatora łączenia ciągów znaków. Pozwala to na połączenie np. imienia i nazwiska klienta tak, aby znalazły się w jednej kolumnie. Dodatkowo wymuszamy zmianę nazwy wyświetlanej kolumny dyrektywą AS. Funkcje agregacji W poprzednim ćwiczeniu pokazana została funkcja, dzięki której można dokonać połączenia ciągu znaków. Istnieje szereg innych funkcji min matematycznych. Sprawdźmy działanie niektórych z 15

16 nich: SELECT 2+2; SELECT sin(1); SELECT log(numer) FROM plyta; SELECT sin(cena) FROM plyta; Ale istnieją także inne funkcje: SELECT count(*) FROM gatunek; SELECT count(imie) FROM klient; SELECT max(id_klienta) FROM klient; SELECT min(id_klienta) FROM klient; SELECT avg(id_klienta) FROM klient; Te funkcje w odróżnieniu od poprzednich zwracają pojedynczy wynik a operują na grupach krotek. Funkcje takie noszą miano funkcji agregacji, gdyż dokonują analizy na grupie krotek. Gdy wykonamy funkcję sin(id_klienta) to zwróci ona tyle wyników na ilu krotkach się ona wykonała, natomiast funkcje takie jak max(), min(), avg(), variance(), stdev() czy count() zwrócą pojedynczy wynik. Z tymi funkcjami związana jest dodatkowa klauzula zapytania SELECT : GROUP BY. GROUP BY powoduje przestawienie wyników w taki sposób, aby stanowiły one przegrupowaną tabelę względem kryterium. Na tak przegrupowanej tabeli możliwe jest wykonywanie funkcji agregacji i dalsza analiza wyników. Przykładowo chcemy dokonać statystycznego zestawienia imion występujących w tabeli klient: SELECT imię, count(imie) FROM klient GROUP BY imię; Z klauzulą GOUP BY związana jest klauzula HAVING, która działa tak samo jak WHERE dla normalnej wersji SELECT: SELECT imię, count(imie) FROM klient GROUP BY imię HAVING imię < 'J'; W ramach laboratorium pokazane zostały metody manipulowania danymi, operatory, zapytania złożone, funkcje agregacji, klauzula GROUP BY oraz możliwość utrwalania zapytań w formie widoków. Na następnych zajęciach wprowadzone zostaną szerzej funkcje i pokazane metody dalszej analizy danych oraz transakcje. Kopie zapasowe i odzyskiwanie danych W PostgreSQL możliwe jest wykonanie kopii zapasowej bazy danych. Można tego dokonać przy pomocy polecenia systemowego pg_dump nazwabazy. W wyniku działania tego polecenia na 16

17 ekranie terminala pojawi się kod SQL, który pozwoli na ponowne założenie bazy danych. Przykład: Opuść bazę danych (\q) pg_dump lab2_login Teraz przekierujmy wynik działania polecenia do pliku: pg_dump lab2_login > lab2_login_dump.sql możesz teraz podejrzeć zawartość tego pliku np. przy pomocy edytora mcedit: mcedit lab2_login_dump.sql W tym miejscu połącz się za swoją bazą ponownie i poćwicz usuwanie danych. Spróbuj skasować płyty, gatunki i wypożyczenia. Teraz możliwe będzie odtworzenie tej bazy danych przy pomocy polecenia psql: Usuńmy bazę danych: dropdb lab2_login stwórzmy ją na nowo (będzie pusta) : createdb lab2_login sprawdźmy, że jest pusta: psql lab2_login \d No relations found \i lab2_login_dump.sql \d SELECT * FROM klient; Widać, że nasza baza odzyskała postać i dane z pliku. 17

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3.

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 3. Instrukcja do laboratorium z przedmiotu: Bazy danych Laboratorium nr 3. Metody zarządzania i analizy danych Opracował A. Bujnowski 2010-03-08 Projekt Przygotowanie i realizacja kierunku inżynieria biomedyczna

Bardziej szczegółowo

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 2.

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 2. Instrukcja do laboratorium z przedmiotu: Bazy danych Laboratorium nr 2. Projektowanie relacyjnych struktur w bazach danych Opracował A. Bujnowski 2010-03-08 Projekt Przygotowanie i realizacja kierunku

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

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

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

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

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

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 4.

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA. Instrukcja do laboratorium z przedmiotu: Bazy danych. Laboratorium nr 4. Instrukcja do laboratorium z przedmiotu: Bazy danych Laboratorium nr 4. Funkcje własne, procedury wyzwalane i przetwarzanie transakcyjne Opracował A. Bujnowski 2010-04-08 Projekt Przygotowanie i realizacja

Bardziej szczegółowo

Język SQL, zajęcia nr 2

Język SQL, zajęcia nr 2 Język SQL, zajęcia nr 2 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 Funkcja agregująca

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

Ć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

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

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro Informatyka (5) SQL dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro katpalik@pg.gda.pl katarzyna.palikowska@wilis.pg.gda.pl Język zapytań SQL Język deklaratywny (regułowy) - SQL, ProLog,

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

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

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

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

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

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

LAB 3 (część 1 Projektu)

LAB 3 (część 1 Projektu) Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 3 (część 1 Projektu) Na zajęciach należy zaprojektować schemat bazy danych oraz przygotować dokument zawierający: Temat: Autor: 1. Opis 2.

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

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

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

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

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

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

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

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

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny Schemat bazy danych, wczytanej z pliku create_tables.sql Relacji między tabelami klucze obce Klucz obcy jako ograniczenie dla kolumny customer_id INTEGER NOT NULL REFERENCES customer(customer_id), CONSTRAINT

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

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

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

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

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

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

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

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

Instrukcje DML INSERT, UPDATE, DELETE. COPY

Instrukcje DML INSERT, UPDATE, DELETE. COPY Wprowadzenie do DML i DDL 1 Bazy Danych Wykład p.t. Instrukcje DML INSERT, UPDATE, DELETE. COPY Antoni Ligęza ligeza@agh.edu.pl http://galaxy.uci.agh.edu.pl/~ligeza Wykorzystano materiały: http: //www.postgresql.org/docs/8.3/interactive/index.html

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

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

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

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

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

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

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

Grupowanie i funkcje agregujące

Grupowanie i funkcje agregujące Grupowanie i funkcje agregujące Zadanie 1. Stwórz odpowiednią tabelę Test_agr i wprowadź odpowiednie rekordy tak, aby wynik zapytania SELECT AVG(kol) avg_all, AVG(DISTINCT kol) avg_dist, COUNT(*) count_gw,

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

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

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

Bazy danych 6. Klucze obce. P. F. Góra

Bazy danych 6. Klucze obce. P. F. Góra Bazy danych 6. Klucze obce P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2018 Dygresja: Metody przechowywania tabel w MySQL Tabele w MySQL moga być przechowywane na kilka sposobów. Sposób ten (żargonowo:

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

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

Hurtownia Świętego Mikołaja projekt bazy danych

Hurtownia Świętego Mikołaja projekt bazy danych Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek

Bardziej szczegółowo

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem. Typy numeryczne Typy daty i czasu. W celu uniknięcia niejasności czy zapis 11-08-2005 oznacza - 11 sierpnia 2005, czy może 8 listopada 2005, należy ustalić sposób interpretacji daty (europejski lub amerykański).

Bardziej szczegółowo

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

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

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. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) ) BAZY DANYCH laboratorium 3 tworzenie, modyfikacje i usuwanie tabel, operacje na danych Cel Stworzenie w ramach bazy danych Biblioteka nowych tabel według specyfikacji (CREATE TABLE Ustawianie właściwości

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

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

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

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

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z Tworzenie tabeli Np. create table nazwa_tab( \\stworzenie tabeli Id numer(4) constraint PRAC_PK primary key, \\ustawiamy klucz podst. Nazwisko varchar2(30), \\typ tekstowy 30 znaków Kwota number(10,2)

Bardziej szczegółowo

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe -- Definicje relacji i utworzenie stanu początkowego dla ćwiczeń z synchronizacji transakcji DROP TABLE Konta cascade constraints; DROP TABLE

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

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

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. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408 Bazy Danych SQL Podstawy języka III: powtórzenie Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Modyfikacja schematu relacji Utwórz tabelę wg schematu: CREATE TABLE ODDZIAL ( numer_oddzialu

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

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

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

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

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

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

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi 1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca

Bardziej szczegółowo

ACESS- zadania z wykorzystaniem poleceń SQL

ACESS- zadania z wykorzystaniem poleceń SQL ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency,

Bardziej szczegółowo

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

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie do języka SQL Opracował: dr inż. Piotr Suchomski Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków

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

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA SKRYPT DO LABORATORIUM BAZY DANYCH. autor: dr inż. Adam Bujnowski.

Politechnika Gdańska, międzywydziałowy kierunek INŻYNIERIA BIOMEDYCZNA SKRYPT DO LABORATORIUM BAZY DANYCH. autor: dr inż. Adam Bujnowski. SKRYPT DO LABORATORIUM BAZY DANYCH ĆWICZENIE 1: Podstawy zarządzania bazami danych. autor: dr inż. Adam Bujnowski 1. Wymagania wstępne Gdańsk, 2011 Projekt Przygotowanie i realizacja kierunku inżynieria

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

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

Bardziej szczegółowo

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

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Bardziej szczegółowo

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

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

Bazy danych - Materiały do laboratoriów VIII

Bazy danych - Materiały do laboratoriów VIII Bazy danych - Materiały do laboratoriów VIII dr inż. Olga Siedlecka-Lamch Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 23 kwietnia 2011 roku Polecenie COMMIT i ROLLBACK Polecenie

Bardziej szczegółowo

Monika Sychla 241858 Daniel Smolarek 241875. Projekt bazy danych

Monika Sychla 241858 Daniel Smolarek 241875. Projekt bazy danych Monika Sychla 241858 Daniel Smolarek 241875 Projekt bazy danych Naszym zadaniem było zaprojektowanie przykładowej bazy danych, w oparciu o zagadnienia jakie zostały wprowadzone w trakcie kursu z baz danych.

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Instytut Mechaniki i Inżynierii Obliczeniowej  fb.com/groups/bazydanychmt/ Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 4 (Asocjacje,

Bardziej szczegółowo

Paweł Cieśla. Dokumentacja projektu

Paweł Cieśla. Dokumentacja projektu Paweł Cieśla Dokumentacja projektu Projekt Project1 został utworzony i skompilowany na próbnej wersji Delphi XE 4. Po uruchomieniu programu należy kliknąć przycisk Wczytaj plik tekstowy, następnie wskazać

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

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

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

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

Bardziej szczegółowo