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



Podobne dokumenty
Wykład 05 Bazy danych

Grupowanie i funkcje agregujące

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Język SQL, zajęcia nr 1

Wykład 5. SQL praca z tabelami 2

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

LAB 3 (część 1 Projektu)

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

ACESS- zadania z wykorzystaniem poleceń SQL

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

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

Projektowanie Systemów Inf.

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

SQL (ang. Structured Query Language)

Zadania z SQLa (MS SQL Server)

Przykładowa baza danych BIBLIOTEKA

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Widok Connections po utworzeniu połączenia. Obszar roboczy

Wykład 6. SQL praca z tabelami 3

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

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

Relacyjne bazy danych. Podstawy SQL

Przestrzenne bazy danych Podstawy języka SQL

Autor: Joanna Karwowska

SQL: zadania + odpowiedzi, wszystkie podstawowe schematy.

Wykład 8. SQL praca z tabelami 5

Bazy danych. dr inż. Arkadiusz Mirakowski

Podstawowe zapytania SELECT (na jednej tabeli)

Hurtownia Świętego Mikołaja projekt bazy danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

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

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

BAZA DANYCH SIECI HOTELI

Relacyjne bazy danych. Podstawy SQL

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

Monika Sychla Daniel Smolarek Projekt bazy danych

CREATE TABLE autorzy ( id_autora SERIAL PRIMARY KEY, imie TEXT, nazwisko TEXT );

Autor: Joanna Karwowska

Paweł Rajba

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

Bazy danych. Dr inż. Paweł Kasprowski

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Tworzenie raportów XML Publisher przy użyciu Data Templates

Struktura bazy danych

Bazy Danych i Usługi Sieciowe

Bazy danych SQL Server 2005

Jerzy Nawrocki, Wprowadzenie do informatyki

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

Baza danych. Baza danych jest to zbiór danych powi zanych mi dzy sob pewnymi zale no ciami.

Bazy danych i usługi sieciowe

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

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

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

a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)

Baza danych Uczniowie.mdb

Baza danych hotel Maciej Gerus

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Język SQL, zajęcia nr 2

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

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

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych 7. SQL podstawy

Ćwiczenie zapytań języka bazy danych PostgreSQL

Projektowanie systemów baz danych

Komunikacja z bazą danych psql

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

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

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Wprowadzenie do baz danych

Bazy danych. Andrzej Łachwa, UJ, /15

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

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

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

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

Bazy danych 5. Samozłaczenie SQL podstawy

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

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

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

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Technologie baz danych

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

Bazy Danych i Usługi Sieciowe

Bazy danych. Projekt prostej biblioteki. 26 stycznia Hubert Anisimowicz,

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

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

SQL w praktyce. Miłej i owocnej nauki!!!

Wprowadzenie do języka SQL

Laboratorium Bazy danych SQL 2

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.

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 Ruby

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

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

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

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

PL/SQL. Zaawansowane tematy PL/SQL

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Transkrypt:

1. Zaªó» tabel logika o trzech atrybutach p,q,r typu BOOLEAN. Uzupeªnij j wszystkimi mo»liwymi waluacjami logiki SQL (oczywi±cie nie rób tego r cznie). Nast pnie przy u»yciu komend SQLa sprawd¹, dla jakich waluacji formuªa zdaniowa ((p q) (q IS NULL)) IS NULL r przyjmuje warto± NULL. W ten sposób przekonaj si, czy jest ona tautologi w logice SQL. CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL); SELECT L1.p AS p, L2.p AS r, L3.p AS q FROM logika AS L1, logika AS L2, logika AS L3 WHERE ((((L1.p AND (NOT L3.p)) OR (L3.p IS NULL)) IS NULL) AND (NOT L2.p)) IS NULL; 2. Baza danych opisuj ca struktur pewnej rmy ma nast puj cy schemat: pracownicy (nr_pracownika INTEGER, imie TEXT, nazwisko TEXT, stanowisko TEXT, opis TEXT, przelozony INTEGER, data_zatrudnienia DATE, pensja DECIMAL(7,2), prowizja DECIMAL(7,2), nr_wydzialu INTEGER) wydzialy (nr_wydzialu INTEGER, nazwa INTEGER, lokalizacja TEXT) pensje (nr_przedzialu INTEGER, dolna_granica DECIMAL(7,2), gorna_granica DECIMAL(7,2)) Napisz zapytania realizuj ce nast puj ce zadania: (a) wyznacz list pracowników, których nazwisko zaczyna si liter K i zostali zatrudnieni przed 1998 r. Uporz dkuj list wg daty zatrudnienia w porz dku malejacym, \i Dokumenty/semestr.3/Bazy.Danych/lista2/firma.sql SELECT imie, nazwisko FROM pracownicy WHERE (nazwisko >'K') AND (nazwisko < 'L') AND (data_zatrudnienia < '1998-01-01') ORDER BY data_zatrudnienia DESC; (b) wyznacz list pracowników, którzy pracuj na stanowisku dyrektor w miastach Pozna«lub Toru«, SELECT imie, nazwisko FROM pracownicy, wydzialy WHERE pracownicy.nr_wydzialu=wydzialy.nr_wydzialu AND pracownicy.stanowisko='dyrektor' AND (wydzialy.lokalizacja='poznan' OR wydzialy.lokalizacja='torun'); (c) wyznacz list osób, których zarobki znajduj si w drugim przedziale pensji. Uporz dkuj wg miejsca pracy, SELECT pracownicy.imie AS imie, pracownicy.nazwisko AS nazwisko FROM pracownicy, wydzialy, pensje WHERE pracownicy.nr_wydzialu=wydzialy.nr_wydzialu AND pensje.nr_przedzialu=2 1

