Ćwiczenie zapytań języka bazy danych PostgreSQL

Podobne dokumenty
Laboratorium Bazy danych SQL 2

ACESS- zadania z wykorzystaniem poleceń SQL

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.

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

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

SQL (ang. Structured Query Language)

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

Język SQL, zajęcia nr 1

Wykład 5. SQL praca z tabelami 2

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

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

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Relacyjne bazy danych. Podstawy SQL

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

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych SQL Server 2005

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

Relacyjne bazy danych. Podstawy SQL

Wprowadzenie do języka SQL

Laboratorium Bazy danych SQL 3 1

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

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

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

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

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

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

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

Systemy GIS Tworzenie zapytań w bazach danych

Język SQL. Rozdział 2. Proste zapytania

Wykład 8. SQL praca z tabelami 5

Podstawy języka SQL cz. 2

Grupowanie i funkcje agregujące

Wprowadzenie do baz danych

Bazy Danych i Usługi Sieciowe

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

Podstawowe zapytania SELECT (na jednej tabeli)

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

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

SQL do zaawansowanych analiz danych część 1.

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

Struktura bazy danych

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Technologie baz danych

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

Autor: Joanna Karwowska

Kurs. Podstawy MySQL

Bazy danych i usługi sieciowe

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wykład 05 Bazy danych

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

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

Zadania z SQLa (MS SQL Server)

Bazy danych. dr Radosław Matusik. radmat

Ćwiczenie 4 - połączenia

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych. Polecenia SQL

Ćwiczenie 5 podzapytania

Podstawowe funkcje dodatku linq w C#

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Baza danych Uczniowie.mdb

Bazy Danych i Usługi Sieciowe

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Komunikacja z bazą danych psql

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Język SQL, zajęcia nr 2

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

SQL. Æwiczenia praktyczne

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

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

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

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

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

Ćwiczenie 6 - DML. Tworzenie, modyfikacja i usuwanie krotek. Podstawy poleceń COMMIT i ROLLBACK. Ćwiczenie 6 DML. Wymagania: Bazy Danych

Wykład 6. SQL praca z tabelami 3

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

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

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

Zapytania do baz danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

1. Język T SQL wprowadzenie do tworzenia zapytań i modyfikowania bazy danych

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

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

3. Podzapytania, łączenie tabel i zapytań

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

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

Optymalizacja poleceń SQL Metody dostępu do danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

PODZAPYTANIE (SUBSELECT)

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Ćwiczenie 3 funkcje agregujące

Transkrypt:

Ć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. 4. Kliknij w link zaznaczony na rysunku: 5. Baza postgres2 ma 3 tabele (kliknij przy dla każdej tabeli prawym przyciskiem na link 'przeglądaj' i następnie otwórz w nowej karcie): PRACOWNIK: ETAT:

ZESPOL: 6. Klucze i relacje między tabelami: tabela PRACOWNIK posiada klucz podstawowy NUMER, tabela PRACOWNIK posiada klucz obcy do tabeli ETAT: kolumna ETAT z tabeli PRACOWNIK odnosi się do kolumny ID_ETAT z tabeli ETAT, tabela PRACOWNIK posiada klucz obcy do samej siebie: kolumna SZEF odnosi się do kolumny NUMER, tabela PRACOWNIK posiada klucz obcy do tabeli ZESPOL: kolumna ID_ZESP z tabeli PRACOWNIK odnosi się do kolumny ID_ZESP z tabeli ZESPOL, tabela ETAT posiada klucz podstawowy ID_ETAT, tabela ZESPOL posiada klucz podstawowy ID_ZESP. 7. Zrealizuj następujące polecenia SQL: A1) Wyświetl wszystkie kolumny dla wszystkich rekordów tabeli PRACOWNIK: Kliknij w link SQL w oknie wyświetlonym po wejściu do bazy postgres2: Wpisz komendę: SELECT * ; instrukcja wyświetlania: SELECT informacja, że potrzebne są wszystkie kolumny: * określenie z jakiej tabli mają być wyświetlane rekordy: FROM + nazwa tabeli

