Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
SQL. wiczenia
praktyczne
Autor: Marcin Lis
ISBN: 83-246-0621-1
Format: A5, stron: 152
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Wstp
Rozdzia 1. Podstawy relacyjnych baz danych
Tabele
Klucze
Relacje
Podstawowe zasady projektowania tabel
5
9
9
10
11
16
25
25
29
31
35
39
45
47
47
53
55
57
57
61
63
71
73
Instrukcja UPDATE
Modyfikacja danych w tabelach
Usuwanie danych
73
74
78
Rozdzia 6. Zczenia
czenie wynikw zapyta
Pobieranie danych z wielu tabel
Zczenia
81
81
86
90
97
105
Rozdzia 9. Podzapytania
113
114
115
119
123
123
124
125
126
129
Integralno danych
Definiowanie klucza obcego
Dodawanie i usuwanie wizw
129
130
133
Dodatek A
Co nowego?
135
Dodatek B
Instalacja PostgreSQL
144
58
59
W I C Z E N I E
4.1
4.2
60
Istnieje rwnie moliwo zmiany nazw kolumn w wynikach zapytania. Wystarczy, jeli wystpujce w zapytaniu SELECT nazwy zastpimy sekwencjami o oglnej postaci:
nazwa_kolumnyLASLalias
4.3
Pobierz z tabeli pracopraco dane o imionach, nazwiskach i stanowiskach, tak aby kolumna placa miaa nazw poragrodzerae.
Wykonanie wiczenia zapewni nam instrukcja:
SELESELimie,Lnazwisko,LplacaLASLwynagrodzenieLFROMLpracownicy;
61
Wyniki zapytania typu SELECT mog by sortowane, co umoliwia klauzula ORDER BY. Sortowanie moe odbywa si w porzdku rosncym
bd malejcym wzgldem jednej bd kilku kolumn.
W I C Z E N I E
4.4
Wywietl zawarto tablicy pracopraco posortowan wzgldem kolumny razpasko w porzdku rosncym.
Zatem aby wywietli wszystkie wiersze tabeli posortowane wzgldem kolumny razpasko rosnco w porzdku alfabetycznym, naley
zastosowa konstrukcj:
SELESEL*LFROMLpracownicyLORDERLBYLnazwiskoLASS;
lub prociej:
SELESEL*LFROMLpracownicyLORDERLBYLnazwisko;
opcja ASC jest bowiem opcj domyln. Wynik dziaania takiego zapytania zosta zaprezentowany na rysunku 4.4.
62
W I C Z E N I E
4.5
Wywietl zawarto tablicy pracopraco posortowan wzgldem kolumny razpasko w porzdku malejcym.
Aby wywietli wszystkie wiersze tabeli posortowane wzgldem kolumny razpasko malejco w porzdku alfabetycznym, naley zastosowa konstrukcj:
SELESEL*LFROMLpracownicyLORDERLBYLnazwiskoLDESS;
Sortowanie moe si rwnie odbywa wzgldem wikszej liczby kolumn. Moemy sobie na przykad zayczy, aby tablica zostaa posortowana najpierw wzgldem nazwiska, a nastpnie wzgldem pacy.
Przy czym kierunek sortowania jest niezaleny dla kadej kolumny,
czyli mona jednoczenie sortowa wzgldem nazwiska w porzdku
rosncym i pacy w porzdku malejcym.
W I C Z E N I E
4.6
63
Operator
Opis
Przykad
id=10,
nazwisko=
'Kowalski'
64
Opis
Przykad
<>
id<>2, nazwisko
<>'Kowalski'
!=
id!=2, nazwisko!
='Kowalski'
<
id<10
>
id>10
<=
id<=10
>=
id>=10
ISLNULL
adresLISLNULL,
idLISLNULL
ISLNOELNULL
adresLISLNOE
NULL, idLISLNOE
NULL
BEEWEEN
NLANDLM
idLBEEWEEN
10LANDL20
65
Opis
Przykad
NOELBEEWEEN
NLANDLM
idLNOELBEEWEEN
10LANDL20
IN
idLIN(1,L3,LI),
nazwisko
IN('Kowalski',
'Nowak')
NOELIN
idLNOE
IN(1,L3,LI),
nazwiskoLNOE
IN('Kowalski',
'Nowak')
Opis
Przykad
AND
imie='Jan'
ANDLNazwisko=
'Kowalski'
OR
imie='Jan'LOR
imie='Andrzej'
XOR
kolumna1LXOR
kolumna2,
poleLXORL64
NOE
NOELAktywny
66
Oprcz przedstawionych w powyszych tabelach operatorw relacyjnych i logicznych stosunkowo czsto wykorzystywane s take dwa
wyraenia operujce na cigach znakw. S to LIKE i NOT LIKE3. Wywoanie funkcji LIKE ma posta:
wyraenieLLIKELwzorzec
Zwraca ona warto TRUE, jeli wyraenie pasuje do wzorca, w przeciwnym razie zwraca FALSE. Jako wyraenie zazwyczaj jest stosowana
nazwa kolumny. Argument wzorzec moe zawiera dwa znaki specjalne. Pierwszy z nich to %, ktry zastpuje dowoln liczb znakw, drugi
to _ (podkrelenie), ktry zastpuje dokadnie jeden znak. Oznacza to,
e do przykadowego wzorca Jar% bd pasoway cigi Jar, Jarusz,
Jarek, Jaropska itp., a do wzorca Warszap_ bd pasoway cigi Warszapa,
Warszapo, Warszapo itp.
Funkcja NOT LIKE ma posta:
wyraenieLNOELLIKELwzorzec
4.7
67
4.8
4.9
68
4.10
69
W I C Z E N I E
4.11
Wywietl dane osb o identyfikatorach 3, 5 i 7, wykorzystujc instrukcje warunkowe poczone operatorem logicznym.
Aby uzyska dane osb o identyfikatorach 3, 5 i 7, naley zastosowa
trzy instrukcje warunkowe: ad = 3, ad = 5 i ad = D, poczone za pomoc operatora OR (czyli sumy logicznej). Instrukcja taka bdzie wic
miaa posta:
SELESEL*LFROMLpracownicyLWHERELid=3LORLid=ILORLid=7;
4.12
Efekt jej wykonania bdzie taki sam jak zaprezentowany na rysunku 4.10.
Wybranie z tabeli danych, ktre pasuj do okrelonego wzorca, umoliwi opisany na pocztku rozdziau operator LIKE.
70
W I C Z E N I E
4.13
4.14
Wyszukaj w tabeli identyfikatory oraz imiona i nazwiska pracownikw, dla ktrych baza nie zawiera numerw PESEL.
Wyszukanie wszystkich pracownikw, dla ktrych nie zosta wprowadzony numer PESEL, zapewni nam operator IS NULL. Zapytanie bdzie
miao posta:
SELESELid,Limie,LnazwiskoLFROMLpracownicyLWHERELpeselLISLNULL;
71
Warunek w klauzuli WHERE nie musi ogranicza si do danych pobieranych z jednej kolumny; mona stosowa warunki zoone poczone
operatorami logicznymi.
W I C Z E N I E
4.15
w wynikach znajd si podwjne dane dla nazwisk Kowalski i Malinowski (rysunek 4.14). Nie o to nam jednak chodzio. Do uzyskania
prawidowych wynikw niezbdne bdzie wic uycie sowa DISTINCT.
72
Rysunek 4.14.
W wynikach
zapytania
pojawiy si
duplikaty danych
W I C Z E N I E
4.16