Bazy danych AND pensje.dolna_granica <= pracownicy.pensja AND pracownicy.pensja <= pensje.gorna_granica ORDER BY wydzialy.lokalizacja DESC; (d) wyznacz nazwiska pracowników, którzy pracuj w tych samych wydziaªach, co ich przeªo»eni. Obok nazwiska pracownika umie± nazwisko przeªo»onego i nr wydziaªu, w którym obaj pracuj, SELECT pracownicy.imie AS imie, pracownicy.nazwisko AS nazwisko, przelozeni.nazwisko AS przelozony, pracownicy.nr_wydzialu AS numer_wydzialu FROM pracownicy, pracownicy AS przelozeni WHERE pracownicy.przelozony=przelozeni.nr_pracownika AND pracownicy.nr_wydzialu=przelozeni.nr_wydzialu; (e) wyznacz stanowiska (bez powtórze«), na których nie ma prowizji. Uporz dkuj wynik wg liczby liter w stanowisku (wskazówka: dªugo± napisu jest zwracana przez funkcj length, a ko«cowe spacje mo»na usun funkcj rtrim), SELECT stanowisko FROM pracownicy WHERE prowizja > 0 OR prowizja IS NULL GROUP BY stanowisko ORDER BY length(rtrim(stanowisko)); (f) ustaw w pary pracowników, którzy pracuj w tym samym wydziale. powinny by ró»ne i pary nie powinny si powtarza, Nazwiska w parach SELECT pracownicy1.nazwisko AS nazwisko, pracownicy2.nazwisko AS nazwisko, pracownicy1.nr_wydzialu AS nr_wydzialu FROM pracownicy AS pracownicy1, pracownicy AS pracownicy2 WHERE pracownicy1.nr_wydzialu=pracownicy2.nr_wydzialu AND pracownicy1.nr_pracownika < pracownicy2.nr_pracownika; 3. U»ywaj c pliku poset.sql utwórz tabel p opisuj c pewn relacj dwuargumentow. Przy pomocy komend SQLa: (a) wypisz wszystkie liczby wyst puj ce w p; oznaczmy zbiór tych liczb przez d; \i Dokumenty/semestr.3/Bazy.Danych/lista2/poset.sql INSERT INTO d (SELECT x FROM p UNION SELECT y FROM p); (b) traktuj c p jako relacj na d sprawd¹, czy jest ona zwrotna; SELECT z FROM d SELECT x FROM p WHERE p.x=p.y; (c) nie oszukujmy si nie jest zwrotna; popraw p tak, by byªa zwrotna na d; CREATE TABLE p2 (x INTEGER, y INTEGER); INSERT INTO p2 (SELECT * FROM p UNION SELECT z,z FROM d); 2