wynik zapytania : Kolejne zapytania realizuj w oknie edycji zapyta ń kliknij Edycja zapytania SQL w screenie powyżej!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! A2) JW. ale wyświetl tylko kolumny NAZWISKO i PLACA_POD dla wszystkich rekordów tabeli PRACOWNIK: ; zamiast * należy użyć użyć poszczególnych nazw kolumn A3) JW. ale wyświetl tylko kolumny NAZWISKO i PLACA_POD dla wszystkich rekordów tabeli PRACOWNIK, dla których płaca podstawowa jest większa niż 1200: WHERE "PLACA_POD" > 1200; A4) JW. ale ogranicz zapytanie dla nazwisk, które zaczynają się na literę 'M': WHERE "PLACA_POD" > 1200 AND "NAZWISKO" LIKE 'M%'; analogicznie można określić nazwisko kończące się na dowolną literę lub litery np. LIKE '%EM' lub posiadające jakiś tekst w środku np. LIKE '%EM%' łączenie warunków poprzez operatory logiczne: AND i OR A5) JW. ale posortuj wynik zapytania po nazwisku rosnąco: WHERE "PLACA_POD" > 1200 AND "NAZWISKO" LIKE 'M%' ORDER BY "NAZWISKO" ASC;

ORDER BY "NAZWA_KOLUMNY" ASC: sortuje wynik zapytania po wybranej kolumnie rosnąco ORDER BY "NAZWA_KOLUMNY" DESC: sortuje wynik zapytania po wybranej kolumnie malejąco B1) Wyświetl zawartość połączonych tabeli PRACOWNIK oraz ETAT dla wszystkich kolumn: SELECT * JOIN "ETAT" ON "PRACOWNIK"."ETAT" = "ETAT"."ID_ETAT"; instrukcja JOIN służy do łączenia tabel, natomiast ON określa po jakiej kolumnie są łączone tabele: "NAZWA_TABELI_1" JOIN "NAZWA_TABELI_2" ON "NAZWA_TABELI_1"."KLUCZ_OBCY_ODNOSZĄCY_SIĘ_DO_TABELI_2" = "NAZWA_TABELI_2"."ID_REKORDU" kolejność w tabel w instrukcji JOIN oraz kolumn po ON nie ma znaczenia czyli dla przykładu powyżej można napisać np. : "ETAT" JOIN "PRACOWNIK" ON "ETAT"."ID_ETAT" = "PRACOWNIK"."ETAT" jeśli nazwy kolumn po których łączone są tabele nie powtarzają się, to nie trzeba pisać nazwy tabeli: SELECT * JOIN "ETAT" ON "ETAT" = "ID_ETAT"; B2) JW. ale wyświetl nazwę kolumny NAZWISKO, PLACA_POD oraz nazwę etatu:, "NAZWA" JOIN "ETAT" ON "ETAT" = "ID_ETAT"; B3) JW. ale przed nazwami kolumn użyj aliasów tabeli: SELECT p."nazwisko", p."placa_pod", e."nazwa" p JOIN "ETAT" e ON p."etat" = e."id_etat"; aliasy pozwalają używać zamiast długiej nazwy tabeli używać np. pojedynczej litery, przy długich zapytaniach, gdzie jest łączone np. 5 tabel mogą ułatwić określenie, jakie kolumny należą do poszczególnych tabel, a zarazem zapytanie nie będzie tak długie jak w przypadku użycia pełnych nazw tabel. C1) Połącz tabele PRACOWNIK, ETAT, ZESPOL i wyświetl dla nich nazwisko, płacę podstawową nazwę zespołu i nazwę etatu: SELECT p."nazwisko", p."placa_pod", e."nazwa", z."nazwa" p JOIN "ETAT" e ON p."etat" = e."id_etat" JOIN "ZESPOL" z ON p."id_zesp" = z."id_zesp"; C2) JW. ale posortuj powyższe zapytanie poprzez kolumnę płaca podstawowa malejąco: SELECT p."nazwisko", p."placa_pod", e."nazwa", z."nazwa" p JOIN "ETAT" e ON p."etat" = e."id_etat" JOIN "ZESPOL" z ON p."id_zesp" = e."id_zesp" ORDER BY p."placa_pod" DESC; D) Dodaj rekord do tabeli PRACOWNIK: INSERT INTO "PRACOWNIK"

