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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy danych. Dr inż. Paweł Kasprowski

Systemy GIS Tworzenie zapytań w bazach danych

Przestrzenne bazy danych Podstawy języka SQL

Paweł Rajba

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

Język SQL podstawy zapytań

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Wprowadzenie do języka SQL

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

Wykład 5. SQL praca z tabelami 2

Język SQL, zajęcia nr 1

Relacyjne bazy danych. Podstawy SQL

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Projektowanie systemów baz danych

Wykład 6. SQL praca z tabelami 3

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

Autor: Joanna Karwowska

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

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

SQL Structured Query Language

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Współczesne systemy baz danych

Współczesne systemy baz danych

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

SQL (ang. Structured Query Language)

Relacyjne bazy danych. Podstawy SQL

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

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

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

Oracle11g: Wprowadzenie do SQL

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Język SQL. Rozdział 2. Proste zapytania

Wykład 05 Bazy danych

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

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Wprowadzenie do baz danych

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

Bazy danych 7. SQL podstawy

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Wykład 2. SQL 1 Structured Query Lenguage

SQL Structured Query Language

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

Bazy danych Access KWERENDY

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

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

Bazy danych. Polecenia SQL

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Wykład 8. SQL praca z tabelami 5

ACESS- zadania z wykorzystaniem poleceń SQL

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

8.9. Język SQL Kwerenda wybierająca w języku SQL

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

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

Bazy danych. dr inż. Arkadiusz Mirakowski

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

Microsoft SQL Server Podstawy T-SQL

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

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Język SQL, zajęcia nr 2

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

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

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

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

Autor: Joanna Karwowska

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych - wykład wstępny

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

Bazy danych SQL Server 2005

Bazy danych 5. Samozłaczenie SQL podstawy

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

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

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

Bazy danych Ćwiczenia projektowe

3. Podzapytania, łączenie tabel i zapytań

Oracle PL/SQL. Paweł Rajba.

Autor: Joanna Karwowska

RBD Relacyjne Bazy Danych

SQL Structured Query Language

Zadania z SQLa (MS SQL Server)

Transkrypt:

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 manipulowania danymi utworzony przez firmę IBM. Obowiązuje jako standardowe narzędzie w systemach zarządzania relacyjnymi bazami danych. Zestaw poleceń związanych z przeszukiwaniem danych jest oparty na algebrze relacji. SQL jest podjęzykiem danych. Może być wykorzystany wyłącznie do komunikacji z bazą danych, nie ma cech pozwalających na tworzenie kompletnych programów. Standardy SQL SQL-86 pierwszy oficjalny standard języka wspierany przez Międzynarodową Organizację Normalizacyjną (ISO) oraz Amerykański Narodowy Instytut Normalizacji (ANSI). Określał wspólną płaszczyzną łączącą produkty różnych producentów, pozostawiał dużą swobodę twórcom implementacji. SQL-89 drobna (minor) modyfikacja standardu 86, brak pełnej zgodności pomiędzy produktami różnych producentów. SQL-92 precyzyjna specyfikacja składni, zapewnienie zgodności pomiędzy różnymi produktami, standard obowiązujący do dziś. Kolejne standardy: SQL:1999 (SQL3-przestarzały), SQL:2003, SQL:2006, SQL:2008, SQL:2011, SQL:2016 nowe typy danych, funkcje, itp. Bazy danych s.5-2

Klasyfikacja poleceń SQL DQL (Data Query Language) formułowanie zapytań SELECT operacje rzutowania selekcji i złączenia. DDL (Data Definition Language) operacje na strukturach danych CREATE tworzenie struktury (bazy danych, tabeli), DROP ALTER usunięcie struktury, zmiana struktury danych. DML (Data Manipulation Language) operacje na danych INSERT umieszcza dane w bazie, UPDATE aktualizuje dane, DELETE usuwa dane z bazy. DCL (Data Control Language) kontrola uprawnień GRANT nadawanie uprawnień do obiektów bazy danych, REVOKE odbieranie uprawnień, DENY blokowanie możliwości wykonania określonych operacji. Bazy danych s.5-3

