Professional Documents
Culture Documents
Spis treci
Przykadowy rozdzia
Katalog ksiek
Katalog online
Zamw drukowany
katalog
Twj koszyk
Dodaj do koszyka
Cennik i informacje
Zamw informacje
o nowociach
Zamw cennik
Czytelnia
Fragmenty ksiek
online
Kontakt
Helion SA
ul. Kociuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
Helion 19912010
SQL. Rusz
gow!
Autor: Lynn Beighley
Tumaczenie: Piotr Rajca
ISBN: 978-83-246-2828-5
Tytu oryginau: Head First SQL: Your Brain on SQL A Learner
Format: 200230, stron: 592
Teraz i Ty moesz doczy do grona osb znajcych SQL.
Wystarczy, e signiesz po nasz bestseller
Co w nim znajdziesz? Wszystko co najlepsze w serii Rusz gow! Konkretna wiedza,
duo humoru oraz wszystko wyjaniajce rysunki. Na sam pocztek dowiesz si co
to jest jzyk SQL oraz stworzysz swoj pierwsz baz danych (polecenie CREATE).
W kolejnych rozdziaach nauczysz si uzupenia te bazy danymi, usuwa je oraz
modyfikowa (polecenia INSERT, UPDATE oraz DELETE). Jak ju przebrniesz przez
podstawy, zabierzesz si za to co bazodanowcy lubi najbardziej - indeksy, klucze,
zczenia oraz podzapytania. Na sam koniec sprawdzisz jak zagwarantowa swojej
bazie bezpieczestwo oraz wykrzesa z niej jeszcze wicej moliwoci. Brzmi
skomplikowanie? Nie martw si, jeste w dobrych rkach! A wic
Naprzd, gowo!
Nikt ci tego nie potrafi wytumaczy? Nie potrzebujesz elektrowstrzsw, eby
pobudzi swj mzg do aktywnego dziaania. Tylko adnych gwatownych gestw!
Usid wygodnie, otwrz ksik, dopiero teraz si zacznie. Na pocztek rusz gow!
Precz z nudnymi wykadami i zakuwaniem bez zrozumienia!
Nauka to znacznie wicej ni tylko czytanie suchego tekstu. Twj mzg jest niczym
godny rekin, cay czas prcy naprzd w poszukiwaniu nowej, apetycznej przekski.
Jak karmimy Twj wygodniay umys?
Uywamy rysunkw, bo obraz wart jest 1024 sw. Stosujemy powtrzenia, by zakodowa
na stae dane w Twojej chonnej gowie. Oddziaujemy na emocje, jestemy nieprzewidywalni,
zaskakujcy i zabawni. Cay czas pobudzamy Twj umys do aktywnego dziaania,
zmuszamy go do posuszestwa a za cik prac nagrodzimy go smakowitym
ciasteczkiem w postaci wiedzy wisienka gratis!
Rozgry to sam!
Tworzenie bazy danych i tabel (CREATE)
Pobieranie danych (SELECT)
Usuwanie (DELETE) i aktualizowanie danych (UPDATE)
Wykorzystywanie kluczy i indeksw
Sortowanie danych
Operacje na danych sumy, rednie, elementy maksymalne i minimalne
Pobieranie unikalnych danych
Sposb pobierania okrelonej liczby wierszy
Stosowanie podzapyta
Zapewnianie spjnoci danych
Ograniczanie dostpu do zgromadzonych danych
Zapewnianie bezpieczestwa bazie danych
Spis treci
Wprowadzenie
25
37
87
153
193
231
267
311
373
409
10
447
11
483
12
521
Dodatek A Pozostaoci
551
569
575
Skorowidz
583
wywiadcza Ci przysug, dbajc o to, by te informacje nie zostay zbyt dugo w Twej gowie. Twj mzg
myli sobie: Lepiej zostawi miejsce na jakie wane rzeczy, takie jak: ktrych dzikich zwierzt naley unika
albo czy jedenie nago na snowboardzie jest dobrym pomysem, czy nie. Zatem w jaki sposb moesz
przekona swj mzg, by uzna, e poznanie SQL-a to dla Ciebie kwestia ycia lub mierci?
Dla kogo jest ta ksika
26
27
29
31
Przeczytaj to
32
34
Podzikowania
35
Spis treci
Dane i tabele
Tabela.
kolumna1
kolumna2
dane
kolumna3
dane
dane
dane
dane
dane
kolumna4
kolumna5
dane
kolumna6
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
To s kolumny.
Jeszcze
la.
inna tabe
kolumna1
kolumna2
kolumna3
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
A to s
wiersze.
kolumna1
dane
dane
dane
dane
kolumna4
dane
dane
dane
dane
kolumna2
dane
dane
dane
dane
dane
kolumna2
dane
dane
dane
dane
dane
dane
kolumna3
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
dane
10
kolumna1
I kolejna tabela.
Definiowanie danych
38
43
44
46
48
Tabele w zblieniu
49
Przejmij kontrol!
53
55
56
57
58
59
60
64
66
68
70
73
77
78
79
80
81
83
84
Przybornik SQL
86
Spis treci
Polecenie SELECT
88
91
92
98
Jestem
gwiazd!
99
Niedopasowane apostrofy
100
102
107
107
czenie zapyta
114
117
120
122
125
By ALBO nie by
127
130
133
135
Zew wieloznacznoci
135
139
140
143
144
145
Przybornik SQL
150
11
Spis treci
DELETE iUPDATE
Czy ci
przeraamy?
12
Klowni s przeraajcy
154
ledzenie klownw
155
156
160
162
163
165
166
169
174
178
180
181
182
183
186
188
190
Przybornik SQL
192
Spis treci
Po co by normalnym?
Dotychczas tworzye tabele bez zwracania na nie szczeglnej uwagi.
Iwszystko byo wporzdku, tabele dziaay bez problemw. Moge wnich zapisywa,
modyfikowa, usuwa ipobiera dane. Jednak wraz ze zwikszaniem si iloci danych wtabelach
zaczniesz zauwaa, e s rzeczy, ktre moge zrobi wczeniej, by uatwi sobie wprzyszoci
tworzenie klauzul WHERE. Innymi sowy, musisz znormalizowa swoje tabele.
Dwie wdkarskie tabele
194
198
Dane atomowe
202
204
205
208
209
210
211
212
215
216
217
219
220
1, 2, 3 automatycznie inkrementowane
222
226
227
Przybornik SQL
228
218
13
Spis treci
Polecenie ALTEr
Korygowanie przeszoci
Czy kiedykolwiek marzye, by mie moliwo naprawiania bdw
popenionych w przeszoci? C, teraz masz tak moliwo. Dziki poleceniu ALTER
moesz zastosowa wszystkie nowe wiadomoci i dowiadczenia, by zmodyfikowa struktur tabel
utworzonych kilka dni, miesicy lub nawet lat wczeniej. Ale to jeszcze nie wszystko moesz
to zrobi bez wprowadzania jakichkolwiek zmian w istniejcych danych. Skoro tu dotare,
zapewne ju wiesz, co naprawd oznacza normalizacja, i bdziesz mg zastosowa t wiedz
do zapewnienia odpowiedniej struktury swym tabelom; tym starym i nowym.
Nadszed czas,
by zmieni Twoj wyprbowan,
lecz przestarza tabel na cudeko,
jakiemu nie opr si adne informacje,
i przenie j na taki poziom
bazodanowego odpicowania, o ktrym
nawet Ci si nie nio.
14
232
Modyfikowanie tabel
237
238
239
241
Przezbrajanie kolumn
242
Zmiany strukturalne
243
244
245
249
256
Poszukaj wzorca
257
258
263
264
Przybornik SQL
266
Spis treci
268
269
270
271
274
276
281
282
285
286
289
290
291
293
295
297
298
299
300
Liczymy dni
301
303
306
307
Przybornik SQL
310
15
Spis treci
klowni_informacje
imi
ostatnio_widziano
wygld
aktywnoci
Eklerka
Pan Pimpu
mim
Pani Smyk
MegaStragan
trbka, parasolka
Pan Hobo
Cyrk Koloseum
skrzypce
Klarabela
krzyk, taniec
info_aktywnosci
id
aktywnosci
id_aktywnosci
id_aktywnosci
aktywnosc
klowni_informacje
id
imie
plec
opis
info_lokalizacja
id
id_lokalizacji
lokalizacja
id_lokalizacji
lokalizacja
kiedy
zainteresowania
zainteresowania
id_zainteresowania
zainteresowanie
16
312
323
324
325
326
328
czenie tabel
330
335
336
337
339
339
340
341
342
345
346
Wkocu w1NF
351
352
Zapis uproszczony
354
355
356
360
366
369
Przybornik SQL
372
Spis treci
i tak naprawd
to wanie std si
bior malutkie tablice
z wynikami.
374
Wypenianie tabel
375
378
379
380
381
382
382
383
384
385
386
387
Zczenie kartezjaskie
388
393
394
397
398
Zczone zapytania?
405
406
Przybornik SQL
408
17
Spis treci
Podzapytania
Zapytania wzapytaniach
Janie, dwuczciowe zapytanie, prosz. Zczenia s wspaniae, jednak czasami musisz
zada swojej bazie danych wicej ni jedno zapytanie. Bd uy wynikw jednego zapytania
jako danych wejciowych dla drugiego. Iwanie wtakich sytuacjach przydaj si podzapytania.
Pozwol Ci one unikn powielania danych, sprawi, e Twoje zapytania stan si bardziej
dynamiczne, amoe nawet pozwol si wkrca na koncerty iprzyjcia dla wyszych sfer.
(No, na to ostatnie bym nie liczya, ale dwa punkty ztrzech to itak niele).
zapytanie ZEWNTRZNE
zapytanie WEWNTRZNE
410
411
412
414
Podzapytania
416
417
418
Podzapytanie wdziaaniu
419
421
424
427
428
Podzapytania nieskorelowane
429
430
433
Podzapytania skorelowane
438
439
440
442
Wdrodze na imprez
443
Przybornik SQL
444
Zapytanie zewntrzne.
18
Zapytanie wewntr
zne.
Spis treci
10
Polecenie UNION
i
pozwoli Grzekow
poczy wyniki
ech
trz
z
pochodzce
yta
niezalenych zap
taci
i zwrci je w pos
jednej tabeli.
z tabeli
Stanowiska a.
aln
praca_aktu
z tabeli
Stanowiska a.
aln
praca_aktu
W wynikach caego
polecenia zostan
wywietlone
tylko te wiersze
z pierwszego
zapytania, ktre
nie wystpuj
w drugim zapyta
niu.
Nowe manewry
To wszystko, czego do tej pory dowiedziae si o zczeniach, to jedynie
p prawdy na ich temat. Widziae ju zczenia krzyowe tworzce wszystkie moliwe pary
rekordw pochodzcych z dwch tabel oraz zczenia wewntrzne zwracajce jedynie pasujce
do siebie rekordy obu tabel. Nie spotkae si jeszcze natomiast ze zczeniami zewntrznymi,
zwracajcymi take te wiersze, ktre nie maj pasujcych odpowiednikw w drugiej tabeli,
zczeniami zwrotnymi, ktre cz tabel z ni sam, oraz uniami, ktre scalaj wyniki z kilku
rnych zapyta. Kiedy poznasz te wszystkie sztuczki, bdziesz w stanie pobiera dane z bazy
dokadnie w taki sposb, jaki bdzie Ci potrzebny. (Nie zapomnimy take ujawni caej szokujcej
prawdy o podzapytaniach!).
Stan
ow
praca iska z t
a
_pos
zukiw beli
ana.
448
449
450
455
456
459
460
461
462
463
465
466
467
468
469
UNION ALL
470
471
472
473
473
Stan
prac owiska
a_p
z
oszu tabeli
kiwa
na.
474
479
480
Przybornik SQL
482
ktre
anowiska,
Wszelkie st
zwrconych
w wynikach
uj
p
st
wy
e zostan
ni
a,
ni
ta
py
go
przez oba za
nikach cae
wy
w
e
on
uwzgldni
.
ia
polecen
19
Spis treci
11
484
485
486
487
488
Sprawdzanie pci
489
491
Tworzenie widoku
493
494
495
Czym s widoki
496
Bazodanowa Kasa
Oszczdnociowa
20
500
503
504
505
506
Co si stao wbankomacie
507
508
510
511
512
513
514
515
Przybornik SQL
518
Spis treci
12
root
waniak
Bezpieczestwo
doktorek
Problemy uytkownikw
522
523
525
526
527
528
531
Usuwanie uprawnie
532
533
Precyzyjne usuwanie
534
538
Stosowanie roli
540
Usuwanie roli
540
542
547
548
549
549
Przybornik SQL
550
gupek
pyskacz
szczciarz
pioch
ziewacz
21
Spis treci
Pozostaoci
Cz najwaniejszych zagadnie
(ktrych nie opisalimy wczeniej)
Nawet po tym wszystkim jest jeszcze co wicej. Jest jeszcze dosownie kilka rzeczy,
oktrych, jak sdzimy, powiniene wiedzie. Nie czulibymy si wporzdku, gdybymy je cakowicie
zignorowali inie powicili im choby krtkiej wzmianki. Azatem: nim bdziesz mg odoy t
ksik na pk, przeczytaj otych drobnych, lecz wanych sprawach.
Poza tym kiedy skoczysz lektur tego dodatku, pozostan Ci jeszcze dwa nastpne oraz indeks
no imoe jeszcze jakie reklamy apotem ju naprawd skoczysz. Obiecujemy!
A
B
D
E
F
G
H
I
J
K
L
M
N
O
P
552
554
556
558
Nr 5. Tabele tymczasowe
560
Nr 6. Rzutowanie typw
561
562
563
565
566
ABSOLUTE ACTION ADD ADMIN AFTER AGGREGATE ALIAS ALL ALLOCATE ALTER AND ANY ARE
ARRAY AS ASC ASSERTION AT AUTHORIZATION
BEFORE BEGIN BINARY BIT BLOB BOOLEAN BOTH BREADTH BY
CALL CASCADE CASCADED CASE CAST CATALOG CHAR CHARACTER CHECK CLASS CLOB CLOSE
COLLATE COLLATION COLUMN COMMIT COMPLETION CONNECT CONNECTION CONSTRAINT
CONSTRAINTS CONSTRUCTOR CONTINUE CORRESPONDING CREATE CROSS CUBE CURRENT
CURRENT_DATE CURRENT_PATH CURRENT_ROLE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_
USER CURSOR CYCLE
DATA DATE DAY DEALLOCATE DEC DECIMAL DECLARE DEFAULT DEFERRABLE DEFERRED DELETE
DEPTH DEREF DESC DESCRIBE DESCRIPTOR DESTROY DESTRUCTOR DETERMINISTIC DICTIONARY
DIAGNOSTICS DISCONNECT DISTINCT DOMAIN DOUBLE DROP DYNAMIC
EACH ELSE END END_EXEC EQUALS ESCAPE EVERY EXCEPT EXCEPTION EXEC EXECUTE EXTERNAL
FALSE FETCH FIRST FLOAT FOR FOREIGN FOUND FROM FREE FULL FUNCTION
GENERAL GET GLOBAL GO GOTO GRANT GROUP GROUPING
HAVING HOST HOUR
IDENTITY IGNORE IMMEDIATE IN INDICATOR INITIALIZE INITIALLY INNER INOUT INPUT
INSERT INT INTEGER INTERSECT INTERVAL INTO IS ISOLATION ITERATE
JOIN
KEY
LANGUAGE LARGE LAST LATERAL LEADING LEFT LESS LEVEL LIKE LIMIT LOCAL LOCALTIME
LOCALTIMESTAMP LOCATOR
MAP MATCH MINUTE MODIFIES MODIFY MODULE MONTH
NAMES NATIONAL NATURAL NCHAR NCLOB NEW NEXT NO NONE NOT NULL NUMERIC
OBJECT OF OFF OLD ON ONLY OPEN OPERATION OPTION OR ORDER ORDINALITY OUT OUTER
OUTPUT
PAD PARAMETER PARAMETERS PARTIAL PATH POSTFIX PRECISION PREFIX PREORDER PREPARE
PRESERVE PRIMARY PRIOR PRIVILEGES PROCEDURE PUBLIC
Q
R
T
U
V
W
X
Y
Z
22
READ READS REAL RECURSIVE REF REFERENCES REFERENCING RELATIVE RESTRICT RESULT
RETURN RETURNS REVOKE RIGHT ROLE ROLLBACK ROLLUP ROUTINE ROW ROWS
SAVEPOINT SCHEMA SCROLL SCOPE SEARCH SECOND SECTION SELECT SEQUENCE SESSION
SESSION_USER SET SETS SIZE SMALLINT SOME SPACE SPECIFIC SPECIFICTYPE SQL
SQLEXCEPTION SQLSTATE SQLWARNING START STATE STATEMENT STATIC STRUCTURE
SYSTEM_USER
TABLE TEMPORARY TERMINATE THAN THEN TIME TIMESTAMP TIMEZONE_HOUR TIMEZONE_MINUTE
TO TRAILING TRANSACTION TRANSLATION TREAT TRIGGER TRUE
UNDER UNION UNIQUE UNKNOWN UNNEST UPDATE USAGE USER USING
VALUE VALUES VARCHAR VARIABLE VARYING VIEW
WHEN WHENEVER WHERE WITH WITHOUT WORK WRITE
YEAR
ZONE
Spis treci
Instalacja MySQL-a
TABASE
DA
CREATE
do
o polecenia
,
Uywaj teg caej bazy danych
a
utworzeni zawiera wszystkie
zie
bd
ra
kt
ele.
tab
oje
Tw
DELETE
570
570
571
Przypomnienie narzdzi
To narzdzi
e,
uywa do usuktrego moesz
tabeli. Stosuj wania wierszy z
WHERE, by w nim klauzul
prec
okrela wier yzyjnie
sze, ktrych
si pozby.
chcesz
USE DATABASE
Pozwala wskaza baz danych,
na ktrej chcesz pracowa,
na przykad by utworzy w
niej tabele.
ALTER TAB
LE
To polecenie
pozwala zmi
enia
nazw tabeli
oraz jej stru
ktur
bez koniecz
no
zawartoci. ci usuwania jej
NULL
z NOT
wi si
NULL ora
zastano h
ryc
e take
Powinien kolumny, w kt ci
rto
i wskaza wystpowa wa o,
nie mog przykad dlategsze
NULL, na oby to pniej danych.
ni
e utrud anie i sortowanie kolumn
wyszukiw tworzenia takich h sw
nic
Podczas musia uy w
bdziesz ch NOT NULL.
kluczowy
NATURAL
Podzapytanie skorelowane
576
JOIN
Zczenie wew
pominito klauntrzne, w ktrym
jedynie w przy zul ON. Dziaa
tabele zawiera padku, gdy czone
samej nazwie. j kolumn o takiejUPDATE
To polecenie
Zapytan
aktu
istniejc kolu alizuje
ie zewn
trzne
Zapytan
kolumny), zapi mn (lub
ie
zapytan zawierajce
now warto sujc w niej
ie
w
.
take jak wewntrzne, sobie
poleceniu mo Take w tym
okrelan
o podzap
na uywa klau
WHERE.
e
ytanie.
zuli
DEFAULT
pozwala
kluczowe
to
To sowo
yln war
a,
okreli dom ra bdzie uywan u
kt
ord
kolumny, s zapisywania rek
ny
jeli podcza to danej kolum
war
ana.
do tabeli
pod
nie
ie jaw
nie zostan
DROP TABLE
To polecenie pozwala usun
tabel z bazy, na przykad
w sytuacji, gdy tworzc j,
popenisz jaki bd. Jednak
powiniene z niego korzysta,
jeszcze zanim zaczniesz dodawa
do tabeli dane przy uyciu
polecenia INSERT.
INNER JOIN
Dowolne zczenie zawierajce
wiersze z obu tabel i
wykorzystujce jaki warunek
logiczny.
WE
KRZYO
Zczenie IN)
JO
(CROSS
z pierwszej
dy wiersz
Zwraca ka ony kolejno z
cz
tabeli, po rszem z drugiej
a
kadym wie take pod wielom
ane
tabeli. Zn wami, takimi jak:
IE
innymi naz KARTEZJASK
NIE
Z
ZCZE
ZENIE BE
oraz ZC .
ZCZENIA
Podz
apytan
ie nies
To ni
korelo
ez
wane
w ade alene po
do za n sposb dzapytan
ie
pytani
ni
a zew e odwou , ktre
je
ntrzn
ego. si
Zczenie
i RN RWNOC
IOWE
OCIOW
E
To dwa
ro
wewntr dzaje zcze
zn
zwraca ych. Pierwsz
wiersze
y
, ktre z nich
rwne,
a
s
od siebie drugi wiersze sobie
, ktre
rne.
s
Skorowidz
583
23
Po co by normalnym?
i wtedy mamusia
zadzwonia do
swojego tajemniczego
pomocnika!
W porzdku, to nie
jest normalne.
I wszystko byo w porzdku, tabele dziaay bez problemw. Moge w nich zapisywa,
modyfikowa, usuwa i pobiera dane. Jednak w miar zwikszania si iloci danych
w tabelach zaczniesz zauwaa, e s rzeczy, ktre moge zrobi wczeniej, by uatwi sobie
w przyszoci tworzenie klauzul WHERE. Innymi sowy, musisz znormalizowa swoje tabele.
Poawianie danych
polowy_informacje
nazwa
nazwa_gatunkowa
miejsce
bass
M. salmoides
Wigry, PD
1,23 kg
sandacz
S. vitreus
Dziubiele, WM
2,75 kg
pstrg
O. Clarki
Mrzygd, PK
1,20 kg
oko
P. Flavescens
Pisz, WM
0,85 kg
potka
R. rutilus
Charzykowy, PM
0,65 kg
uskot
L. Osseus
Czaplinek, ZP
1,10 kg
wgorz
A. anguilla
Swornegacie, PM
1,45 kg
szczupak
E. americanus
Karwica, WM
3,34 kg
zota rybka
C. auratus
Warszawa, MZ
0,35 kg
oso
O. Tshawytscha
Toru, KP
3,10 kg
Marek
194
waga
Rozdzia 4.
Ta tabela m
jedynie cztea
kolumny. P ry
j z tabel orwnaj
rekordowe_
przedstawiopolowy
nastpnej n na
stronie.
Tabela Jacka take zawiera polsk nazw zowionej ryby oraz jej
wag; jednak oprcz tego Jacek umieci w niej kolumny pozwalajce
na zapisanie imienia i nazwiska szczliwego wdkarza oraz nazwy
wojewdztwa, w ktrym dokonano poowu.
strowania
Take ta tabela suy do reje kich, jednak
kars
wd
ww
poo
rekordowych
wicej kolumn.
zawiera niemal dwukrotnie
rekordowe_polowy
imie
nazwisko
nazwa
miejsce
wojewodztwo
waga
data
PD
1,23 kg
5.9.1947
Dziubiele
WM
2,75 kg
16.8.1960
Mrzygd
PK
1,20 kg
23.6.1978
Pisz
WM
0,85 kg
18.5.1934
Charzykowy
PM
0,65 kg
1.8.1965
uskot
Czaplinek
ZP
1,10 kg
31.9.1988
Dubaa
wgorz
Swornegacie
PM
1,45 kg
12.8.1973
Wronek
szczupak
Karwica
WM
3,34 kg
11.6.1995
Jan
Kowalski
bass
Wigry
Adrian
Brdka
sandacz
Zenon
Krawczyk
pstrg
Maria
Popiela
oko
Piotr
Drymza
potka
Ignacy
Wikorczyk
Krzysztof
Pawe
Andrzej
Ksiewicz
zota rybka
Warszawa
MZ
0,35 kg
25.9.2003
Roman
Wiertek
oso
Toru
KP
3,10 kg
17.8.1991
Zaostrz owek
Dla obu tabel napisz zapytanie,
ktre pobierze wszystkie rekordowe
poowy dokonane w wojewdztwie
podkarpackim.
Jacek
Rozwizanie wiczenia
Zaostrz owek
Rozwizanie
Dla kadej z tabel napisz zapytanie, ktre pobierze informacje o rekordowych poowach
dokonanych na terenie wojewdztwa podkarpackiego.
nazwa
nazwa_gatunkowa
miejsce
waga
pstrg
O. Clarki
Mrzygd, PK
1,20 kg
To zapytanie odwouje si
bezporednio do kolumny
wojewodztwo.
196
imie
nazwisko
nazwa
miejsce
wojewodztwo
waga
data
Zenon
Krawczyk
pstrg
Mrzygd
PK
1,20 kg
23.6.1978
Rozdzia 4.
gupie pytania
P.:
P.:
O.:
O.:
O.:
P.:
O.:
P.:
O.:
WYSIL
szare komrki
SQL jest jzykiem uywanym w relacyjnych bazach danych.
Jak uwaasz, czym s te relacje w wiecie baz danych?
Jak bdziesz
korzysta
z tabeli?
3.
j
Jak bdzie Ci najatwie
a
przeszukiwa i pobier
dane z tabeli?
198
Rozdzia 4.
wiczenie
Twoja kolej. Napisz analogiczne zdanie dotyczce Jacka autora artykuw dla
magazynu Weekend z wdk, ktry korzysta z bazy, by notowa w niej szczegowe
informacje na potrzeby swoich artykuw. Nastpnie narysuj strzaki prowadzce
od nazw kolumn do miejsca w zdaniu, w ktrym Jacek nawizuje do danej kolumny.
nazwisko
imie
nazwa
wojewodztwo
miejsce
waga
data
wiczenie. Rozwizanie
Rozwizanie
wiczenia
Czy na podstawie przedstawionego poniej zdania okrelajcego, w jaki sposb ichtiolog Marek
chce przeszukiwa i pobiera dane z tabeli, potrafisz okreli, jakie powinny by jej kolumny?
Wpisz nazwy kolumn w pustych prostoktach na poniszym rysunku.
nazwa_gatunkowa
nazwa
miejsce
waga
Twoja kolej. Napisz analogiczne zdanie dotyczce Jacka autora artykuw dla
magazynu Weekend z wdk, ktry korzysta z bazy, by notowa w niej szczegowe
informacje na potrzeby swoich artykuw. Nastpnie narysuj strzaki prowadzce
od nazw kolumn do miejsca w zdaniu, w ktrym Jacek nawizuje do danej kolumny.
nazwisko
imie
nazwa
wojewodztwo
miejsce
200
Rozdzia 4.
waga
data
WYSIL
szare komrki
Jak mylisz, co oznacza termin dane atomowe w kontekcie
informacji zapisywanych w relacyjnych bazach danych?
Dane atomowe
Dane atomowe
Czym jest atom? To niewielki fragment materii, ktrego nie mona lub nie
naley dalej dzieli. To samo dotyczy danych. Kiedy zostan one uznane za dane
ATOMOWE, oznacza to, e zostay one ju podzielone na najmniejsze elementy,
ktrych nie naley dalej dzieli.
202
Rozdzia 4.
1. Co jest podstawowym
zagadnieniem
opisywanym przez tabel?
Nie istniej
gupie pytania
P.:
204
Rozdzia 4.
atomowych?
O.:
Zaostrz owek
Poniej przedstawilimy dwie oficjalne reguy dotyczce danych atomowych. Dla kadej z nich
narysuj dwie hipotetyczne tabele, ktre nie bd spenia wytycznych reguy.
Zaostrz owek
Rozwizanie
Poniej przedstawilimy dwie oficjalne reguy dotyczce danych atomowych. Dla kadej z nich
narysuj dwie hipotetyczne tabele, ktre nie bd spenia wytycznych reguy.
poywienie
skadniki
chleb
saatka
nauczyciel
206
student1
student2
student3
Pani Martini
Janek
Romek
Kasia
Pan Grog
Sonia
Tymon
Julia
Rozdzia 4.
wiczenie
Skoro ju znasz oficjalne reguy oraz trzy kroki pozwalajce na stosowanie danych
atomowych, przeanalizuj wszystkie tabele przedstawione do tej pory w ksice i wyjanij,
dlaczego zawieraj one dane atomowe, albo co sprawia, e zapisywane w nich informacje
nie s danymi atomowymi.
Normalizacja tabel
Rozwizanie
wiczenia
Zapisywanie w tabeli
danych atomowych jest
pierwszym krokiem na
drodze do tworzenia tabel
ZNOrMALIZOWANYCH.
Skoro ju znasz oficjalne reguy oraz trzy kroki pozwalajce na stosowanie danych atomowych,
przeanalizuj wszystkie tabele przedstawione do tej pory w ksice i wyjanij, dlaczego
zawieraj one dane atomowe, albo co sprawia, e zapisywane w nich informacje nie s danymi
atomowymi.
Tabela Grzeka, ze strony 83 Nie jest atomowa. Kolumny zainteresowania i szuka nie s zgodne z regu 1.
eniu od kolumn tabeli proste_drinki
Tabela z ocenami pczkw, ze strony 112 Tabela jest atomowa. W odrni wuje informacje rnego typu. Oprcz
208
Rozdzia 4.
Unikanie powielania
danych pozwoli
Ci zaoszczdzi
miejsce na dysku.
Normalizacja i 1NF
danych w tych
Wyszukiwanie ch jest naprawd
dwch kolumna wieraj one tak
za
trudne, gdy ji!
wiele informac
klowni_informacje
imie
ostatnio_widziano
wyglad
aktywnosci
Eklerka
Pan Pimpu
mim
Pani Smyk
MegaStragan
trbka, parasolka
Pan Hobo
Cyrk Koloseum
skrzypce
Klarabela
krzyk, taniec
Skuter
Szpital Miejski
balony
Zippo
taniec
Balbina
Auta Edwarda
piew, taniec
Gonzo
Pan Smyk
Zabawex
Zaostrz owek
210
Rozdzia 4.
k
Ju wiem, jan
zaspokoi te
wymg.
Aby cakowicie
znormalizowa tabel,
do kadego z jej
rekordw musimy
doda klucz gwny.
WYSIL
szare komrki
Jak sdzisz, jakiego typu kolumny bd si nadaway
do tworzenia klucza gwnego?
jeste tutaj
211
PESEL
nazwisko
Uwaga!
numer
Kluczem
gwnym tabeli
nazywamy
kolumn, ktra
sprawia, e kady
wiersz tabeli jest
unikalny.
telefon
wartoci mog
W tych trzech kolumnach d z du doz
yka
prz
na
a;
tarz
pow
si
emy zaoy, e w tabeli
prawdopodobiestwa mo na osoba o imieniu Jan;
jed
ni
cej
wi
si
znajdzie
, e kilka osb bdzie
podobnie moe si zdarzy tego samego numeru
wa
uy
i
si
mieszka razem
kolumny raczej nie bd
telefonu. Dlatego te trzy klucza gwnego tabeli.
roli
nadaway na penienie
212
Rozdzia 4.
WYSIL
szare komrki
Czy na podstawie tych wszystkich informacji moesz poda przykad dobrego klucza
gwnego?
Przejrzyj przykadowe tabele, ktre przedstawilimy we wczeniejszej czci ksiki.
Czy w ktrej z nich jest kolumna zawierajca naprawd unikalne wartoci?
nazwisko
imie
pseudonim
Kowalski
Janek
Pierun
Paciorek
Krystyna
Krycha
Kowalski
Janek
Pierun
lusarczyk
Anna
Ania
Paprocki
Krzysztof
Krzych
Kowalskiego.
Rekord Janka
Dla maniakw
Wwiecie SQL-atrwa niekoczca si debata na temat
tego, czy naley uywa syntetycznych kluczy gwnych,
czyli specjalnie utworzonych (takich jak nasza kolumna id), czy te kluczy
naturalnych tworzonych na podstawie informacji, ktre ju s zapisane
wtabeli (takich jak numer nadwozia lub PESEL). Nie preferujemy adnego
ztych rozwiza, azagadnieniami zwizanymi zkluczami gwnymi
zajmiemy si bardziej szczegowo wrozdziale 7.
214
Rozdzia 4.
gupie pytania
P.:
O.:
P.:
O.:
WYSIL
szare komrki
Czy pamitasz, jak mona dodawa kolumny
do istniejcych tabel?
216
Rozdzia 4.
W tej tab
nie ma eli
kolumny
klucza
gwnego
.
bel,
Czy tworzc ta i
aw
pr
po
y
em
mo
ch kolumn?
atomowo ty
WYSIL
szare komrki
A co zrobi, gdybymy nie mieli nigdzie zanotowanego oryginalnego
polecenia CREATE TABLE uytego do utworzenia tabeli? Czy istnieje jaki
sposb dotarcia do jego kodu?
tabel
Pokacie mi moj kas
A co by si stao, gdyby zastosowa polecenie DESCRIBE
moje_kontakty, by podejrze kod uyty do utworzenia
tej tabeli? Ot gdyby to zrobi, w oknie konsoli ujrzaby
nastpujce wyniki:
218
Rozdzia 4.
Utworzylimy now
kolumn o nazwie
id_kontaktu, w ktrej
bd zapisywane
wartoci liczbowe.
Kolumna ta bdzie peni
funkcj klucza gwnego
naszej tabeli. Kada
warto w tej kolumnie
bdzie unikalna, dziki
czemu caa tabela stanie
si tabel atomow.
220
Rozdzia 4.
Nie istniej
gupie pytania
O.:
O.:
P.:
O.:
P.:
O.:
P.:
O.:
1, 2, 3 automatycznie inkrementowane
Dodanie do naszej kolumny id_kontaktu sowa kluczowego
AUTO_INCREMENT nakae, by w pierwszym wierszu tabeli przyja
ona warto 1, a w kadym kolejnym bya powikszana o 1.
systemw
To jest to! Wwikszoci wystarczy
ych
dan
ami
baz
ania
dz
zarz
a sowo
do deklaracji kolumny dod
NT.
EME
NCR
O_I
AUT
kluczowe
itajcie:
(Uytkownicy MS SQL pam to sowo
zie
wWaszym przypadku bd naley
kluczowe INDEX, po ktrymoraz liczb,
poda warto pocztkow wartoci
oktr bd powikszane
ch. Bardziej
wposzczeglnych kolumna ten temat
na
cje
rma
info
e
szczegow
tacji
mona znale wdokumen
serwera MS SQL).
222
Rozdzia 4.
1.
wiczenie
Poniej, w pustych wierszach, zapisz kod polecenia CREATE TABLE, ktre pozwoli utworzy tabel
suc do przechowywania imion i nazwisk osb. Powinna ona zawiera kolumn klucza gwnego,
ktrej wartoci bd automatycznie inkrementowane, oraz dwie kolumny atomowe.
2. Wykonaj powysze polecenie w oknie konsoli bazy danych lub innym programie do
zarzdzania baz.
3. Sprbuj wykona kade z poniszych polece INSERT. Zakrel te, ktre dziaaj
prawidowo.
twoja_tabela
id
imie
nazwisko
Rozwizanie wiczenia
Rozwizanie
wiczenia
1.
Poniej, w pustych wierszach, zapisz kod polecenia CREATE TABLE, ktre pozwoli utworzy tabel
suc do przechowywania imion i nazwisk osb. Powinna ona zawiera kolumn klucza gwnego,
ktrej wartoci bd automatycznie inkrementowane, oraz dwie kolumny atomowe.
2. Wykonaj powysze polecenie w oknie konsoli bazy danych lub innym programie do
zarzdzania baz.
3. Sprbuj wykona kade z poniszych polece INSERT. Zakrel te, ktre dziaaj
prawidowo.
To ostatnie polecenie
zadziaa,jednak
zmodyfikuje warto
kolumny
AUTO_INCREMENT.
224
Rozdzia 4.
twoja_tabela
id
imie
nazwisko
Marysia
Krawczyk
Bartek
Krawczyk
Cecylia
Krawczyk
99
Piotr
d Krawczyk
Wyglda na to, e
zgubilimy Jank; zapewne
dlatego, e prbowalimy
jej przypisa indeks,
ktry zosta ju uyty
w rekordzie Marysi.
Marysia, Marysia, Marysia
!
gupie pytania
P.:
O.:
226
Rozdzia 4.
da
A to kod, ktry do n.
do tabeli now kolum
Czy nie wyglda
znajomo?
Czy sdzisz, e powysze polecenie doda wartoci do kolumny id_kontaktu w ju istniejcych rekordach
tabeli czy tylko w rekordach, ktre dopiero bd w niej zapisywane? Jak moesz to sprawdzi?
szare komrki
WYSIL
FIRST to sowo, kt
re
nakazuje, by nowa
kolumna zostaa dod
ana
jako pierwsza kolum
na
tabeli. Cho nie ma
to
wikszego znaczenia
,
to jednak umieszczani
klucza gwnego jak e
o
pierwszej kolumny tab
jest dobrym pomysem eli
.
Ten komunikat
informuje nas, e
polecenie dodao
now kolumn
do 37 rekordw,
ktre ju byy
zapisane wbazie.
Ty zapewne nie
bdziesz ich mie
a tak wielu.
Zajefajnie
Teraz ju mam kolumn klucza
gwnego wraz z odpowiednimi
wartociami. Czy mog uy polecenia
ALTER take do dodania kolumny do
zapisywania numeru telefonu?
Poniewa uylimy
sowa kluczowego
AUTO_INCREMENT,
zawarto tej kolumny
bya uzupeniana
podczas modyfikowania
poszczeglnych,
istniejcych ju
wierszy tabeli.
Kiedy w przyszoc
to w jego kolumnie i bdziemy dodawali nowy rekord,
warto ojeden wi id_kontaktu zostanie zapisana
zapisanej w caej ksza od najwikszej wartoci
A zatem, jeli w tabeli w kolumnie id_kontaktu.
os
w kolumnie kontakt_tatnim dodawanym rekordzie
to w kolejnym rek id znajduje si warto 23,
ordzie znajdzie si
warto 24.
jest
Pamitaj, to nie ka;
ze
Gr
li
be
ta
koniec
ajduje
tak naprawd zn wiele
si w niej jeszcze
innych kontaktw.
Przegld SQL-a
ROZDZIA 4
Przybornik SQL
A zatem opanowae materia z czwartego
rozdziau ksiki. Przyjrzyj si jeszcze raz
wszystkim nowym narzdziom, jakie dodae
do swojego SQL-owego przybornika. Kompletn
list porad znajdziesz w dodatku C, zamieszczonym na
kocu ksiki.
DANE ATOMO
WE
Dane w tabeli
s atomowe,
jeli zostay
ju podzielone
na
najmniejsze el
ementy, ktre
s
Ci potrzebne.
1.
REGUA
E
TOMOW
to
DANE A
mowe,
by ato moe
j
a
m
ne
ie
SHOW
Jeli da ej kolumnie n
CREATE
m
entw
a
m
s
le
j
e
a
TABLE
k
w te
il
a k
w
o
S
.
u
k
jd
o
p
a
r
y
n
z
t
y
s
o
t
g
a
e
si z
j
m
z tego
by pozn
tego sa
polece
a ska
danych
.
2
A
dni po nia,
SQL, kt
U
G
E
R
lecenia
r
E
istniej e pozwoli Ci o
TOMOW
owe,
m
c
dtworzy
o
t
DANE A
a
t
abel.
yy
tabeli b ajdowa
w
e
n
a
n
d
z
y
j
b
ie
A
n
ch
e si w
ierajcy u.
nie mo
w
a
z
n
PIERWSZ
m
lu
o
o
k
eg typ
A POSTA
kilka
NORMA
ego sam
t
(1
NF)
je
c
a
LNA
inform
K
a
d
y wiersz
Y
danych m
GWN
zawiera
ktre
usi
,
KLUCZ
n
m
lu
dane atom
o
k
r
i
b
z
o
j
w
u
u
b
e
n
k
ik
lu
oraz
fi
alny identy
enty
Kolumna
fikator.
osb id
p
s
y
ln
w unika beli.
ta
wiersze
AUTO_INCREM
ENT
Zastosowanie
tego sowa
kluczowego w
deklaracji
tabeli sprawi,
e w momenci
e
wykonywania
polece INSER
T
w danej kolu
mnie bd si
automatycznie
i magicznie
pojawiay uni
kalne liczby
cakowite.
228
Rozdzia 4.
Zaostrz owek
Rozwizanie