jv sbd2012 cw2N

background image

ćw.2

typy związków , SQL

background image

modelowanie logiczne rzeczywistości - Encje – relacje, tabele, identyfikatory unikalne,

klucze główne (podstawowe PK) - związki

modelowanie fizyczne uwzględnia specyfikę danego typu bazy

symbolikę, klucze obce FK

Modelowanie logiczne – co rozwiązać

Modelowanie fizyczne – jak rozwiązać (implementacja)

background image

Model danych:

Diagram Związków Encji

Entity Relationship Diagram

ERD

Podstawowe pojęcia modelu:


Encja

-

rzecz, składnik badanej dziedziny, informacje o którym mają

być przechowane

Atrybut

-

cecha, własność encji lub wyrażenie związku

Związek

-

powiązanie między encjami

background image

Model danych


Encja

(tabela) - liczba kolumn (atrybutów) ustalona.

Z kolumną (polem) jest związana jej nazwa, dziedzina, typ wartości,
Wiersz reprezentuje jeden rekord informacji (wystąpienie encji)
Kolejności wierszy (rekordów) i kolumn (pól w rekordzie) jest nieistotna

Typ danych

- forma danych jaką przyjmuje środowisko obliczeniowe. Typy

danych na ogół nie są rozpoznawane „automatycznie”, trzeba je deklarować.

Są jednym z ważnych zagadnień w informatyce. Typ własnych danych można

dopasować do oferowanego przez środowisko korzystając ze spisu typów

dostępnych


W danej kolumnie tabeli (polach) obowiązuje jednolity typ danych !


Każdy obiekt jest inny, zatem żaden wiersz tabeli nie może się

powtórzyć !

dwa wiersze muszą się różnić w choć jednym polu

background image

Więzy

(constrains)

więzy spójności danych w tabeli - reguły wprowadzania danych do poszczególnych
tabel.

Przykłady więzów:

•ograniczenie wartości wypłaty ( < 10000) , maska telefonu ##-##-## dla nr 6 cyfrowego, data
rozpoczęcia < daty ukończenia itp.,
•dla klucza głównego wartość : NOT NULL. (W Akcess – PK to klucz podstawowy)
•wartość FK = NOT Null, (W Akcess – FK to klucz zewnętrzny)
- warunki logiczne między kolumnami
- zależności między obiektami tabeli

NULL wartość (logiczna) – dana „zastępcza” gdy
konkretna wartość nie może być wpisana (jest w danej
chwili nieznana)

więzy spójności struktury tabel, integralność referencyjna

-zmiana (zmazanie lub dopisanie infrormacji w jednej z tabel) pociąga odpowiednie
zmiany we wszystkich tabelach związanych.

W bazie Access działania na zintegrowanych tabelach realizują

polecenia z przymiotnikiem „kaskadowe” np. usunięcie kaskadowe

W bazie danych

Acces

niewypełnienie okienka tabeli oznacza domyślnie

NULL

background image

KSIĄŻKA


ISBN PK
Tytuł
Cena
WydID FK

1

W związku „ jeden do wiele” tabelę po stronie „wiele” nazywamy podrzędną
a tabelę po stronie „jeden” nadrzędną.

Analogia: tabela „wiele” jest dziedziną funkcji a tabela „jeden” przeciwdziedziną

t. podrzędna

t. nadrzędna

jeden do jeden - jednoznaczny (przez FK)

jeden do wiele - jednoznaczny (przez FK)
wiele do wiele - niejednoznaczny

WYDAWNICTWO

WydID PK
Nazwa
NrTelef

Związki encji

Przypomnienie: Jeśli w projekcie zdecydujemy, że potrzebne będą dwie encje, oraz nasza
wiedza prowadzi do wniosku, że związek między encjami jest typu 1 : wiele, wtedy
„mechanicznie” przenosimy klucz PK od strony encji„1” do encji po stronie „wiele” i
nazywamy go kluczem obcym FK w tej encji

background image

WYDAWNICTWO

WydID PK
Nazwa
NrTelef

1

KSIĄŻKA


ISBN PK
Tytuł
Cena
WydID FK

