Struktura bazy danych



Podobne dokumenty
Podstawy SQL. 1. Wyświetl całość informacji z relacji ZESPOLY. 2. Wyświetl całość informacji z relacji PRACOWNICY

Struktura bazy danych

Zadanie 2 Korzystając z funkcji PMT oblicz miesięczną ratę i całkowity koszt pożyczki dla podanych niżej danych. Raty miesięczne/roczn e

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

Zadania z SQLa (MS SQL Server)

Ćwiczenie 3 funkcje agregujące

Autor: Joanna Karwowska

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

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

SQL praca z tabelami 4. Wykład 7

Bazy Danych i Usługi Sieciowe

Autor: Joanna Karwowska

SQL do zaawansowanych analiz danych część 1.

Wykład 5. SQL praca z tabelami 2

Podstawy języka SQL cz. 2

Przestrzenne bazy danych Podstawy języka SQL

Ćwiczenie zapytań języka bazy danych PostgreSQL

Podstawowe zapytania SELECT (na jednej tabeli)

W y k ł a d SELECT. Polecenie wyświetlające zawartość tabeli. Składnia uproszczona: Temat: Polecenie SELECT. Plan wykładu:

Autor: Joanna Karwowska

Laboratorium Bazy danych SQL 2

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

SQL (ang. Structured Query Language)

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

Wykład 6. SQL praca z tabelami 3

1.06 Wyświetl dane pracowników, którzy pracują w departamencie o nr (Id) różnym od 3.

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

ACESS- zadania z wykorzystaniem poleceń SQL

Grupowanie i funkcje agregujące

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

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Bazy danych SQL Server 2005

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

Język SQL. Rozdział 2. Proste zapytania

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

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

Relacyjne bazy danych. Podstawy SQL

Wprowadzenie do języka SQL

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

Laboratorium Bazy danych SQL 3 1

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

LAB 3 (część 1 Projektu)

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

Wprowadzenie do baz danych

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

Kurs. Podstawy MySQL

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

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

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

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

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Klasyczna Analiza Danych

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

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

MsAccess ćwiczenie nr 3 Kwerendy wybierające cd oraz kwerendy funkcjonalne

Język SQL. Rozdział 8. Język manipulowania danymi DML zadania

Systemy GIS Tworzenie zapytań w bazach danych

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

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

SQL: zadania + odpowiedzi, wszystkie podstawowe schematy.

Ćwiczenie 4 - połączenia

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

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

Relacyjne bazy danych. Podstawy SQL

Język SQL, zajęcia nr 1

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL);

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

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

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

Język SQL, zajęcia nr 2

Technologie baz danych

Wykład 05 Bazy danych

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

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

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

Wykład 8. SQL praca z tabelami 5

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

PODZAPYTANIE (SUBSELECT)

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

SQL. Æwiczenia praktyczne

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

Zajęcia 2 podstawy języka SQL

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

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

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

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

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

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

Paweł Rajba

Transkrypt:

Bazy danych - MySQL Warunki zaliczenia tych zajęć Rozwiązania zadań domowych proszę zapisać do pliku o nazwie Bazy danych i wysłać do mnie jako załącznik. Ostateczny termin: niedziela, 9.06, godzina 24:00. Podstawowe informacje Baza danych jest dostępna na serwerze MySQL zainstalowanym na komputerze znajdującym się w sali 67. Niestety jest on wyłączany i dlatego nie zawsze jest możliwy dostęp do bazy danych (np. z domu). Sposób logowania: W przeglądarce internetowej wpisujemy adres: 150.254.91.64/phpmyadmin Użytkownik: Student Hasło: 123 Baza: NIFK Struktura bazy danych Tabela Oddziały ID Oddzial Adres 10 POZNAN Kwiatowa 3 20 WARSZAWA al. Jerozolimskie 22 30 KRAKOW Planty 14 40 WROCLAW Nad Odra 16 50 GDANSK Portowa 30 Tabela Stanowiska Stanowisko Placa_min Placa_max BRYGADZISTA 2510,00 3750,00 DYREKTOR 8100,00 9200,00 KIEROWNIK 3800,00 5500,00 MONTER 1300,00 2500,00 PRAKTYKANT 1150,00 1250,00 SEKRETARKA 1270,00 2050,00 Tabela Pracownicy ID Nazwisko Stanowisko Szef Zatrudniony Placa_pod Placa_dod ID_Oddz 100 SUMINSKI DYREKTOR NULL 1968-01-01 8130,00 420,50 10 110 BARTCZAK KIEROWNIK 100 1973-05-01 4350,00 210,00 40 120 MALINOWSKI KIEROWNIK 100 1977-09-01 4070,00 NULL 30 130 BRZEZINSKI KIEROWNIK 100 1968-07-01 4960,00 NULL 20 140 ZABLOCKI BRYGADZISTA 130 1975-09-15 4830,00 105,00 20 150 LEWANDOWSKI BRYGADZISTA 130 1977-09-01 2645,50 NULL 20 160 KOPROWSKI BRYGADZISTA 130 1985-03-01 2590,00 NULL 20 170 JEZIERSKI MONTER 130 1992-10-01 1439,70 80,50 20 NIF Strona 1

