Tabela SPRZEDAŻ WYCIECZEK

Podobne dokumenty
Autor: Joanna Karwowska

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

Autor: Joanna Karwowska

Grupowanie danych klauzula GROUP BY

Podstawowe zapytania SELECT (na jednej tabeli)

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY

SQL (ang. Structured Query Language)

Bazy danych - Materiały do laboratoriów IV

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

Technologie baz danych

SQL praca z tabelami 4. Wykład 7

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

Systemy GIS Tworzenie zapytań w bazach danych

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

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

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

OLAP i hurtownie danych c.d.

Podzapytania do tabel W miejscu w którym możemy użyć nazwy tabeli, możemy użyć podzapytania

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

System imed24 Instrukcja Moduł Analizy i raporty

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Bazy danych SQL Server 2005

Technologie baz danych

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

select zam_id, cena_euro,(rank() over (partition by zam_id order by cena_euro)) from pozycjezamowien order by zam_id

Przestrzenne bazy danych Podstawy języka SQL

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

Relacyjne bazy danych. Podstawy SQL

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

Rozszerzenia grupowania

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego.

Autor: Joanna Karwowska

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

EXCEL TABELE PRZESTAWNE

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Widok Connections po utworzeniu połączenia. Obszar roboczy

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH

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

Zadania z SQLa (MS SQL Server)

Kurs. Podstawy MySQL

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

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

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

Podstawowe funkcje dodatku linq w C#

SQL do zaawansowanych analiz danych część 1.

Grupowanie i funkcje agregacji

PODZAPYTANIE (SUBSELECT)

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Wprowadzenie do języka SQL

Laboratorium Bazy danych SQL 3 1

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

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

Technologie baz danych

Autor: Joanna Karwowska

Relacyjne bazy danych. Podstawy SQL

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

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

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

Wykład 5. SQL praca z tabelami 2

Język SQL, zajęcia nr 2

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Dane w poniższej tabeli przedstawiają sprzedaż w dolarach i sztukach oraz marżę wyrażoną w dolarach dla:

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

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

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

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

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Konstruowanie Baz Danych DQL agregacja danych

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Struktura bazy danych

Leszek Stasiak Zastosowanie technologii LINQ w

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

Oracle PL/SQL. Paweł Rajba.

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

Podstawy języka SQL cz. 2

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6

kod_klienta kod_wycieczki data_rozpoczecia zaplacono KL002 G KL003 M KL007 M

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

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

Grupowanie i funkcje agregujące

3. Podzapytania, łączenie tabel i zapytań

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

SQL do zaawansowanych analiz danych część 1.

Wprowadzenie do baz danych

Wyższa Szkoła Zarządzania i Marketingu w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS SQL Server

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Zaletą tego przestawiania jest brak ingerencji w oryginalną tabelę danych. Możemy przestawiad i sprawdzad bez obaw o utratę lub naruszenie danych.

Paweł Rajba

Transkrypt:

Tabela SPRZEDAŻ WYCIECZEK SELECT s.numer_id, s.wycieczka_id, s.operator_id, s.klient_id, s.cena_dorosla, s.cena_dzieci, s.ilosc_doroslych, s.ilosc_dzieci, s.ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci SUMA FROM SPRZ_WYC s, KLIENCI k UWAGA brak połączenia między tabelami Tabela SPRZEDAŻ WYCIECZEK SELECT s.numer_id, s.wycieczka_id, s.operator_id, s.klient_id, k.nazwa, k.kod_poczt, k.miasto_id, k.adres, k.telefon, s.cena_dorosla, s.cena_dzieci, s.ilosc_doroslych, s.ilosc_dzieci, s.ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci SUMA FROM SPRZ_WYC s, KLIENCI k WHERE s.klient_id = k.klient_id 1

Tabela SPRZEDAŻ WYCIECZEK Tabela SPRZEDAŻ WYCIECZEK SELECT s.numer_id, s.wycieczka_id, s.operator_id, s.klient_id, k.nazwa, k.kod_poczt, k.miasto_id, m.miasto, k.adres, k.telefon, s.cena_dorosla, s.cena_dzieci, s.ilosc_doroslych, s.ilosc_dzieci, s.ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci SUMA FROM SPRZ_WYC s, KLIENCI k, MIASTA m k.miasto_id = m.miasto_id 2

