Académique Documents
Professionnel Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
MySQL. Podstawy
Autorzy: Luke Welling, Laura Thomson
Tumaczenie: Marek Koszykowski
ISBN: 83-7361-689-6
Tytu oryginau: MySQL Tutorial
Format: B5, stron: 280
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
O Autorach ...................................................................................... 11
Wprowadzenie ................................................................................. 13
Cz I
Cz II
Spis treci
Zasady konstruowania bazy danych ................................................................................ 46
Redundancja (nadmiarowo danych) kontra strata danych...................................... 47
Anomalie................................................................................................................... 48
Wartoci Null (puste) ................................................................................................ 48
Normalizacja ................................................................................................................... 49
Pierwsza posta normalna bazy danych .................................................................... 49
Druga posta normalna bazy danych......................................................................... 51
Trzecia posta normalna bazy danych....................................................................... 52
Posta normalna Boyce-Codda ................................................................................. 53
Kolejne postaci normalne.......................................................................................... 53
Podsumowanie ................................................................................................................ 54
Spis treci
Cz V
Spis treci
Spis treci
9
Testowanie kopii zapasowej.......................................................................................... 219
Sprawdzanie i naprawianie tabel ................................................................................... 219
Sprawdzanie i naprawianie tabel przy uyciu polece CHECK i REPAIR............. 220
Sprawdzanie i naprawianie tabel przy uyciu skryptu myisamchk ......................... 221
Sprawdzanie i naprawianie tabel przy uyciu skryptu mysqlcheck......................... 221
Podsumowanie .............................................................................................................. 222
10
Spis treci
Dodatki ......................................................................................269
Skorowidz...................................................................................... 271
Rozdzia 5.
Wstawianie, usuwanie
i aktualizacja danych
W tym rozdziale zobaczymy, w jaki sposb wstawia i zmienia dane w bazie danych
MySQL przy uyciu instrukcji , oraz
.
Omwimy nastpujce zagadnienia:
Uywanie instrukcji
Uywanie instrukcji
Uywanie instrukcji
Wczytywanie danych za pomoc instrukcji
Korzystanie z instrukcji
i
Instrukcja INSERT
Instrukcja jest uywana do wstawiania wierszy do tabeli. Zacznijmy od przykadu.
Jak ju wczeniej mwilimy, instrukcje mona wpisywa bezporednio w programie
MySQL Monitor lub zapisywa je w pliku.
Przykady instrukcji s pokazane w listingu 5.1.
Listing 5.1. pracownik_dane.sql
84
Widzimy, e zanim wstawimy dane do kadej tabeli, uywamy polecenia . Nie
jest to konieczne, ale w ten sposb zostan usunite ewentualne dane prbne, ktre
mogy ju zosta umieszczone w tabeli. Do instrukcji przejdziemy w dalszym
podrozdziale.
Zauwamy rwnie, e wstawilimy te same dane, ktrych uywalimy w przykadach
z rozdziau 3., Byskawiczny kurs tworzenia bazy danych. Dodalimy te nowe wiersze.
Wszystkie instrukcje s bardzo podobne. Spjrzmy na pierwsz, aby zobaczy,
jak dziaa.
!
"#
$%&&'
$%&&(
)
Instrukcja INSERT
85
Poniewa jest to kolumna !, moemy ustali warto lub pozwoli, aby
MySQL wybra j za nas (zwykle w takich kolumnach nie podaje si liczby samemu,
ale mog istnie sytuacje takie jak ta, w ktrej mamy ju istniejc warto do zastosowania).
W wierszach z wydziaami $ oraz %
&' pozostawilimy kolumn
pust (ma warto ). Zadziaa wwczas opcja !, powodujc przydzielenie odpowiednich wartoci. Zobaczmy, jaki bdzie wynik dziaania
instrukcji .
Jeeli przejrzymy rne instrukcje z przykadu, zobaczymy, e dane typu acucha znakowego i daty ujlimy w apostrofy, na przykad (%
&'(. Z kolei
danych typu liczbowego nie naley ujmowa w apostrofy.
A co powinnimy zrobi, gdy dane, ktre znajduj si midzy apostrofami, same zawieraj apostrofy? Odpowiedzi jest oznaczenie apostrofw znakami sterujcymi. Mwic
prosto, powinnimy wpisa lewy ukonik ()) przed znakiem apostrofu, na przykad
()((.
Oczywicie rodzi si nastpne pytanie Co zrobi, jeeli chcemy wstawi lewy ukonik jako zwyky znak, a nie znak o specjalnym znaczeniu? Musimy uciec od niego
w ten sam sposb zamiast jednego ukonika, powinnimy wpisa dwa ())*.
Dane z bazy danych pobieramy przy uyciu instrukcji . T instrukcj omwimy
obszernie w kolejnych kilku rozdziaach. Teraz wystarczy, abymy wiedzieli, e wpisanie
?
Moemy zauway, e wynikiem dziaania opcji ! jest warto o jeden
wiksza ni najwiksza warto w kolumnie.
86
W instrukcji zgodnej z tym wzorcem mona wstawi za jednym razem tylko jeden
wiersz, ale nie jest konieczne podawanie wartoci dla wszystkich kolumn. W naszym
przykadzie sprecyzowalimy tylko warto dla pola . Wszystkie niepodane wartoci przyjm albo warto domyln, jeeli zostaa okrelona, albo warto . W tym
przykadzie przyjmie warto , co sprawi, e zadziaa magia opcji
! i wygenerowana zostanie warto dla identyfikatora wydziau (mona to
sprawdzi, wpisujc jeszcze raz
,
-!
).
W instrukcji wystpuje wiele klauzul opcjonalnych. Przejrzyjmy je krtko, aby
zorientowa si, do czego su:
Moemy zastosowa opcje .
/ lub /. Powoduj one,
Instrukcja REPLACE
87
:
/
B7
B7
JB 7
B7
11+
J
@
wstawianiu nie podajemy innej jego wartoci, dlatego dla kadego pracownika
warto tego pola przy pierwszym wstawieniu bdzie rwna 1. Kolejne
uruchomienia instrukcji dla tego samego "# spowoduj
wczanie opcji
$/
, a przez to zwikszanie licznika.
Instrukcja REPLACE
Instrukcja
dziaa podobnie jak instrukcja . Rni si od niej wycznie
tym, e gdy przy wstawianiu wartoci pojawi si kolizja klucza, nowy wiersz zastpi
istniejcy.
88
Instrukcja DELETE
Instrukcja SQL pozwala usun wiersze z tabeli. W listingu 5.1 na przykad
wystpuje taka instrukcja:
Zostan wwczas usunite tylko te wiersze, ktre speniaj kryteria zawarte w klauzuli
.2. W tym przykadzie zostan usunite tylko te wiersze, dla ktrych nazwa wydziau
to (34
#!(.
Rzadko s usuwane wszystkie wiersze tabeli. Jednak poniewa jest to najkrtsza forma
instrukcji , moe si czasem zdarzy, e przez przypadek wpiszemy instrukcj
bez klauzuli .2. Moemy zaoszczdzi sobie takich problemw, wczajc
opcj 55-5" lub 555!55!! w wierszu polecenia klienta mysql (jak to
zostao omwione w rozdziale 2., Szybkie wprowadzenie.) Te opcje zapobiegaj
usuniciu (lub aktualizacji) wierszy bez podania ograniczenia klucza w warunku .2.
Oznacza to, e naley ucili zamiar usunicia wierszy przez podanie okrelonej wartoci klucza.
W podrczniku MySQL oglny wzorzec instrukcji jest nastpujcy:
7-&-9-C&D=E3!BD!B9FGCM%B5'G!D(
C=N-!-
G
CD!7-! FIG
C&B(B9
G
/
Instrukcja DELETE
89
7-&-9-C&D=E3!BD!B9FGCM%B5'G
C<?GC
C<?GIG
!D(
C=N-!-
G
/
7-&-9-C&D=E3!BD!B9FGCM%B5'G
!D(
C<?GC
C<?GIG
%;B$H
C=N-!-
G
0
<B7
J# 3
<B7
<B7
J
<B7
<
J
0
<B7
J# 3
<B7
<B7
J
<B7
<
J
90
Instrukcja TRUNCATE
Instrukcja umoliwia nam usunicie wszystkich wierszy w tabeli, na przykad:
9!%$529-92 &-
To zapytanie usunoby wszystkich pracownikw z tabeli pracownik. Jest ono szybsze ni instrukcja , poniewa powoduje usunicie tabeli i utworzenie nowej
pustej. Naley pamita o tym, e nie zapewnia bezpieczestwa waciwego
dla transakcji.
Instrukcja UPDATE
Moemy uy instrukcji SQL
, aby zmieni wiersze przechowywane w bazie
danych. Na przykad, wyobramy sobie, e jeden z naszych pracownikw zmienia
stanowisko:
J /0
0B7
J11+
91
/
%3729-C&D=E3!BD!B9FGCBH$D!-GCIG
;-9
J
C
IG
C=N-!-
G
Instrukcja
w wielu wzgldach jest podobna do instrukcji .
Moemy poda opcjonaln klauzul .2, aby aktualizowa okrelone wiersze, lub
nie podawa jej, aby uaktualni wszystkie wiersze. Tutaj rwnie zapomnienie dodania
klauzuli .2 moe mie nieprzyjemne skutki pamitam jeden projekt, w ktrym
mj nierozsdny kolega wpisa midzy wierszami:
J
/ oraz 0 dziaaj w taki sam sposb, jak w instrukcji . Klauzule
%/ oraz 7 dziaaj tak, jak w instrukcji .
92
e plik z danymi jest na komputerze klienta. Jeeli nie zostanie ono dodane,
plik bdzie szukany przez MySQL na serwerze.
Jeeli klucze koliduj w czasie wstawiania danych, opcje
i 0
dostarczaj dwch metod do ich obsugi. Wstawienie
oznacza,
e istniejcy wiersz zostanie zamieniony na nowy, 0 e istniejcy
Podsumowanie
93
Popularny format pobierania danych to CSV lub inaczej format pliku z wartociami
oddzielonymi przecinkami. Wiele programw potrafi zapisywa i odczytywa pliki
tego typu, jednym z przykadw jest Microsoft Excel1. W listingu 5.3 pokazano plik
CSV zapisany w arkuszu Excel.
Listing 5.3. nowi_programisci.csv
$
;
B7
6& )
7$
)
9D& )
powinny by zignorowane.
Dane w pliku nie zawieraj "#, dlatego aby przypisa trzy kolumny
Podsumowanie
W tym rozdziale poznalimy sposoby wstawiania, usuwania i aktualizacji danych tabeli
bazy danych.
1
W polskiej wersji jzykowej Excel zapisuje plik CSV jako plik wartoci rozdzielonych rednikami
(chocia nazywa go plikiem wartoci rozdzielonych przecinkami) przyp. red.
94
Wstawianie danych
Wartoci acuchw znakowych powinny by umieszczane w apostrofach.
Instrukcja
dziaa w taki sam sposb, jak instrukcja , tylko
Usuwanie danych
Unikanie bdw za pomoc opcji 555!55!!.
Usuwanie danych z tabeli instrukcj :
7-&-9-C&D=E3!BD!B9FGCM%B5'G!D(
C=N-!-
G
CD!7-!/IG
C&B(B9
G
/
7-&-9-C&D=E3!BD!B9FGCM%B5'G
C<?GC
C<?GIG
!D(
C=N-!-
G
/
7-&-9-C&D=E3!BD!B9FGCM%B5'G
!D(
C<?GC
C<?GIG
%;B$H
C=N-!-
G
Aktualizacja danych
Aktualizacja danych w tabeli instrukcj
%:
Quiz
95
%3729-C&D=E3!BD!B9FGCBH$D!-G
;-9
E
J
C
J
IG
C=N-!-
G
CD!7-! FIG
C&B(B9
G
/
%3729-C&D=E3!BD!B9FGCBH$D!-GCIG
;-9
J
C
J
IG
C=N-!-
G
Quiz
1. Ktra z poniszych instrukcji spowoduje prawidowe wstawienie wiersza do
tabeli pracownik?
a)
B7
J$%&&
J&9
J )B7
J
b)
$%&&&9
)
c)
$%&&&9
)
d)
$%&&&D& )
96
2. Instrukcja
:
a) dziaa tak samo, jak , lecz gdy pojawi si kolizja klucza,
dotyczce klucza;
c) zapobiega usuniciu danych, jeeli nie jest sprecyzowane ograniczenie
dotyczce klucza;
d) oba b) i c).
4. Domylnie pola w plikach danych, wczytywanych instrukcj
-,
s oddzielone:
a) przecinkami,
b) spacjami,
c) tabulatorami,
d) znakami =.
5. Opcja w instrukcji
mwi, e:
a) klient i serwer dziaaj na tym samym komputerze,
b) plik danych jest na serwerze,
c) plik danych jest na kliencie,
d) serwer dziaa na lokalnym hocie.
wiczenia
1. Utwrz zestaw instrukcji , aby wstawi dane do kadej tabeli bazy
danych zamowienia.
2. Usu dane z tabel.
3. Zapisz plik zawierajcy te same dane, ktre byy wstawiane w punkcie
Nastpnie
97
Odpowiedzi
Quiz
1. b
2. a
3. d
4. c
5. c
wiczenia
Nie ma jednej prawidowej odpowiedzi w wiczeniach z tego rozdziau. Po prostu
upewnij si, e potrafisz zrobi wszystkie wiczenia.
Nastpnie
W rozdziale 6., Zapytania w MySQL, zaczniemy analizowa podstawowe narzdzie
SQL instrukcj w jej wielu odmianach.