Jł;/YK HA/. DANYCH 5KJL.
dobnie jak w przypadku miesiąca, jeśli numer dnia jest jednocyfrowy, to w miejsce cyfry dziesiątek wpisuje się 0, ponieważ trzeba zawsze podać numer dnia w postaci dwucyfrowej.
Czas jest przedstaw iany w analogiczny sposób za pomocą słowa kluczowego tims, po którym umieszcza się napis ujęty w apostrofy. W napisie występują dwie cyfry oznaczające godzinę w układzie 24-godzinowym. Następnie występują: dwukropek i dwie cyfry określające minuty, dwukropek i dwie cyfry określające sekundy. Jeśli trzeba podać ułamkowe części sekundy, to możemy przedłużyć ten napis o przecinek, po którym wpisze sic dowolnie dużo cyfr znaczących. Na przykład TIME ' 16:00:02.5' oznacza tę chwilę (dwie i pół sekundy po czwartej po południu), kiedy z pewnością wszyscy studenci, których zajęcia kończą się o 16, znajdują się już daleko od sali wykładowej.
Daty i czasy można porównywać, stosując tc same operatory porównywania, których używamy dla liczb i napisów. A zatem znak < oznacza, że data z lewej strony znaku mniejszości jest wcześniejsza niż. data z prawej strony znaku mniejszości, a w przypadku czasu, że pierwszy z podanych czasów jest wcześniejszy.
Język SQL umożliwia spełnienie żądania, aby krotki utworzone w wyniku zapytania były w pewien sposób uporządkowane. Uporządkowanie można określić dla pewnego atrybutu, a w przypadku równych jego wartości podać kolejne atrybuty, które decydują o kolejności krotek. Aby otrzymać wynik w postaci uporządkowanej, do instrukcji select-from-where dopisuje się klauzulę:
ORDER BY <lista atrybutów>
Z założenia porządek jest rosnący, ale można go odw rócić, dopisując na końcu słowo DE SC (ałescending■” - tj. malejący). Można także użyć słowa ASC do określenia porządku rosnącego (ascending), ale nie jest to konieczne.
PRZYKŁAD 5.9
Poniżej przytaczamy zapytanie z przykładu 5.1, które powoduje, że z relacji
Film (tytuł, rok, długość, czyKolor, nazwaStudia, producent C# )
wybiera się tytuły- filmów wyprodukowane w studio Disneya w roku 1990.
Aby tytuły uzyskane w wyniku zostały posortowane według czasu trwania, przy czym najkrótsze były na początku, a w przypadku równej długości o kolejności decydował porządek alfabetyczny, można utworzyć następujące zapytanie.
SĘLECT 1
FROM Film
WHERE nazwaStudia = 'Disney' AND rok = 19S0
ORDER BY długość, tytuł;
Jeśli między atrybutami relacji jest ustalona kolejność (a tak być powinno, ponieważ relacjom w SQL są przyporządkowane listy atrybutów, o czym będzie mowa w p. 5.7.2), to zamiast nazw atrybutów można używać ich numerów. Klauzula ORDER by zostanie w tej konwencji zapisana zgodnie z kolejnością atrybutów, wynikającą z deklaracji relacji Film, w następujący sposób:
ORDER BY 3,1;
□
Ćwiczenie 5.1.1. W jaki sposób stwierdzić, czy A i B w instrukcji:
SELECT A B
są dwoma różnymi atrybutami, czy też Sjest synonimem atrybutu A.
Ćwiczenie 5.1.2. Należy zapisać w SQL następujące zapylania dotyczące danych z bazy filmowej:
Film (tytuł, rek, długość, czyKolor, nazwaStudia, produ-centC#)
GwiazayW( tytułFiimu, rokFilmu, nazwiskoGwiazdy)
Gwiazda(nazwisko, adres, płeć, dataUrodzenia)
FilmDyr(nazwisko, adres, cert^, cenaSieci)
Studio(nazwa, adres, prezC1)
a) Wyszukać adresy studiów wytwórni MGM. b) Znaleźć datę urodzenia Sandry Bullock.
“c) Wyszukać wszystkie gwiazdy filmowe, które albo występowały w filmach wyprodukowanych w 1980 r.. albo w- filmach, w których tytule jest słowo „Love”.
d) Wyszukać wszystkich dyrektorów, którzy mają majątek co najmniej 101 000 000 S.
e) Wyszukać wszystkie gwiazdy filmowe, które albo są mężczyznami, albo mieszkają w Malibu (czyli Malibu jest fragmentem ich adresu).