286 $. jąZYK BAZ DANYCH SQL
PRZYKŁAD 5.3
Poniższy przykład dotyczy lego samego zapytania co przykład 5.2, chcemy tylko tym razem, aby w nagłówku relacji wynikowej zostały wpisane teksty; nazwa oraz czasTrwania.
SELSCT tytuł AS nazwa, długość AS czasTrwania FROM Film
WHERE nazwaStudia = 'Disney' AND rek = 1990;
W wyniku tego zapytania powstaje ten sam zbiór krotek, co w zapytaniu z przykładu 5.2. ale tym razem z nagłówkami kolumn zawierającymi teksty: długość oraz czasTrwania. Początek relacji wynikowej może zatem wy-
glądać następująco: | |
nazwa |
czasTrwania |
Fretty Wornan |
119 |
Można także W' klauzuli SELECT pytać o wartość pewnego wyrażenia, niekoniecznie o wartość atrybutu.
PRZYKŁAD 5.4
Tym razem zapytanie z przykładu 5.3 zmodyfikujemy tak, by uzyskać czas trwania filmu wyrażony w godzinach, a nic w minutach, jak to jest zapisywane w relacji Film. Klauzula SELECT naszego przykładowego zapytania zostaje wówczas przekształcona do następującej postaci:
SELECT tytuł AS nazwa, długość * 0.016667 AS czasWGo-dzinach
Do wyniku zostaną wprowadzone te same krotki co w poprzednim przykładzie, ale teraz czas trwania zostanie wyrażony w godzinach, a w nagłówku drugiej kolumny zostanie umieszczony tekst czasWGodzinach.
□
PR/.YKŁAI) 5.5
W klauzuli SELECT można również umieszczać stałe. Na pozór może się to wydawać bezcelowe, ale czasami wygodnie jest umieścić na przykład w wynikowej tabeli jakieś teksty', które będą prezentowane razem z wynikiem, po to by był bardziej czytelny. Stosując następujące zapytanie:
SELECT tytuł, długość * 0.016667 AS długość, 'godz.'
AS wGodzinach FROM Film
WHERE nazwaStudia = 'Disney' AND rok = 199C;
otrzymujemy na przykład wynik następujący:
tytuł |
długość |
1 wGodzinach |
Pret*.y Wornan |
1.98334 |
|ęodz. |
Utworzyliśmy w ten sposób trzecią kolumnę relacji wynikowej, o nagłówku wGodzinach, który' tworzy całość z nagłówkiem drugiej kolumny długość. W każdej krotce wyniku na końcu pojawi się napis godz., który- oznacza jednostkę dla wartości występujących w drugiej kolumnie.
□
Niewrażliwość na rejestr czcionki
Język SQL jest niewrażliwy na rejestr czcionki. Oznacza to. że wielkie i małe litery są nierozróżnialne. Jeśli na przykład słowo kluczowe FROM zapiszemy kapitalikami, to i tak nie będzie to miało żadnego znaczenia, bo ten napis zostanie zinterpretowany tak samo jak napis From, from lub nawet FrOm. W podobny sposób wielkie i małe litery nie są w języku SQL rozróżniane w nazwach atrybutów, relacji, w synonimach itd. Tylko w stałych tekstowych w języku SQL małe i wielkie litery oznaczają co innego. Dlatego na przykład stałe tekstowe 'FROM' oraz 'irorr.' oznaczają różne napisy, oczywiście żaden z tych napisów nie jest słowem kluczowym FROM.
Działanie selekcji z algebry- relacji jest dostępne przez występować klauzuli WHF.RL, która ma jednak jeszcze inne cechy. Po słowie kluczowyi WHERE występuje wyrażenie warunkowe, podobne do wyrażeń warunkowym z popularnych języków programow-ania, takich jak C lub Pascal.
Do zapisu porównywania wartości w języku SQL służy sześć operat rów: =, < >, <, >, <=, oraz >=. Ich znaczenie jest powszechnie znane, jest oi takie same jak w Pascalu (dla przeciwników Pascala przypominamy, że ta < > oznacza „nierówne”).
W wyrażeniu mogą występować stałe oraz atrybuty tych relacji, kić są wymienione w klauzuli FROM. Wartości numeryczne możemy łącz w wyrażenia arytmetyczne, korzystając ze zwyczajowych operatorów1 -h ilp. Na przykład wartością warunku (rok - 1930) * (rok - 1930) < 1 jest prawda, jeśli wartość atry butu rok oznacza pewien rok z lat trzydz stych. Z kolei teksty można konkatenować, stosując w tym celu operator na przykład wyrażenie 'dwie' || 'belki', oznacza to samo co 'dwi belki'.