Przykładowy zestaw danych Relacja PR(IDP, Nazwisko, Imię, Płaca, IDW) Relacja W(IDW,Nazwa) IDP Nazwisko Imię Płaca IDW 1 Nowak Andrzej 3250 W3 2 Kowalski Jan 2700 W1 3 Kot Adam 4500 W1 4 Ryba Michał 2250 W3 IDW W1 W3 Nazwa Marketing Transport Relacja PM(IDP,Premia) IDP Premia 2 2750 1 2500 3 5300 Bazy danych s.5-4

Podstawowa składnia zapytania w języku SQL SELECT atrybuty FROM WHERE relacje warunek; Formułowanie zapytań (DQL) gdzie atrybuty to rozdzielona przecinkami lista atrybutów, których wartości są zwracane jako wynik zapytania; relacje to rozdzielona przecinkami lista nazw relacji (tabel), z których pobierane są dane; opcjonalny warunek to dowolne wyrażenie warunkowe zbudowane przy pomocy operatorów relacyjnych i logicznych. Odwołania do atrybutów można poprzedzić nazwą relacji z kropką (ważne gdy nazwy atrybutów powtarzają się w kilku relacjach), domyślnie SQL przyjmuje, że odwołanie dotyczy atrybutu z pierwszej relacji w której wystąpił. Do konstruowania warunków używa się operatorów relacyjnych i logicznych zdefiniowanych przez algebrę relacji (wykład 2. s.7.) Bazy danych s.5-5

Rzutowanie w SQL Operator rzutowania tworzy nową relację, która powstaje z relacji pierwotnej przez wybór wskazanych atrybutów. W SQL rzutowaniu odpowiada lista atrybutów w umieszczona w klauzuli SELECT. Przykłady IDP,Płaca PR(IDP,Nazwisko,Imię,Płaca,IDW) SELECT IDP, Płaca FROM PR; IDP Nazwisko Imię Płaca IDW 1 Nowak Andrzej 3250 W3 2 Kowalski Jan 2700 W1 3 Kot Adam 4500 W1 4 Ryba Michał 2250 W3 Nazwa W (IDW, Nazwa) SELECT Nazwa FROM W; IDW W1 W3 Nazwa Marketing Transport Znak * oznacza wszystkie atrybuty relacji IDP,Premia PM(IDP,Premia) SELECT * FROM PM; IDP Premia 2 2750 1 2500 3 5300 Bazy danych s.5-6