i sprawdzenie SELECT z FROM d SELECT x FROM p2 WHERE p2.x=p2.y; (d) sprawd¹,»e tak poprawiona p jest cz ±ciowym porz dkiem na d; przechodznio± SELECT raz.x, raz.y, dwa.y FROM p2 AS raz, p2 AS dwa WHERE raz.y=dwa.x SELECT raz.x, raz.y, dwa.y FROM p2 AS raz, p2 AS dwa, p2 AS trzy WHERE raz.y=dwa.x AND raz.x=trzy.x AND dwa.y=trzy.y; sªaba antysymetria SELECT * FROM p2 AS raz, p2 AS dwa WHERE raz.x=dwa.y AND raz.y=dwa.x AND raz.x!=raz.y; (e) wylicz, ile jest elementów maksymalnych w (d, p). SELECT count(*) FROM ((SELECT x as d FROM p UNION SELECT y FROM p) SELECT x AS d FROM p WHERE x!= y) AS a; 4. Pewna ksi garnia ma baz danych zgodn z nast puj cym schematem: autorzy (nr_autora INTEGER, imie TEXT, nazwisko TEXT) ksiazki (isbn TEXT, wydawca TEXT, tytul TEXT, rok_wydania INTEGER) egzemplarze (nr_egzemplarza INTEGER, isbn TEXT) autorstwa (isbn TEXT, nr_autora INTEGER) tematy (nr_tematu INTEGER, nazwa TEXT, wyjasnienie TEXT) na_temat (isbn TEXT, nr_tematu INTEGER) Napisz zapytania realizuj ce nast puj ce zadania: (a) wypisz nazwiska autorów, którzy napisali przynajmniej jedn ksi»k na temat baz danych, 3

Bazy danych (b) \i Dokumenty/semestr.3/Bazy.Danych/lista2/ksiegarnia.sql SELECT autorzy.imie, autorzy.nazwisko FROM autorzy, autorstwa, na_temat, tematy WHERE autorzy.nr_autora=autorstwa.nr_autora AND autorstwa.isbn = na_temat.isbn AND na_temat.nr_tematu=tematy.nr_tematu AND tematy.nazwa= 'bazy danych' GROUP BY autorzy.imie, autorzy.nazwisko; (c) wypisz numery tematów, w których zakresie znajduj si ksia»ki, których autorzy napisali przy- najmniej jedn ksi»k z psychologii, SELECT na_temat.nr_tematu FROM ( SELECT autorzy.nr_autora AS autor FROM autorzy, autorstwa, na_temat, tematy WHERE autorzy.nr_autora=autorstwa.nr_autora AND autorstwa.isbn = na_temat.isbn AND na_temat.nr_tematu=tematy.nr_tematu AND tematy.nazwa= 'psychologia') AS numery, autorstwa, na_temat WHERE na_temat.isbn=autorstwa.isbn AND autorstwa.nr_autora=numery.autor GROUP BY na_temat.nr_tematu; (d) wyznacz nazwiska autorów, ktorzy wydali przynajmniej jedn ksi»k przed rokiem 2000, (e) SELECT autorzy.nazwisko AS nazwisko FROM ksiazki, autorstwa, autorzy WHERE ksiazki.rok_wydania < 2000 AND ksiazki.isbn=autorstwa.isbn AND autorstwa.nr_autora=autorzy.nr_autora GROUP BY nazwisko; (f) wypisz tytuªy ksi»ek wydanych w roku 1999, SELECT tytul FROM ksiazki WHERE rok_wydania = 1999; (g) sprawd¹, czy w±ród ksi»ek znajduje si taka, której»adnego egzemplarza nie ma obecnie w ksi - garni, SELECT ksiazki.isbn AS isbn, ksiazki.tytul AS tytul, ksiazki.wydawca AS wydawca, ksiazki.rok_wydania AS rok_wydania FROM (SELECT isbn FROM ksiazki SELECT isbn FROM egzemplarze) AS id, ksiazki WHERE ksiazki.isbn=id.isbn; (h) klient chce kupi Frankensteina Mary Shelley. Sprawd¹, czy taka ksi»ka jest na skªadzie i je±li jest, zaktualizuj baz o informacj o sprzeda»y jednego egzemplarza (oczywi±cie zakªadamy,»e klient»yczy sobie najnowsze z dost pnych wyda«). CREATE VIEW do_sprzedazy AS SELECT ksiazki.tytul AS tytul, ksiazki.isbn AS isbn, autorzy.imie AS imie, autorzy.nazwisko AS nazwisko, 4

ksiazki.rok_wydania AS rok, egzemplarze.nr_egzemplarza AS numer FROM egzemplarze, ksiazki, autorstwa, autorzy WHERE egzemplarze.isbn=ksiazki.isbn AND ksiazki.isbn=autorstwa.isbn AND autorstwa.nr_autora=autorzy.nr_autora AND ksiazki.tytul='frankenstein' AND autorzy.imie='mary' AND autorzy.nazwisko='shelley' GROUP BY rok, tytul, ksiazki.isbn, imie, nazwisko, numer; CREATE VIEW numerek AS SELECT do_sprzedazy.numer AS nr FROM do_sprzedazy, (SELECT MAX(rok) AS m FROM do_sprzedazy) AS max WHERE rok=max.m; DELETE FROM egzemplarze WHERE nr_egzemplarza=20; 5