180 BOGULA SEKRETARKA 100 1985-02-20 1410,20 NULL 10 190 MALINIAK MONTER 140 1993-09-01 1371,00 NULL 20 200 URBANIAK PRAKTYKANT 140 1994-07-15 908,00 NULL 30 210 CELINSKI PRAKTYKANT 130 1993-10-15 950,00 170,60 30 220 KOWAL MONTER 110 1993-01-10 1480,00 NULL 20 230 HANTCZAK MONTER 120 1992-09-01 1480,00 90,00 30 Schemat prostego zapytania SQL pobierającego dane z bazy SELECT lista_kolumn * FROM nazwa_tabeli WHERE warunek warunek_złożony ORDER BY lista_kolumn2 ASC DESC Zadania Struktura bazy danych 1. Dlaczego pierwsze kolumny zostały zaznaczone kolorem pomarańczowym? 2. Dlaczego trzy kolumny w tabeli Pracownicy zostały zaznaczone kolorem różowym? 3. Narysować schemat powiązań między tabelami bazy danych Zapytania SQL 1. Wyświetl całość informacji z relacji ODDZIALY. 2. Wyświetl całość informacji z relacji PRACOWNICY. 3. Wyświetl nazwiska i roczne dochody pracowników (mnożenie * 12) z uwzględnieniem płac dodatkowych. Uwaga: Skorzystaj z funkcji IFNULL (lub ISNULL w MS SQL Server). Nazwisko Roczne_zarobki --------------- --------------------- SUMINSKI 13176,00 4. W zadaniu 3 dodatkowo posortuj wyniki wg wysokości zarobków. Skorzystaj z ORDER BY z opcją ASC. Sprawdź wynik, gdy ASC zostanie zamienione na DESC. 5. W poprzednim zadaniu dodaj nazwy stanowisk i zamień roczne dochody na dochody miesięczne z uwzględnieniem płac dodatkowych. Nazwisko Stanowisko Miesieczne_zarobki ------- ----------- --------------------- SUMINSKI DYREKTOR 8550,50 6. Wyświetl całość informacji o oddziałach sortując wynik według nazw oddziałów Skorzystaj z ORDER BY. ID Nazwa Adres ------ -------------------- --------------------- 10 POZNAN Kwiatowa 3 NIF Strona 2

7. Wyświetl listę stanowisk (bez duplikatów) na których zatrudnieni są pracownicy. Skorzystaj z SELECT DISTINCT. Stanowisko --------------- DYREKTOR 8. Wyświetl wszystkie informacje o kierownikach. Wykorzystaj klauzulę WHERE. ID Nazwisko itd ---- -------------------- --------------------- 110 BARTCZAK KIEROWNIK 9. Wybierz poniższe dane o pracownikach oddziałów 30 i 40 w kolejności malejących zarobków. Skorzystaj z WHERE, funkcji IN i ORDER BY ID Nazwisko Stanowisko Placa_pod Id_Oddz --- -------- ----------- ----------- ------------- 110 BARTCZAK KIEROWNIK 4350,00 40 10. Wybierz dane o pracownikach których płace podstawowe mieszczą się w przedziale od 1300 do 1800 zł. Skorzystaj z WHERE i funkcji BETWEEN. Nazwisko Oddzial Placa_pod ----------- ---------- --------------------- JEZIERSKI 20 80,50 11. Wyświetl poniższe informacje o pracownikach, których nazwisko kończy się na SKI. Skorzystaj z funkcji LIKE. Nazwisko Stanowisko Oddzial -------- -------------- --------------------- SUMINSKI DYREKTOR 10 12. Wyświetl poniższe informacje o tych pracownikach, którzy zarabiają powyżej 2000 złotych i posiadają szefa. Skorzystaj z warunku IS NOT NULL. ID Szef Nazwisko Placa_pod ---- ------ --------- -------------------- 110 100 BARTCZAK 4350,00 13. Wyświetl nazwiska i identyfikatory oddziałów pracowników zatrudnionych w oddziale nr 20, których nazwisko zaczyna się na M lub kończy na SKI. Skorzystaj z funkcji LIKE. Nazwisko Oddzial --------------- --------------------- BRZEZINSKI 20 MALINIAK 20 NIF Strona 3