Selekcja w SQL Operacja selekcji tworzy nową relację, która powstaje z relacji pierwotnej poprzez wybór wierszy spełniających określone kryterium. W SQL kryterium selekcji określa wyrażenie warunkowe umieszczone w klauzuli WHERE. Uwaga: dane tekstowe należy umieszczać w apostrofach (') Przykłady Płaca > 3000 PR(IDP,Nazwisko,Imię,Płaca,IDW) SELECT * FROM PR WHERE Płaca>3000; IDP Nazwisko Imię Płaca IDW 1 Nowak Andrzej 3250 W3 2 Kowalski Jan 2700 W1 3 Kot Adam 4500 W1 4 Ryba Michał 2250 W3 IDW=W3 PR(IDP,Nazwisko,Imię,Płaca,IDW) SELECT * FROM PR WHERE IDW='W3'; IDP Nazwisko Imię Płaca IDW 1 Nowak Andrzej 3250 W3 2 Kowalski Jan 2700 W1 3 Kot Adam 4500 W1 4 Ryba Michał 2250 W3 Bazy danych s.5-7

Wyrażenia w klauzuli WHERE Klauzula WHERE dopuszcza następujące typy predykatów: porównania logiczne (operatory =, >, >=, <, <=, <>, OR, AND, NOT), operator IN(zbiór) porównanie wartości ze zbiorem, operator BETWEN przedział sprawdzenie przynależności do przedziału, operator LIKE porównanie tekstu z wzorcem, wartość NULL. Przykłady SELECT * FROM PR WHERE IDW='W1' OR IDW='W2'; SELECT * FROM PR WHERE IDW IN('W1','W2'); SELECT * FROM PR WHERE Płaca>=2500 AND Płaca<=4000; SELECT * FROM PR WHERE Płaca BETWEEN 2500 AND 4000; SELECT * FROM PR WHERE Nazwisko LIKE 'Ko*'; Uwaga: standard SQL-92 jako symbol dowolnego ciągu znaków stosowanego w operatorze LIKE określa '%'. Symbol '*' jest wymagany w MS Access. Bazy danych s.5-8

Złączenie w SQL-89 Złączenie tworzy nową relację zawierającą pary krotek z relacji podlegających złączeniu, które mają spełniają określony warunek. Złączenie naturalne łączy krotki na podstawie wartości atrybutów wspólnych (występujących w obydwu łączonych relacjach), złączenie teta umożliwia zdefiniowanie dowolnego warunku. Standard SQL-89 realizuje złączenie poprzez wyrażenie warunkowe umieszczone w klauzuli WHERE (nie wykonuje automatycznie złączenia naturalnego). Przykład PR(IDP,Nazwisko, Imię, Płaca, IDW) W (IDW, Nazwa) SELECT * FROM PR,W WHERE PR.IDW=W.IDW; IDP Nazwisko Imię Płaca IDW 1 Nowak Andrzej 3250 W3 2 Kowalski Jan 2700 W1 3 Kot Adam 4500 W1 4 Ryba Michał 2250 W3 IDW W1 W3 Nazwa Marketing Transport Bazy danych s.5-9

Złączenie w SQL-92 Standard SQL-92 wprowadza operator JOIN, który wykonuje złączenie w klauzuli FROM. Wynik złączenia jest traktowany jako nowa relacja używana w zapytaniu. Rodzaje złączeń: Złączenie wewnętrzne INNER JOIN złączenie oparte o zależności pomiędzy wybranymi atrybutami łączonych relacji, Złączenie zewnętrzne OUTER JOIN złączenie którego wynikiem są wszystkie atrybuty jednej z relacji i odpowiadające im atrybuty drugiej relacji. Podstawowa składnia relacja1 INNER JOIN relacja2 ON warunek relacja1 LEFT RIGHT FULL OUTER JOIN relacja2 ON warunek Etapy realizacji złączenia 1. Obliczenie iloczynu kartezjańskiego łączonych relacji (wszystkich par krotek), 2. Dla każdego wiersza wyznaczana jest wartość warunku określonego w ON, 3. Odrzucenie wszystkich wierszy niespełniających warunku, 4. W przypadku OUTER JOIN: dołączenie pozostałych krotek relacji znajdującej się z lewej (LEFT), prawej (RIGHT) lub po obydwu (FULL) stronach JOIN. Bazy danych s.5-10

Złączenie wewnętrzne (1) Złączenie wewnętrzne łączy dane z dwóch relacji na podstawie wskazanego elementu(ów) występującego w obydwu łączonych relacjach. SELECT atrybuty FROM relacja1 INNER JOIN relacja2 ON warunek Przykłady SELECT * FROM PR INNER JOIN PM ON PR.IDP=PM.IDP; PR.IDP Nazwisko Imię Płaca IDW PM.IDP Premia 1 Nowak Andrzej 3250 W3 1 2500 2 Kowalski Jan 2700 W1 2 2750 3 Kot Adam 4500 W1 3 5300 SELECT * FROM PR INNER JOIN PM ON (PR.IDP=PM.IDP AND Płaca<Premia); PR.IDP Nazwisko Imię Płaca IDW PM.IDP Premia 3 Kot Adam 4500 W1 3 5300 Alternatywa: SELECT * FROM PR INNER JOIN PM ON PR.IDP=PM.IDP WHERE Płaca<Premia; Bazy danych s.5-11

Złączenie wewnętrzne (2) Standard SQL-92 wprowadza dwa szczególne przypadki złączenia wewnętrznego Equi-join szczególny przypadek złączenia używającego w porównaniu wskazanych elementów operatora równości. SELECT atrybuty FROM relacja1 INNER JOIN relacja2 USING atrybuty; Złączenie naturalne szczególny przypadek equi-join, porównuje wartości kolumn o identycznych nazwach. SELECT atrybuty FROM relacja1 NATUAL JOIN relacja2; Przykłady. Poniższe kwerendy dają wynik identyczny z pierwszą kwerendą ze s.11 SELECT * FROM PR INNER JOIN PM USING IDP; SELECT * FROM PR NATUAL JOIN PM; Uwaga: equi-join oraz natural join nie są obsługiwane przez niektóre systemy zarządzania bazami danych (np. MS Access). Bazy danych s.5-12

Złączenie zewnętrzne Złączenie zewnętrzne łączy dane z dwóch relacji na podstawie określonego warunku, wynik jest uzupełniany o pozostałe krotki relacji znajdującej się po określonej stronie złączenia. SELECT atrybuty FROM relacja1 LEFT RIGHT FULL OUTER JOIN relacja2 ON warunek; Słowa LEFT, RIGHT, FULL określają relację, której krotki zostaną dołączone do wyniku złączenia. W danym poleceniu może wystąpić tylko jedno z tych słów. Przykład złączenie lewostronne SELECT * FROM PR LEFT OUTER JOIN PM ON PR.IDP=PM.IDP; PR.IDP Nazwisko Imię Płaca IDW PM.IDP Premia 1 Nowak Andrzej 3250 W3 1 2500 2 Kowalski Jan 2700 W1 2 2750 3 Kot Adam 4500 W1 3 5300 4 Ryba Michał 2250 Bazy danych s.5-13

Porządkowanie wyniku Polecenie SELECT może być uzupełnione klauzulą ORDER BY określającą sposób sortowania danych wynikowych. SELECT atrybuty FROM relacje WHERE warunek ORDER BY atrybuty ASC DESC; Składniki ASC i DESC są opcjonalne, określają kolejność sortowania, odpowiednio rosnąco i malejąco (w poleceniu może być użyty tylko jeden z nich). Przykład. Alfabetyczna lista pracowników z i ich zarobkami SELECT Nazwisko,Imię,Płaca FROM PR ORDER BY Nazwisko,Imię; Nazwisko Imię Płaca Kot Adam 4500 Kowalski Jan 2700 Nowak Andrzej 3250 Ryba Michał 2250 Bazy danych s.5-14

Składinia polecenia SELECT realizującego agregację danych: SELECT atrybuty, funkcje FROM relacje WHERE warunek GROUP BY atrybuty HAVING warunek; Agregacja danych Uwaga 1: w przypadku użycia GROUP BY klauzula SELECT może zawierać jedynie nazwy atrybutów występujących na liście GROUP BY oraz funkcje agregujące, które dotyczą pozostałych atrybutów relacji. Uwaga 2: klauzula WHERE dotyczy wyboru wierszy przed wykonaniem operacji grupowania, HAVING dokonuje wyboru utworzonych grup. Funkcje agregujące: SUM(atrybut) suma wartości wskazanego atrybutu, AVG(atrybut) średnia wartość wskazanego atrybutu, MAX(atrybut) wartość maksymalna wskazanego atrybutu, MIN(atrybut) wartość minimalna wskazanego atrybutu, COUNT(*) liczba elementów w grupie, Bazy danych s.5-15

Liczba pracowników i średnie zarobki w poszczególnych działach SELECT IDW, COUNT(*), AVG(Płaca) FROM PR GROUP BY IDW; Agregacja danych przykłady IDP Nazwisko Imię Płaca IDW 1 Nowak Andrzej 3250 W3 2 Kowalski Jan 2700 W1 3 Kot Adam 4500 W1 4 Ryba Michał 2250 W3 IDW COUNT(*) AVG(Płaca) W1 2 3250 W3 2 2700 Liczba pracowników zarabiających ponad 2500PLN i ich średnie zarobki (pozostaje jedna osoba w grupie W3, średnia 3350PLN) SELECT IDW, COUNT(*), AVG(Płaca) FROM PR WHERE Płaca>2500 GROUP BY IDW; Średnie zarobki na wydziałach przekraczające 3000PLN (tylko W1) SELECT IDW, AVG(Płaca) FROM PR GROUP BY IDW HAVING AVG(Płaca)>3000; Bazy danych s.5-16

Operacje na strukturach danych (DDL) Tworzenie nowej tabeli (podstawowa składnia): CREATE TABLE nazwa (specyfikacja pól, PRIMARY KEY(pola)); gdzie specyfikacja pól zawiera rozdzieloną przecinkami listę składającą się z par: nazwa i typ pola, klauzula PRIMARY KEY definiuje klucz tabeli. Wybrane typy pól: NUMERIC liczby całkowite, FLOAT wartości rzeczywiste, DATE, TIME, DATETIME data i czas, CHAR, VARCHAR dane tekstowe o stałej i zmiennej dlugości, BINARY dowolne dane binarne. Modyfikacja struktury tabeli (dodanie pola, usunięcie pola, modyfikacja typu) ALTER TABLE nazwa_tabeli ADD nazwa_pola typ; ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_pola; ALTER TABLE nazwa_tabeli ALTER COLUMN nazwa_pola typ; Usuwanie tabeli DROP TABLE nazwa; Bazy danych s.5-17

Operacje na strukturach danych przykłady Utworzenie nowej tabeli "Delegacje" CREATE TABLE Delegacje( IDP INT, Data DATE, Długość INT, PRIMARY KEY(IDP)); Usunięcie pola "Długość" i dodanie pola "Czas" ALTER TABLE Delegacje DROP COLUMN Długość; ALTER TABLE Delegacje ADD COLUMN Czas CHAR; Zmiana typu pola "Czas" ALTER TABLE Delegacje ALTER COLUMN Czas INT; Usunięcie tabeli "Delegacje" DROP TABLE Delegacje; Bazy danych s.5-18

Operacje na danych (DML) Wstawianie danych INSERT INTO nazwa_tabeli(pole1, pole2, pole3,...) VALUES(wartość1, wartość2, wartość3); Modyfikacja danych UPDATE nazwa_tabeli SET pole1=wartość1, pole2=wartość2, pole3=wartość3,... WHERE warunek; Uwaga: klauzula WHERE jest opcjonalna, jednak jej brak oznacza modyfikację wszystkich krotek tabeli. Usuwanie danych DELETE FROM nazwa_tabeli WHERE warunek; Uwaga: klauzula WHERE jest opcjonalna, jednak jej brak oznacza usunięcie wszystkich krotek z tabeli. Bazy danych s.5-19

Operacje na danych przykłady Dodanie danych nowego pracownika INSERT INTO PR(IDP, Nazwisko, Imię, Płaca, IDW) VALUES(5, 'Maliniak', 'Adam', 3720, 'W3'); Zmiana wydziału dodanego pracownika UPDATE PR SET IDW='W1' WHERE IDP=5 Usunięcie danych dodanego pracownika DELETE FROM PR WHERE IDP=5; Bazy danych s.5-20

Język SQL w MS Access MS Acces pozwala zapisywać kwerendy w języku SQL. W tym celu należy wybrać opcję "SQL View" (Widok SQL) jako sposób prezentacji kwerendy. Wszystkie zamieszczone przykłady są dostępne na stronie przedmiotu jako dodatek do wykladu. Nazwy kwerend tworzone są zgodnie ze schematem: sxqy, gdzie X to numer slajdu, a Y to numer kolejnej kwerendy. Bazy danych s.5-21