AUTOR

AuID PK
Nazwisko
NrTelef

1

1

KSIĄŻKA/
AUTOR

ISBN FK1
AuID FK2

KSIĄŻKA

ISBN PK
Tytuł
Cena
WydID

AUTOR

AuID PK
Nazwisko
NrTelef

związek wiele do wiele jest
niejednoznaczny:

Przypomnienie : metodą ujednoznacznienia związku

wiele do wiele

jest wstawienie tabeli

pośredniej:

Autor/Książka

o kluczach obcych FK1 = ISBN i FK2 =AuID

Encje asocjacyjne

Typy związków encji

background image

1

KSIĄŻKA


ISBN PK
Tytuł
Cena
WydID FK

AUTOR

AuID PK
Nazwisko
NrTelef

1

KSIĄŻKA/
AUTOR

ISBN FK1
Autor FK2

KSIĄŻKA/
AUTOR

ISBN PFK1
Autor PFK2

Uwaga

Często oznaczeniem encji asocjacyjne jest
prostokąt o zaokrąglonych narożach

Tabela asocjacyjna (encja asocjacyjna)

(słaba) dwa klucze PK pobrane

oddzielnie z tabel Autor i Ksiązka stają kluczami obcymi FK w tabeli Książka/Autor.
Te dwa klucze jednoznacznie identyfikują wiersze w tabeli Książka /Autor są więc dla
niej złożonym kluczem głównym. Stąd, niekiedy spotyka się w tabeli asocjacyjnej
oznaczenie PFK (primary foreign key) – ale należy je interptretować jako FK

Encje asocjacyjne

Typy związków encji

background image

Do encji asocjacyjnej możemy dopisać jej atrybuty własne:

KSIĄŻKA/AUTOR

ISBN PFK
Autor PFK
Data rozpoczęcia :
Data zakończenia:
Wynagrodzenie:
?

Atrybuty Data rozpoczęcia, Data zakończenia
Czy Wynagrodzenie
należy do atrybutów tej encji?
Być może należałoby opracować inny schemat logiczny i
uwzględnić Wydawnictwo a całą encję nazwać Umowa

Encje asocjacyjne można też wprowadzać modelując logikę

działania systemu np.

Pracod

awca

Praco

wnik

1

Pracod

awca

Pracown

ik

1

1

Umo

wa

1?

Ćw. wymodeluj sytuację: Studenci zaliczają przedmioty. Jak nazwiesz encję asocjacyjną ?

Typy związków encji

Encje asocjacyjne

background image

KSIĄŻKA/AUTOR

ISBN PFK
Autor PFK
Data rozpoczęcia :
Data zakończenia:
Wynagrodzenie:
?

Typy związków encji

Encje asocjacyjne

Umowa

Pracodawca PFK
Pracownik PFK
wzajemne
zobowiązania
-- - - - - - - -

Zaliczenie

Student PFK
Przedmiot PFK
Obecność
Ocena
-- - - - - - - -

Zwróć uwagę, że encje opisują rzeczowniki a związki pomiędzy encjami określają
czasowniki
(frazy czasownikowe): np. Autor pisze Książkę, Pacjent posiada Ubezpieczenie,
Książka (jej typ) ma Egzemplarze, Samochód składa się z Części, Studenci uczą się na
Wydziale.., itd.
Jeśli związki encji mają wiele atrybutów własnych i są często spotykane, wówczas
najczęściej w języku mówionym pojawia się „pojęcie” – określające taki związek np.
„umowa”, „zaliczenie”, „małżeństwo”, „stanowisko pracy” . Istnienie tych słów powinno
być wskazówką że warto w projekcie uwzględnić encję asocjacyjną.
Jakkolwiek dla encji asocjacyjnej Ksiązka/Autor nie znajdziemy oszczędnego „słowa”
oddającego jej semantykę, musimy ją wprowadzić z powodów formalnych już opisanych

background image

KSIĄŻKA

ISBN PK
Tytuł
Cena
WydID

WYDAW
NICTWO

WydID
PK
Nazwa
NrTelef

1

Związki tabel