Tabela SPRZEDAŻ WYCIECZEK Tabela SPRZEDAŻ WYCIECZEK SELECT s.numer_id, s.wycieczka_id, w.termin_od, w.termin_do, w.cena_dor, w.cena_dziec, w.hotel_id, w.kraj_id, w.miasto_id, w.transport_id, w.pansion, s.operator_id, o.kod_pocz KOD_POCZ_OPER, o.nazwa NAZWA_OPERATORA, o.osoba_kont, o.miasto_id MIASTO_OPER, mo.miasto MIASTO_OPER, o.adres ADRES_OPER, s.klient_id, k.nazwa, k.kod_poczt, k.miasto_id, m.miasto, k.adres, k.telefon, s.cena_dorosla, s.cena_dzieci, s.ilosc_doroslych, s.ilosc_dzieci, s.ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci SUMA FROM SPRZ_WYC s, KLIENCI k, MIASTA m, OPERATORZY o, MIASTA mo, WYCIECZKI w s.operator_id = w.operator_id 3

Tabela SPRZEDAŻ WYCIECZEK Tabela SPRZEDAŻ WYCIECZEK SELECT s.numer_id, s.wycieczka_id, w.termin_od, w.termin_do, w.kraj_id, kw.kraj, w.hotel_id, h.nazwa, h.kategoria, h.l_pokoi, w.miasto_id, mw.miasto MIASTO_WYC, w.transport_id, t.transport, w.pansion, s.operator_id, o.kod_pocz KOD_POCZ_OPER, o.nazwa NAZWA_OPERATORA, o.osoba_kont, o.miasto_id MIASTO_ID_OPER, mo.miasto MIASTO_OPER, o.adres ADRES_OPER, s.klient_id, k.nazwa, k.kod_poczt, k.miasto_id, m.miasto, k.adres, k.telefon, w.cena_dor CENA_DOR_OF, w.cena_dziec CENA_DZIEC_OF, s.cena_dorosla, s.cena_dzieci, s.ilosc_doroslych, s.ilosc_dzieci, s.ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci SUMA FROM SPRZ_WYC s, KLIENCI k, MIASTA m, OPERATORZY o, MIASTA mo, WYCIECZKI w, TRANSPORT t, MIASTA mw, KRAJE kw, HOTELE h s.operator_id = w.operator_id and w.transport_id = t.transport_id and w.miasto_id = mw.miasto_id and w.kraj_id = kw.kraj_id and w.hotel_id = h.hotel_id 4

Tabela SPRZEDAŻ WYCIECZEK SELECT s.numer_id, s.wycieczka_id, w.termin_od, w.termin_do, kw.kraj, h.nazwa, h.kategoria, h.l_pokoi, mw.miasto MIASTO_WYC, t.transport, w.pansion, o.kod_pocz KOD_POCZ_OPER, o.nazwa NAZWA_OPERATORA, o.osoba_kont, mo.miasto MIASTO_OPER, o.adres ADRES_OPER, k.nazwa, k.kod_poczt, m.miasto, k.adres, k.telefon, w.cena_dor CENA_DOR_OF, w.cena_dziec CENA_DZIEC_OF, s.cena_dorosla, s.cena_dzieci, s.ilosc_doroslych, s.ilosc_dzieci, s.ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci SUMA FROM SPRZ_WYC s, KLIENCI k, MIASTA m, OPERATORZY o, MIASTA mo, WYCIECZKI w, TRANSPORT t, MIASTA mw, KRAJE kw, HOTELE h s.operator_id = w.operator_id and w.transport_id = t.transport_id and w.miasto_id = mw.miasto_id and w.kraj_id = kw.kraj_id and w.hotel_id = h.hotel_id 5