("NUMER", "NAZWISKO", "ETAT", "SZEF", "PRACUJE_OD", "PLACA_POD", "ID_ZESP") VALUES (1211, 'Lubomirski', 1, 1030, now(), 1200, 30); INSERT INTO "NAZWA_TABELI" dodanie do tabeli dalej w nawiasach muszą się pojawić wszystkie kolumny tabeli, następnie słowo VALUES oraz w nawiasach wartości jakie mają zostać wpisane do kolumn, now() funkcja zwracająca bieżącą datę, teksty piszemy w pojedynczych cudzysłowach np. 'Lubomirski', liczby bez cudzysłowów, kolejność nazw kolumn w nawiasach i ich wartości w nawiasach po słowie VALUES musi być taka sama. E) Usuń rekord z tabeli PRACOWNIK o nazwisku 'Kolski' : DELETE WHERE "NAZWISKO" = 'Kolski'; DELETE FROM "NAZWA_TABELI" usunięcie rekordów z tabeli, WHERE warunek usuwania wierszy, jeśli go nie będzie, to zostanie usunięta całą zawartość tabeli. F) Daj pracownikom zarabiającym poniżej 2000, podwyżkę o 10%: UPDATE "PRACOWNIK" SET "PLACA_POD" = 1.1 * "PLACA_POD" WHERE "PLACA_POD" < 2000; UPDATE "PRACOWNIK" zmiana w tabeli, SET zmiana konkretnej kolumny/kolumn tabeli na określoną wartość/wartości WHERE warunek zmieniania konkretnej kolumny/kolumn dla wybranych rekordów, jeśli go nie będzie, to zostanie zmieniona wartość kolumny/kolumn dla wszystkich rekordów. G1) Wyświetl średnią płacy podstawowej z tabeli PRACOWNIK: SELECT avg("placa_pod") avg(...) funkcja licząca średnią, inne to np. max(), min(), count() G2) JW. użyj aliasów nazywając kolumnę wyświetlania "SREDNIA_ZAROBKOW" SELECT avg("placa_pod") "SREDNIA_ZAROBKOW" H) Wyświetl średnią płacy dla poszczególnych zespołów oraz zespoły: Pierwsza część wyświetlenie id zespołu plus średnia płaca (będzie to podzapytanie w b), którego wynik zostanie połączony z tabelą ZESPOL): SELECT avg("placa_pod"), "ID_ZESP" p GROUP BY "ID_ZESP" Całe zapytanie: SELECT z."nazwa", q."srednia_zarobkow" FROM "ZESPOL" z JOIN ( SELECT avg("placa_pod") "SREDNIA_ZAROBKOW", "ID_ZESP" p GROUP BY "ID_ZESP" ) q ON z."id_zesp" = q."id_zesp" ORDER BY q."srednia_zarobkow" DESC; I) Wyświetl wszystkie nazwiska, które mają w sobie literę k: SELECT "NAZWA" FROM SELECT "PRACOWNIK" WHERE lower("nazwa") LIKE '%k%';

lower(..) zamienia tymczasowo w zapytaniu wszystkie duże litery tekstu na małe, małe pozostają bez zmian, przeciwieństwo to upper(...) Więcej informacji: http://ssamolej.kia.prz.edu.pl/dydaktyka/inf_1ee_zi/instrukcja_bd_en_v3-1.pdf