81919 ullman139 (2)

81919 ullman139 (2)



1

1

284


5. Jlj7.YK BAZ DANYCH SQL

Zapytanie to ma charakterystyczną dla większości zapytań w SQL postać scl ect-from-where.

•    Klauzula FROM służy do określenia relacji., których dotyczy zapytanie. W naszym przykładzie jest to relacja Film.

•    W klauzuli WHERF. formułuje się warunek, który' odpowiada warunkowi wyboru w algebrze relacji i który określa ograniczenia, jakie maja. spełniać krotki, aby zostać wybrane w danym zapylaniu. W naszym przykładzie musi być spełniony warunek, żeby film był wyprodukowany w studiu Disneya w roku 1990. Jeśli krotka spełnia te ograniczenia, to zostaje zaliczona do odpowiedzi na zapytanie, pozostałe krotki zostają odrzucone.

•    W klauzuli SELECT zostają określone nazwy atrybutów', których wartości z krotek spełniających warunek zapytania są dołączane do odpowiedzi. Gdy w klauzuli SELECT występuje *, wówczas krotkę umieszcza się w' odpowiedzi. Dotyczy to właśnie naszego przykładu. A więc wr wyniku zapytania powstaje relacja złożona ze wszystkich krotek wybranych według warunku WHERE.

Zapytanie można interpretować w ten sposób, że rozważa się osobno poszczególne krotki z relacji opisanej w klauzuli FROM. Każda krotka jest sprawdzana, czy spełnia warunek zawarty w klauzuli WHERE. A mówiąc dokładniej, w miejsce atrybutów występujących w warunku klauzuli where zostają podstawione odpowiednie składowe rozpatrywanej krotki. Następnie wylicza się wartość tak utworzonego warunku i, jeśli jest nią prawda, to te składowa rozpatrywanej krotki, które wymieniono w klauzuli SELECT tworzą krotkę, którą dołącza się do rozwiązania. A zatem w wyniku przykładowego zapytania o filmy, które zostały' wyprodukowane w studiu Disneya w roku 1990, zostanie zawarta między innymi krotka opisująca film Pretty W oman.

Klasyfikacja tej krotki do wyniku zapytania przebiega w następujący sposób: gdy procesor SQL napotyka krotkę relacji Film:

tytuł

rok

długość

czy Kolor nazwaStudia

i

o

Pretty Woman

1990

119

prawda Disney

19 9 9

(gdzie 999 przyjęto do oznaczenia pewnego, być może nieistniejącego, certyfikatu producenta), to zamiast atrybutu nazwaStućia w warunku klauzuli WHERE zostaje podstawiona wartość 'Disney', a zamiast atrybutu rok - wartość 1990, ponieważ takie są składowe tych atrybutów- w krotce Pretty Womcm. Wówczas klauzula WHERE przyjmuje następującą postać:

Ten warunek jest oczywiście spełniony, czyli krotka Pretty Woman pomyślnie przeszła test zawarty w klauzuli WHERE i w konsekwencji stała się częścią wyniku zapytania.

5.1.1. Rzutowanie w języku SQL

Z wybranych krotek można eliminować składowe, które nie są potrzebne w wyniku zapytania, tzn. można relację uzyskaną jako wynik zapytania rzutować na pewne atrybuty. Znak gwiazdki, wpisany jako parametr klauzuli SELECT, oznacza dowolny atrybut relacji wymienionych w klauzuli FROM. Wynik zapytania jest rzutowany na wymienione atry buty*.

PRZYKŁAD 5.2

Tym razem utworzymy zapytanie, które różni się od zapytania z przykładu 5.1 tym, że w wyniku chcemy otrzymać wartości atrybutów tytuł i długość. Postać zapytania jest wówczas następująca:

SELECT tytuł, długość FROM Film

WHERE nazwaStudia = 'Disney' AND rok = 1990;

W wyniku powstaje tabela zawierająca dw'ie kolumny o nagłówkach tytuł oraz rok. Do tabeli zostają wpisywane pary wartości, z których pierwsza oznacza tytuł, a druga czas trwania filmu wyprodukowanego w studiu Disneya wT 1990 roku. Schemat tak powstałej relacji i jedna z krotek odpowiedzi wyglądają następująco:

tytuł___długość

Pretty Woman 119

Czasami zdarza się, że teksty w nagłówkach kolumn mają się różnić od nazw atrybutów relacji, które zostały wymienione w klauzuli FROM. Wówczas po nazwie takiego atrybutu w klauzuli SELECT wpisuje się słowo kluczowe AS, a następnie synonim nazwy atrybutu; wr relacji wynikowej w nagłówku pojawi sic wówczas ten synonim. Słow-o kluczowa AS często jest pomijane, a w niektórych starszy ch w-ersjach SQL jest pomijane zawsze. To znaczy, można oddzielić synonim od nazwy atrybutu po prostu spacją, bez żadnego innego symbolu pomiędzy nimi.

‘ Słowo kluczowe select w SQL odpowiada raczej działaniu rzutu w algebrze relacji, podczas gdy działanie selekcji z algebry relacji jest'bliższe klauzuli WHERE z zapytań SQL.


Wyszukiwarka

Podobne podstrony:
69806 ullman184 (2) 374    5 JI-ZYK BAZ DANYCH SQL Ćwiczenie 5.10.2. W ćwiczeniu 4.4.
ullman184 (2) 374    5 JI-ZYK BAZ DANYCH SQL Ćwiczenie 5.10.2. W ćwiczeniu 4.4.3 zost
16814 ullman179 (2) S ,ir;7.YK BAZ DANYCH $QL PRZYKŁAD 5.52 Rozważmy ponownie informację lotniczą, k
70987 ullman154 (2) .5 l*ł 5. JĘZYK BAZ DANYCH SQL MĆwiczenie 5.3.6. Można już było uprzednio dostrz
ullman138 (2) 5_Język baz danych SQL Język SQL stanowi najbardziej popularny mechanizm definiowania
ullman140 (2) 286 $. jąZYK BAZ DANYCH SQL PRZYKŁAD 5.3 Poniższy przykład dotyczy lego samego zapytan
ullman154 (2) .5 l*ł 5. JĘZYK BAZ DANYCH SQL MĆwiczenie 5.3.6. Można już było uprzednio dostrzec, że
ullman179 (2) S ,ir;7.YK BAZ DANYCH $QL PRZYKŁAD 5.52 Rozważmy ponownie informację lotniczą, która s
ullman138 (2) 5_Język baz danych SQL Język SQL stanowi najbardziej popularny mechanizm definiowania
ullman140 (2) 286 $. jąZYK BAZ DANYCH SQL PRZYKŁAD 5.3 Poniższy przykład dotyczy lego samego zapytan

więcej podobnych podstron