SELECT DISTINCT Do tej pory stosując polecenia SELECT na pojedynczej tabeli bez klauzuli WHERE uzyskiwaliśmy wszystkie wiersze zawarte w niej. Jeżeli w tabeli istniały dwa identyczne, jednakowe wiersze one były wyświetlane. SELECT * FROM WYKONAWCA; Możemy zauważyć, że niektórzy wykonawcy są umieszczeni w tabeli kilka razy. SELECT DISTINCT W celu ominięcia powtarzających się wierszy możemy zastosować polecenia SELECT DISTINCT * FROM WYKONAWCA; Sytuacja jest ta sama. Przyczyną jest to że WYKONAWCA_ID jest inny, niezależnie od tego czy Imię i Nazwisko wykonawcy się powtarzają dla bazy danych wiersze są różne. 6

SELECT DISTINCT Zmieniamy zapytanie i zamiast wszystkich kolumn wybieramy tylko pole IMIE_NAZWISKO. SELECT DISTINCT IMIE_NAZWISKO FROM WYKONAWCA; Stosując polecenia SELECT DISTINCT mamy możliwość uzyskać tylko jeden raz wiersze z tabeli, które zawierają nie powtarzające się dane. W tym przypadku nas interesuje wyświetlienie tylko jeden raz imię i nazwisko wykonawców, dla nas pole WYKONAWCA_ID nie jest istotne. Grupowanie Teraz chcemy uzyskać informacje ile razy dany wykonawca występuje w naszej tabeli, ile razy się powtarza informacja wprowadzona o nim. Przyjmujemy, że imię i nazwisko wykonawcy jest jednakowo wprowadzone za każdym razem, kiedy są wprowadzone dane o nim. SELECT IMIE_NAZWISKO, COUNT(*) ILE_RAZY FROM WYKONAWCA GROUP BY IMIE_NAZWISKO; lub SELECT IMIE_NAZWISKO, COUNT(IMIE_NAZWISKO) ILE_RAZY FROM WYKONAWCA GROUP BY IMIE_NAZWISKO; 7

Grupowanie 8

Grupowanie W powyższym przykładzie pole IMIE_NAZWISKO jest polem po którym zostało zrobione grupowanie. W zależności od tego, jakie dane chcemy uzyskać w wyniku zapytania, możemy wybierać między SELECT DISTINCT i GRUPOWANIA. Kolumny/ pola po których wykonujemy grupowanie określa, w jakim przekroju chcemy badać dane zjawisko, w jakich podzbiorach chcemy mieć zagregowaną informację Zadania Zaprezentować informację o hotelach, która zawiera identyfikator hotelu, nazwę kraju, nazwę miasta, nazwa hotelu, kategorię obiektu W którym mieście z hoteli przynależnej do sieci IBIS, ACCOR jest najmniej pokoi? W którym mieście z hoteli przynależnej do sieci IBIS, ACCOR jest najwięcej pokoi? Ile pokoi ma najmniejszy z oferowanych hoteli w poszczególnych krajach? Ile pokoi ma największy z oferowanych hoteli w poszczególnych krajach? Ile pokoi ma średnio hotel z grupy IBIS, ACCOR? 9

Zadania Ile pokoi ma średni hotel w poszczególnych krajach Jaka jest struktura hoteli sieci IBIS / Accor, w których państwach możemy skorzystać z ich usług? W ilu hotelach w danym mieście dysponujemy z powyżej... pokoi? W których hotelach nie ma zorganizowanych wycieczek? W których hotelach jest najwięcej zorganizowanych wycieczek? W których hotelach jest więcej zapisanych niż ilość pokoi, przejmując, że pokoje są dwuosobowe? Grupowanie SELECT s.wycieczka_id, MAX(w.TERMIN_OD) TERMIN_OD, MAX(w.TERMIN_DO) TERMIN_DO, MAX(kw.KRAJ) KRAJ, MAX(h.NAZWA) NAZWA, MAX(h.KATEGORIA) KATEGORIA, MAX(h.L_POKOI) L_POKOI, MAX(mw.MIASTO) MIASTO_WYC, MAX(t.TRANSPORT) TRANSPORT, MAX(w.PANSION) PANSION, MAX(o.KOD_POCZ) KOD_POCZ_OPER, MAX(o.NAZWA) NAZWA_OPERATORA, MAX( o.osoba_kont) OSOBA_KONT, MAX(mo.MIASTO) MIASTO_OPER, MAX(o.ADRES) ADRES_OPER, MAX(k.NAZWA) NAZWA, MAX(k.KOD_POCZT) KOD_POCZ_KL, MAX(m.MIASTO) MIASTO_KL, MAX(k.ADRES) ADRES, SUM(s.Ilosc_doroslych) Ilosc_doroslych, SUM(s.Ilosc_dzieci) Ilosc_dzieci, SUM(s.Ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci) SUMA FROM SPRZ_WYC s, KLIENCI k, MIASTA m, OPERATORZY o, MIASTA mo, WYCIECZKI w, TRANSPORT t, MIASTA mw, KRAJE kw, HOTELE h s.operator_id = w.operator_id and w.transport_id = t.transport_id and w.miasto_id = mw.miasto_id and w.kraj_id = kw.kraj_id and w.hotel_id = h.hotel_id GROUP BY s.wycieczka_id 10