Związek binarny

związek binarny encji

linia ilustrująca związek łączy równocześnie tylko dwie
tabele.

ćwiczeniepodaj kilka przykładów związków binarnych, nazwij je, określ liczebności po
prawej i po lewej stronie związku

Typy związków encji

Wydawnictwo wydaje

Książkę

zaś Książka jest

wydawana przez Wydawnictwo.

Nazywanie związków objaśnia projekt !

Często stosuje się imiesłów przymiotnikowy lub rzeczownik
odsłowny (wydany, wydanie)

Dla związku Książka – Autor podaliśmy nazwę napisanie .
Powiązanie to zmieniło się na dwa związki typu jeden do
wiele, trudno jednak byłoby je nazwać

,

background image

Związki więcej niż binarne (trój –arne, itd.) można zawsze przekształcić do

postaci binarnej.

Firma

usługowa

np. AutorID

Dzieło

np. (książka

(liczba stron, typ,

etap realizacji)

Zamawiający

np. WydawnictwoID

Scenariusz: Firma usługowa Autorów otrzymuje zlecenie od Wydawnictwa na napisanie
książki nie przekraczającej 50 stron o treści przygodowej.

Interpretacja:
Zlecenie jest nazwą trójstronnego związku łączącego Firmę, Zamawiającego i
Dzieło
. Dodając jednak z tego związku nową encję Zlecenie z jej własnymi atrybutami
otrzymamy tylko związki binarne

Firma

usługowa

np. AutorID

Dzieło

np. (książka

(liczba stron, typ,

etap realizacji)

Zamawiający

np. WydawnictwoID

Zlecenie

data rozp.,
data zakoń.,

objętość,

typ

Typy związków encji

Związek n - arny

background image

Firma

usługowa

np. Autor

Dzieło

np. (książka

(liczba stron, typ)

Zamawiający

np. Wydawnictwo

Honorarium

W projekcie warto zastanowić się, czy utworzyć z niektórych atrybutów danej encji nową encję
(np. honorarium może być encją, do której dostęp nie musi być powszechny)

Firma

usługowa

np. AutorID

Dzieło

np. (książka

(liczba stron, typ,

etap realizacji)

Zamawiający

np. WydawnictwoID

Ćwiczenie – zaproponuj przekształcenie encji 4-arnej jak na rys po prawej
stronie na encje binarne

Typy związków encji

Związek n - arny

background image

Typ związku

(opcjonalność)

Stopień związku

jeden - do - jednego

jeden - do - wielu

wiele - do - wielu

związek wymagany

(tutaj koniecznie i tylko jeden)

związek

opcjonalny

(związek wymagany tutaj: choć jeden)

Typy związków encji
przypomnienie: notacja o której wspomniano w ćw 1 (notacja Martina)
poszerza możliwości określania typów związków :

background image

W związku opcjonalnym wartość klucza obcego może być NULL

, której nie

można stosować w

związku wymaganym

(mandatory)

środek

ochrony

roślin

interakcja

W związku unarnym (rekurencyjnym)

zachodzi związek w tej samej encji (konkretnie

między obiektami tej samej encji)

pracownik

zależność (szef-podwładny)

Ważne !

Typy związków encji

background image

związek nieidentyfikujący

- instancję encji po stronie wiele identyfikuje tylko klucz

podstawowy.

Dla określenia tej encji nie jest potrzebna inna encja (encje składowe są „dobrze
indentyfikowalne”, „samodzielne” lub podobnie)
Przykład:
związki między encjami: Książka, Wydawnictwo, Autor są nieidentyfikujące
(w niektórych środowiskach np. TOAD jest oznaczony linią przerywaną)

związek identyfikujący

- instancję encji po stronie wiele identyfikuje atrybut należący

do tej encji oraz klucz obcy encji związanej

.

Pełna identyfikacja tej encji wymaga odniesienia do innej encji (w innych słowach encja
po stronie wiele „nie istnieje” jeśli nie ma encji ją identyfikującej (definiującej). (w TOAD
związek jest oznaczony linią ciągłą)

Typy związków encji

background image

Konkretny egzemplarz książki może być zidentyfikowany jeśli znany jest typ:

numer_ inwent

.

ISBN

.

Związek Egzemplarz – Książka jest wymagany

Encje słabe (nieistniejące
samodzielnie).

Związek identyfikujący

Jeśli dana encja nie egzystuje bez innej,
związek między nimi jest wymagany (nie opcjonalny),


Związek ten jest identyfikujący, a

encje podrzędne na podobieństwo do asocjacyjnych

przedstawiamy w prostokątach o zaokrąglonych narożach . Książka (jej typ) np. Bazy Danych
o PK = ISBN ma w bibliotece np. 20 ponumerowanych (PK = numer_inwent.) egzemplarzy
W encji Egzemparz książki musimy podać PFK = PK encji Książka dla pełnej identyfikacji
egzemplarza . Podobnie, nie egzystuje samodzielnie miejscówka z numerem miejsca i nr
wagonu. Trzeba jeszcze wiedzieć do jakiego pociągu została przypisana.

Typy związków encji

Egzemplarz nie istnieje bez typu: Książka)

Przykład

background image

IDI

Klient

ID Klienta

PK

Imię
Nazwisko
Adres
Telefon

IDI

Zamówienie

ID Zamów

.

PK

ID Klienta

FK

Nr pozycji

PK

ID Zamów.

PK (= FK)

IDI

Towar

ID Towaru

P

K

Nazwa
Cena

1. Klient składa wiele (lub zero) zamówień
2. Dane zamówienie musi pochodzić od jednego klienta

1. Zamówienie posiada wiele (lub jedną) pozycji
2. Dane pozycja musi należeć tylko do jednego Zamówienia

1. Pozycja obejmuje tylko jeden towar
2. Dany Towar jest odnotowany w żadnej lub w jednej pozycj

i

Pozycja

Ilość

ID Towaru

FK

Związek identyfikujący

Związek nieidentyfikujący

Klucz główny
Pozycji jest kluczem
złożonym
z wartości własnej
i zapożyczonej

Typowe sytuacje: całość –część , hierarchie . Np FotelAutobusu z atrybutem „miejsce” jest nieidentyfikowalny jeśli
nie istnieje encja określająca ten Autobus. EgzemplarzKsiążki nie istnieje (jest nieidentyfikowalny) jeśli nie istnieje
encja opisująca typ ksiązki do którego odnosimy dany egzemplarz

. Związki „mieć”, „posiadać”, „składać

się”…..

Typy związków encji

background image

KLIENT

* Adres

o e_mail

FAKTURA

Atrybuty

Encja

Zwi

ązek

Typy związków encji

przykłady : mgr Anna Michalczyk, Projektowanie relacyjnych
baz danych, IO, 2008/9

background image

OPIS

ERD

Stanowisko w firmie musi być obsadzone
przez jednego lub wielu pracowników.
Pracownik musi być zatrudniony na
dokładnie jednym
stanowisku

Typ związku encji wymagane - wymagane

Producent może wytwarzać wiele
produktów. Produkt musi mieć ustalonego
Producenta

Typ związku wymagane – opcjonalne

Stowarzyszenie musi posiadać jednego lub
wielu
członków. Osoba może należeć do
jednego
Stowarzyszenia

Typ związku opcjonalne - wymagane

Osoba może wykupić wiele dodatkowych
szczepień. Każde szczepienie może
dotyczyć
wielu osób

Typ związku opcjonalne – opcjonalne

Przykłady:

Stanowisko

Pracownik

jest

zatrudniony

jest obsadzone

Producent

Produkt

wytwarza

ma

Stowarzyszenie

Osoba

posiada

należy

Osoba

Szczepienia

wykupuje

dotyczy

Typy związków encji

przykłady : mgr Anna Michalczyk, Projektowanie relacyjnych
baz danych, IO, 2008/9

background image

SQL

- strukturalny język zapytań

-

instrukcja Select

-

złączenia (sprzężenia tabel)

background image

SQL jest językiem deklaratywnym

Zapytanie do bazy danych ma charakter deklaratywny

.

Podobnie jak kalkulatorowi mówimy „co ma robić” naciskając klawisze np. „2”, „+” , „4”
„=„ tak samo w języku SQL prosimy bazę o wyszukanie potrzebnej informacji.
Podstawowa jest instrukcja SELECT i inne z nią związane.

Zapytanie do bazy nazywamy

kwerendą lub widokiem

. Np. widokiem jest zapytanie w języku naturalnym:

Które wydawnictwa wydały książki w cenie mniejszej od 12 zł ?

Aby odpowiedzieć na pytanie baza wykonuje na strukturze tabel różne operacje. Korzysta
tu z różnych typów sprzężeń (złączeń (join)) tabel. Wynik przedstawiany jest w tabeli
wynikowej
– nie należy ona do struktury zamkniętej w bazie danych, jest tabelą
zewnętrzną, wirtualną, podobnie jak wynik działania na kalkulatorze nie ingeruje w
działanie kalkulatora. Tabelę wirtualną można oczywiście zapisać i używać dla różnych
celów.

Tabele struktury bazy powinny być normalizowane.

Tabele wynikowe powinny natomiast kojarzyć i dostarczać informację

użyteczną i nie stawiamy im takich wymagań.

background image

Tabela nadrzędna WydID i podrzędna Książkę są połączone związkiem „jeden do wiele. Klucz główny PK, ma wartość
NOT NULL zaś tabela podrzędna posiada także klucz obcy FK który tutaj może być gdzieniegdzie NULL (opcjonalność)
(w bazie Access jest Null gdy niewypełnimy kratki) .

Niezależnie od spełnienia (czy też nie) warunków integralności referencyjnej rozróżnia się
ponadto kilka możliwości połączenia poniższych tabel nazywanych operacją sprzężenia

Wydawnictwo

WydID (PK)

WydNazwa

WydTelefon

1

PWN

222-111

2

NT

222-222

3

POL


ISBN (PK)

Tytuł

WydID (FK)

Cena

11-11

aaa

10,00 zł

11-12

bbb

1

11,00 zł

11-13

ccc

2

12,00 zł

11-14

ddd

4

0

Książka

Przypomnienie. Integralność referencyjna zachodzi, gdy każdy wiersz tabeli podrzędnej
można połączyć z odpowiednim nadrzędnej - a więc można odtworzyć tabelę jednorodną


Tabele powyższe nie zachowują integralności integracyjnej. W tabeli podrzędnej dla ISBN 11-14 znajduje się książka
odwołująca się do nieistniejącego Wydawnictwa (FK = 4) w tabeli nadrzędnej.

t.nadrzędna

t.podrzędna

background image

UWAGA . Jeśli otwierasz w Accessie plik z zapisaną już własną bazą danych
przed rozpoczęciem jakichkolwiek operacji koniecznie zrób kopię zapasową.
Można albo w tradycyjny sposób skopiować plik przed jego otwarciem, albo po
otwarciu w MS Access nacisnąć przycisk pakietu Office i w zakładce Zarządzaj 
Kopia zapasowa.

Niektórych błędnych operacji w bazie danych nie można cofnąć i tym samym można
utracić rezultaty czasem wielogodzinnej pracy

background image

Ćwiczenie
Utwórz tabele jak wyżej w Accesie
. Sprawdź czy jest zachowana integralność referencyjna gdy:
-istnieje byt w tabeli nadrzędnej nie posiadający odpowiednika w tabeli podrzędnej (WydID =3)
- istnieje byt w tabeli podrzędnej nie posiadający odpowiednika w tabeli nadrzędnej (ISBN =11-14)
- związek po stronie wiele jest opcjonalny tzn WydID (FK) posiada wartość NULL

Uwaga – „integralność” pojawia się z chwilą tworzenia w Accessie związków (relacji)
między tabelami.

Otwórz Access z tabelami do eksperymentów
Zamknij wszystkie tabele jeśli były otwarte (kliknij P kl.myszki na pasku nad tabelami i wybierz Zamknij
Wszystkie)
otwórz zakładkę Narzędzia, następnie zakładkę Relacje
naciśnij Pokaż tabelę (to okno może otworzyć się domyślnie) , zaznacz dwie tabele , naciśnij Dodaj, i zamknij
okno.
Od tabeli nadrzędnej (jej klucza) w stronę tabeli podrzędnej do jej klucza obcego przeciągnij myszką z
naciśniętym L klawiszem. Pojawi się okno dialogowe.
Zaznacz wymuszaj więzy integralności a następnie Utwórz

Relacje, sprzężenia -Access

Pojawi się komunikat, że operacja wymuszenia integralności nie powiodła się. Zamknij komunikat i
okno dialogowe, otwórz tabelę Książka, zmień odwołanie FK = 4 na FK = 2 zapisz i zamknij tę tabelę.
Teraz wymuszenie więzów integralności powinno się powieść – zobaczysz też, że schematy graficzne
tabel połączyła linia z nadpisanymi liczebnościami związku. Wnioskujemy, że brak książki
odpowiadającej Wydawnictwu PK=3 w tabeli nadrzędnej, oraz wartość Null w kluczu obcym tabeli
podrzędnej nie zakłócają integralności referencyjnej.

Zakłóca ją brak obiektu w tabeli nadrzędnej do

której odwołuje się obiekt podrzędny

background image

Po utworzeniu więzów integralności otwórz tabelę Książka i powtórnie spróbuj zmienić FK=2 na FK=4
przechodząc do następnego rekordu. Zobaczysz komunikat o niemożności wykonania tej zmiany.
Pozostaw więc FK=2, zamknij tabelę i przejdź do tabeli nadrzędnej Wydawnictwo. Wprowadź
Wydawnictwo PK = 4. Możesz sprawdzić, że teraz w tabeli Książka możliwe jest odwołanie do tego
Wydawnictwa.
Spróbuj usunąć Wydawnictwo PK =4 z tabeli Wydawnictw. Operacja ta powiedzie się tylko wtedy,
gdy w tabeli Książka nie będzie żadnej książki odwołującej się do tego Wydawnictwa

Wróćmy do postaci wyjściowej tabel.
Wprawdzie nie zachowują integralności referencyjnej, ale Access oferuje nam inne (słabsze)
możliwości sprzężenia tych tabel.
Aby się o tym przekonać trzeba wykonać te same czynności jak przy próbie wymuszenia
integralności referencyjnej. W ostatnim kroku zamiast jednak zaznaczać „wymuszaj więzy
integralności” naciskamy przycisk Typ sprzężenia… . Zobaczysz okno dialogowe jak na rysunku.
Po wyborze 1, 2 lub 3 i zatwierdzeniu, schematy tabel połączy linia albo bez, albo z zaznaczonym
kierunkiem. Niezgodności w tabelach wyjściowych nie były przeszkodą dla utworzenia tego typu
sprzężeń

background image

Kontynuując pracę tego kreatora utworzymy jeden z żądanych typów, ale nie zobaczymy
jawnie skutków tego sprzężenia. Możemy przekonać się, że ten typ sprzężeń nie nakłada
ograniczeń, możemy niezależnie mazać lub dodawać do tabel nowe rekordy.

sprzężenie typu
wewnętrznego

sprzężenia typu
zewnętrznego

background image

Sprzężenia te zilustrujemy później posługując się językiem SQL, przedtem podstawowe

instrukcje


Rozróżnia się sprzężenia:
wewnętrzne - only include rows where the joined fields from both tables are equal.
Operacja scali dwie tabele ale w tych rekordach w których pola łączone są równe. To
oznacza że w związku opcjonalnym wiersze ujmujące Wydawnictwa, które po stronie
tabeli Książki mają wartość NULL (czyli nie posiadają książek) będą w połączonej tabeli
pominięte.
zewnętrzne

lewostronneinclude All records from „Wydawnictwo”and only those records

from „Książka” where the joined fields are equals. Uwzględnia wszystkie rekordy
tabeli nadrzędnej (Wydawnictwa) także nie posiadające książek, ale tylko te
rekordy z tabeli podrzędnej dla których jest połączony z nimi rekord tabeli
nadrzędnej – a więc tylko te książki, które mają zdeklarowane Wydawnictwo

prawostronne include All records from „Książka”and only those records from

„Wydawnictwo” where the joined fields are equals czyli odwrotnie jak
poprzednio, uwzględni wszystkie rekordy z tabeli podrzędnej ale tylko określone
z nadrzędnej.

background image

Ogólnie zapytanie (query) SQL ma postać:

select A1, A2, .... , An
from r1, r2, ... ,rm
where P;

Każde Ai reprezentuje atrybut, każde ri relacje, P jest predykatem. Zapytanie SQL kończy się

średnikiem.

Operatory:

– równy =

– nierówny <>
– mniejszy <
– większy >
– mniejszy lub równy <=
– większy lub równy >=

„atrybut” = „pole w tabeli” = „kolumna w tabeli”, „relacja” = „tabela”, „predykat” = „warunek”

Jeżeli predykat został pominięty, przyjmuje się, że ma on wartość true. Rezultatem
zapytania SQL’a jest pewna relacja. Mechanizm jest następujący: SQL tworzy produkt
kartezjański relacji z klauzuli from, następnie wybiera te elementy, które spełniają
warunki z where (przy pomocy algebry relacji), a następnie konfrontuje wynik z
żądanymi atrybutami z klauzuli select. SQL potrafi też, dla zwiększenia efektywności
obliczeń, zamieniać wyrażenia w postać dla siebie korzystniejszą.

background image

Zapytajmy,

które książki z tabeli Książka mają cenę niższą od 12 zł

Zaczniemy od szkieletu

SELECT
FROM
WHERE

jaki jest warunek wyszukiwania, które rekordy chcemy zobaczyć w tabeli wynikowej ?

WHERE [Cena]<12;

warunek (filtr) prosty lub złożony, średnik kończy sekwencje instrukcji

Jakie kolumny chcemy (z tabel deklarowanych we FROM) zobaczyć ? Teraz Select czyli
projekcja (inaczej wybór kolumn). Załóżmy, że chcemy znać tytuł książki, jej cenę i nr ISBN
w wymienionej kolejności, dopisujemy :

SELECT Książka.Tytuł, Książka.Cena, Książka.ISBN

ponieważ źródłem jest tylko jedna tabela, nie ma konfliktu nazw, można tę klauzulę
uprościć. Zapisując wszystko otrzymujemy

gotowy kod :


SELECT Tytuł, Cena, ISBN

FROM Książka

WHERE Cena<12;

może najpierw z jakiego źródła: tabel lub kwerend chcemy korzystać ?

FROM Książka

nawias kwadratowy jest w tym przypadku zbędny, ale byłby konieczny gdyby napis posiadał
tzw znaki specjalne w tym spacje. Np. gdyby kolumna nazywała się Moja Cena.

background image

Otwórz Access z tabelami do eksperymentów w postaci wyjsciowej
-otwórz zakładkę – Tworzenie
-W sekcji inne otwórz Projekt Kwerendy
-Zamknij wszytkie tabele także ewentualnie pojawiajace się okno Pokazywanie tabeli
-naciśnij Pmysz i wybierz Widok SQL
-teraz wpisz kod SQL podany na poprzednim slajdzie
-na zakładce kwerendy naciśnij Pmysz i wybierz Widok Arkusza Danych
-zobaczysz tabelę wynikową

implementacja kodu w Access

naciśnij Pmysz przejdź znowu do Widok SQL i dopisz:

SELECT Książka.Tytuł, Książka.Cena, Książka.ISBN
FROM Książka
WHERE [Cena]<12;

przechodząc do Widoku Arkusza Danych zobaczysz w tabeli dodatkową kolumnę ISBN.
Zamiast deklarować kolumny napisz SELECT* W wyniku zobaczysz wszystkie kolumny tabeli
Książka i oczywiście te rekordy, które spełniają warunek.


Wyszukiwarka

Podobne podstrony:
jv sbd2012 cw1N
jv sbd2012 cw1N
jv Power Tools 1 4
JV Marketing

więcej podobnych podstron