Złączenia tabel Przykład złączenia tabel: SELECT a.*, b.* FROM Tabela a INNER JOIN DrugaTabela b ON b.atrybutb = a.atrybuta 1. Wyświetl nazwiska, etaty, numery oddziałów i nazwy oddziałów wszystkich pracowników. Wyniki posortuj według nazwisk. Skorzystaj ze złączenia INNER JOIN Nazwisko Stanowisko ID_Oddz Nazwa ------------------- --------- ----------- BARTCZAK KIEROWNIK 40 WROCLAW 2. Wyświetl wszystkich pracowników z Warszawy. Uporządkuj wyniki według nazwisk pracowników. Nazwisko Stanowisko ID_Oddz Nazwa ---------- -------------------- ----------- -------------------- BRZEZINSKI KIEROWNIK 20 WARSZAWA 3. Wyświetl nazwiska, miasta i adresy miejsc pracy oraz nazwy etatów tych pracowników, których płaca podstawowa przekracza 2500,00. Wyniki posortuj według płacy. Nazwisko Adres Stanowisko Placa_pod --------- ------------------------------- -------------------- --------- KOPROWSKI WARSZAWA al. Jerozolimskie 22 BRYGADZISTA 2590,00 4. Dla każdego pracownika wyświetl jego stanowisko, płacę podstawową i widełki płacowe w jakich mieści się pensja pracownika. Nazwisko Stanowisko Placa_pod Placa_min Placa_max -------- ---------- --------- --------- ----------- BARTCZAK KIEROWNIK 4350,00 3800,00 5500,00 5. Wyświetl nazwiska tych brygadzistów, których rzeczywiste zarobki nie odpowiadają widełkom płacowym przewidzianym dla brygadzistów. Nazwisko Stanowisko Placa_pod Placa_min Placa_max -------- ---------- --------- --------- ---------- ZABLOCKI BRYGADZISTA 4830,00 2510,00 3750,00 6. Wyświetl nazwiska, stanowiska, nazwy oddziałów i płace podstawowe pracowników nie będących praktykantami. Wyniki uszereguj zgodnie z malejącym wynagrodzeniem. Nazwisko Stanowisko Nazwa Placa_pod -------- ---------- ----- ------------ SUMINSKI DYREKTOR POZNAN 8130,00 NIF Strona 4

7. Wyświetl poniższe nazwiska tych pracowników których minimalna roczna płaca przekracza 15000. Wyniki posortuj według nazwisk. Nazwisko Stanowisko Roczna płaca min. -------- ---------- -------------------- BARTCZAK KIEROWNIK 45600,00 8. Wyświetl nazwiska i numery pracowników wraz z numerami i nazwiskami ich szefów. ID Nazwisko Szef Nazwisko --- -------- --- ---------- 110 BARTCZAK 100 SUMINSKI Funkcje grupujące 1. Wyświetl najniższą i najwyższą pensję w firmie. Wyświetl informację o różnicy dzielącej najlepiej i najgorzej zarabiających pracowników. Skorzystaj z funkcji MIN i MAX MINIMUM MAKSIMUM RÓŻNICA ---------- ---------- ---------- 908 8130 7222 2. Wyświetl średnie pensje dla wszystkich stanowisk. Wyniki uporządkuj wg malejącej średniej pensji. Skorzystaj z funkcji AVG STANOWISKO SREDNIA ---------- ---------- DYREKTOR 8130 3. Wyświetl liczbę zatrudnionych kierowników. Skorzystaj z funkcji COUNT. KIEROWNICY ------------ 4 4. Znajdź sumaryczne miesięczne płace dla każdego oddziału. Nie zapomnij o płacach dodatkowych. Skorzystaj z funkcji SUM ID_ODDZ SUMARYCZNE_PLACE ---------- ---------------- 10 9960,7 5. Zmodyfikuj zapytanie z zadania poprzedniego w taki sposób, aby jego wynikiem była sumaryczna miesięczna płaca w zespole, który wypłaca swoim pracownikom najwięcej pieniędzy. Skorzystaj z funkcji SUM oraz operacji ORDER BY i LIMIT 1 w MySQL (SELECT TOP 1 w MS SQL). NIF Strona 5

MAKS_SUM_PLACA -------------------------- 19501,70 6. Dla każdego pracownika wyświetl pensję najgorzej zarabiającego podwładnego. Wyniki uporządkuj wg malejącej pensji. Skorzystaj z funkcji MIN. SZEF MINIMALNA ---- ---------------- 120 1570,00 Zadania domowe 1. Wyświetl nazwiska, stanowiska i stawki godzinowe tych pracowników, którzy nie są ani brygadzistami ani monterami ani praktykantami i którzy nie zarabiają w przedziale od 1400 do 1800 złotych. Skorzystaj z NOT IN, NOT BETWEEN. Nazwisko Stanowisko Stawka ---------- ---------- --------- MALINOWSKI KIEROWNIK 25,4375 2. Wyświetl poniższe informacje o pracownikach, dla których suma płacy podstawowej i dodatkowej jest wyższa niż 3000 złotych. Wyniki uporządkuj według nazw stanowisk. Jeżeli dwóch pracowników ma to samo stanowisko, to posortuj ich według nazwisk. Nazwisko Stanowisko Placa_pod Placa_dod -------- ---------- --------- ---------- SUMINSKI DYREKTOR 8130,00 420,50 3. Dla każdego oddziału wyświetl jego nazwę, liczbę zatrudnionych w nim pracowników i ich średnią płacę. ID_Oddz Oddział Ilość prac. Średnia placa ------- ------- ----------- --------------------- 10 POZNAN 2 4770,10 4. Dla każdego pracownika posiadającego podwładnych wyświetl ich liczbę. Wyniki posortuj zgodnie z malejącą liczbą podwładnych. Nazwisko Ilość podwł. -------- ------------ BRZEZINSKI 5 NIF Strona 6