Grupowanie SELECT s.wycieczka_id, MAX(w.TERMIN_OD) TERMIN_OD, MAX(w.TERMIN_DO) TERMIN_DO, MAX(kw.KRAJ) KRAJ, MAX(h.NAZWA) NAZWA, MAX(h.KATEGORIA) KATEGORIA, MAX(h.L_POKOI) L_POKOI, MAX(mw.MIASTO) MIASTO_WYC, MAX(t.TRANSPORT) TRANSPORT, MAX(w.PANSION) PANSION, MAX(o.KOD_POCZ) KOD_POCZ_OPER, MAX(o.NAZWA) NAZWA_OPERATORA, MAX( o.osoba_kont) OSOBA_KONT, MAX(mo.MIASTO) MIASTO_OPER, MAX(o.ADRES) ADRES_OPER, (k.nazwa) NAZWA_KL, MAX(k.KOD_POCZT) KOD_POCZ_KL, MAX(m.MIASTO) MIASTO_KL, MAX(k.ADRES) ADRES, SUM(s.Ilosc_doroslych) Ilosc_doroslych, SUM(s.Ilosc_dzieci) Ilosc_dzieci, SUM(s.Ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci) SUMA FROM SPRZ_WYC s, KLIENCI k, MIASTA m, OPERATORZY o, MIASTA mo, WYCIECZKI w, TRANSPORT t, MIASTA mw, KRAJE kw, HOTELE h s.operator_id = w.operator_id and w.transport_id = t.transport_id and w.miasto_id = mw.miasto_id and w.kraj_id = kw.kraj_id and w.hotel_id = h.hotel_id GROUP BY s.wycieczka_id, k.nazwa Grupowanie SELECT s.wycieczka_id, MAX(w.TERMIN_OD) TERMIN_OD, MAX(w.TERMIN_DO) TERMIN_DO, MAX(kw.KRAJ) KRAJ, MAX(h.NAZWA) NAZWA, MAX(h.KATEGORIA) KATEGORIA, MAX(h.L_POKOI) L_POKOI, MAX(mw.MIASTO) MIASTO_WYC, MAX(t.TRANSPORT) TRANSPORT, MAX(w.PANSION) PANSION, MAX(o.KOD_POCZ) KOD_POCZ_OPER, MAX(o.NAZWA) NAZWA_OPERATORA, MAX( o.osoba_kont) OSOBA_KONT, MAX(mo.MIASTO) MIASTO_OPER, MAX(o.ADRES) ADRES_OPER, (k.nazwa) NAZWA_KL, MAX(k.KOD_POCZT) KOD_POCZ_KL, MAX(m.MIASTO) MIASTO_KL, MAX(k.ADRES) ADRES, SUM(s.Ilosc_doroslych) Ilosc_doroslych, SUM(s.Ilosc_dzieci) Ilosc_dzieci, SUM(s.Ilosc_doroslych * s.cena_dorosla + s.ilosc_dzieci * s.cena_dzieci) SUMA FROM SPRZ_WYC s, KLIENCI k, MIASTA m, OPERATORZY o, MIASTA mo, WYCIECZKI w, TRANSPORT t, MIASTA mw, KRAJE kw, HOTELE h s.operator_id = w.operator_id and w.transport_id = t.transport_id and w.miasto_id = mw.miasto_id and w.kraj_id = kw.kraj_id and w.hotel_id = h.hotel_id GROUP BY CUBE (s.wycieczka_id, k.nazwa) 11