Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
MySQL. Rozmwki
Autorzy: Zak Greant, Chris Newman
Tumaczenie: Przemysaw Szeremiota
ISBN: 83-246-0550-9
Tytu oryginau: MySQL Phrasebook
Format: B6, stron: 216
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
O autorach ........................................................................... 7
Wstp .................................................................................. 9
1 Mapy MySQL ..................................................................... 13
RSZBD MySQL ........................................................................ 14
Stos LAMP ............................................................................. 16
Terminologia tabel MySQL ..................................................... 16
Tabele przykadowe ............................................................... 18
2 Tworzenie baz danych, tabel i indeksw
i zarzdzanie nimi ............................................................ 19
Bazy danych, tabele, kolumny i indeksy ................................. 20
Tworzenie baz danych i zarzdzanie nimi ............................... 23
Tworzenie tabel i zarzdzanie nimi ........................................ 29
Tworzenie kolumn tabel i zarzdzanie nimi ............................ 33
Tworzenie indeksw i zarzdzanie nimi ................................. 36
Zobacz rwnie ...................................................................... 38
3 Skadowanie danych ......................................................... 39
Dodawanie danych do tabeli ................................................. 39
Wstawianie wielu wierszy danych
w jednym zapytaniu INSERT ................................................. 41
Spis treci
Spis treci
Spis treci
ROZDZIA 2
Definicja kadej tabeli okrela jedn lub wicej kolumn tabeli i zero lub wicej indeksw.
Indeksy redukuj narzuty czasowe typowe dla serwerw baz danych, a zwizane z wyszukiwaniem konkretnych wartoci w kolumnie (zbiorze kolumn) tabeli.
WSKAZWKA
Omawiane wyej pojcia ilustruje rysunek Terminologia tabel MySQL w rozdziale 1. (Mapy MySQL).
Tabele metaforycznie
Dobrym, cho uproszczonym modelem bazy danych jest
znany kademu may, czarny notesik adresowy. W owej
pierwotnej, prostej wersji ksiki adresowej informacje
o znajomych i kolegach zapisywao si na kolejnych
kartkach. Wpisy dotyczce poszczeglnych osb byy
rozmieszczane w specjalnych szablonach, z polami do wypenienia, opatrzonymi etykietami: Imi i nazwisko, Adres
czy Data urodzenia.
Do tego bywao, e strony byy oznaczane zakadkami
indeksowymi, pomocnymi w odszukiwaniu konkretnych
osb. Bez takich zakadek wyszukiwanie wymagao przegldania kolejnych kartek a do momentu natrafienia na
szukan osob.
Ksieczka, o ktrej mwimy, mogaby wyglda jak na
rysunku 2.1.
Bazy danych atwo zrozumie; s najzwyklejszymi pojemnikami na dane. Nieco gorzej z tabelami. Do ich ogarnicia przyda si prosta metafora.
ROZDZIA 2
21
ROZDZIA 2
Taki notesik mona traktowa jako tabel zoon z wierszy i kolumn. Kady wiersz odnosi si do pojedynczej
osoby, podczas gdy kolumny grupuj atrybuty poszczeglnych osb (nazwiska, adresy poczty elektronicznej, daty
urodzenia).
Zawarto naszego notesika w formie tabelarycznej przedstawiaaby si tak, jak na rysunku 2.2.
W papierowej ksieczce adresowej wpisy poszczeglnych osb umieszczone byy na stronach z odpowiedni
zakadk indeksow, pasujc do pierwszej litery nazwiska.
Na przykad Antoni Sonimski zosta zapisany na stronie
z zakadk indeksow S.
Sposb powizania indeksu z waciwymi pozycjami wierszy w tabeli ilustruje rysunek 2.3.
Z kolei w tabeli wiersze s rozmieszczone w dowolnej kolejnoci. Aby umoliwi wyszukanie odpowiedniego wiersza bez koniecznoci przegldania caoci tabeli, kolumny
tabel uzupenia si o indeksy. Indeksy takie stanowi jakby
listy uporzdkowanych wartoci kolumn, reprezentujcych
waciwe pozycje tych wartoci w kolumnie.
ROZDZIA 2
23
ROZDZIA 2
wiedzie, aby skutecznie tworzy i usuwa bazy i zarzdza ju istniejcymi bazami danych.
WSKAZWKA
Operator LIKE moe by wykorzystywany w wielu innych
poleceniach (zapytaniach) SQL; poza poleceniem SHOW wystpuje typowo w klauzulach WHERE zapyta SELECT i DELETE.
W przypadku wieo zainstalowanej kopii oprogramowania MySQL uruchomienie polecenia przykadowego
z tak okrelonym filtrem baz danych powinno da efekt
taki, jak poniej:
+----------+
| Database |
+----------+
| mysql
|
+----------+
1 rows in set (0.00 sec)
UWAGA
Zainteresowanych dodatkowymi informacjami o operatorze
LIKE odsyamy pod adres http://mysql.com/LIKE.
ROZDZIA 2
25
ROZDZIA 2
Pojedynczy serwer MySQL moe peni piecz nad wieloma bazami danych. Zapytanie operujce na bazie danych albo tabeli musi w jaki sposb zosta skojarzone
z odpowiedni baz danych. Docelow baz danych mona poda jawnie w tekcie zapytania. Na przykad ponisze zapytanie odwouje si do tabeli ksika w bazie
danych biblioteka:
SELECT tytul FROM biblioteka.ksika;
Alternatywnie mona ustali domyln baz danych, wybieran automatycznie dla wszystkich kolejnych zapyta.
Suy do tego polecenie USE:
USE biblioteka;
W dalszej perspektywie ustawienie domylnej bazy danych zaoszczdzi nam mnstwo pisania, bo nie trzeba
bdzie ju podawa w zapytaniach przy kadej tabeli nazwy
bazy danych. Zapytania bd dotyczyy tej bazy danych,
ktra poleceniem USE zostaa ustawiona jako domylna.
Porwnajmy ponisze zapytania. Zapytania pierwsze i trzecie zwracaj te same wyniki, ale w pierwszym docelowa
baza danych jest okrelana jawnie, a w trzecim polegamy
na ustawieniu domylnej bazy danych, wykonanym w zapytaniu numer dwa:
WSKAZWKA
ROZDZIA 2
27
ROZDZIA 2
3. Dla kadej tabeli w pierwotnej bazie danych wykona polecenie SHOW TABLES i RENAME TABLE w celu
przeniesienia tabel do nowej bazy danych.
ROZDZIA 2
Tworzenie
baz danych
Tworzenie
tabel i zarzdzanie nimi
4. Nada uytkownikom pierwotnej bazy danych uprawnienia dostpu do nowej bazy danych.
Tworzenie tabel
i zarzdzanie nimi
Tabele to struktury nieco bardziej skomplikowane od
baz danych, nic dziwnego wic, e ich tworzenie jest
trudniejsze, tak samo jak zarzdzanie tabelami.
W najbliszych punktach skupimy si na absolutnych podstawach, niezbdnych do przetrwania w obcym rodowisku. Przy tworzeniu tabel mamy bowiem do dyspozycji
29
ROZDZIA 2
Wypisywanie wszystkich
albo wybranych tabel bazy danych
SHOW TABLES;
SHOW TABLES IN nazwa_bazy_danych;
SHOW_TABLES LIKE 'sowo%'
SHOW TABLES IN nazwa_bazy_danych LIKE 'sowo%'
Pierwsza wersja polecenia SHOW TABLES wypisuje wszystkie tabele zdefiniowane w domylnej bazie danych; posta druga wypisuje komplet tabel z bazy danych wskazanej
przez nazw. Trzecia i czwarta wersja tego samego polecenia wykorzystuj operator LIKE do filtrowania nazw
tabel.
WSKAZWKA
Podobnie jak w przypadku polecenia SHOW DATABASES,
operator LIKE suy do ograniczania wykazu tabel bazy danych wypisywanych poleceniem SHOW TABLES. Wicej
o operatorze LIKE dowiesz si z podrozdziau Filtrowanie listy baz danych.
Tworzenie tabel
ROZDZIA 2
31
ROZDZIA 2
WSKAZWKA
Przy zmienianiu nazw tabel naley pamita o obecnoci
uytkownikw i aplikacji, ktrzy bd oczekiwa obecnoci
tabel o znanych im nazwach i odwoywa si do nich przez
ich pierwotne nazwy. Moliwe w takim ukadzie problemy
zostay rozpoznane w podrozdziale Wyszukiwanie uytkownikw bazy danych bd tabeli rozdziau 6.
Usuwanie tabel
DROP TABLE nazwa_tabeli;
Kopiowanie tabel
CREATE TABLE nowa_tabela LIKE pierwotna_tabela;
INSERT nowa_tabela SELECT * FROM pierwotna_tabela;
WSKAZWKA
ROZDZIA 2
33
ROZDZIA 2
Dodawanie kolumn
ALTER TABLE nazwa_tabeli
ADD COLUMN [definicja_kolumny];
ALTER TABLE ksika
ADD COLUMN ISBN VARCHAR(10) NOT NULL;
Usuwanie kolumn
ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_kolumny;
Usuwanie kolumny z tabeli bazy danych to prosta operacja. Jednak jak zwykle w przypadku polece usuwajcych
co z bazy danych, trzeba pamita o zagroeniach: skoro
nie mona wycofa operacji usunicia, trzeba pamita
o uytkownikach i aplikacjach odwoujcych si do usuwanego elementu.
WSKAZWKA
Usunicie kolumny powoduje automatyczne usunicie wszelkich indeksw obejmujcych t kolumn.
ROZDZIA 2
35
ROZDZIA 2
Identyfikatory
Identyfikatory MySQL, w tym nazwy baz danych i tabel,
s zazwyczaj rozpatrywane z uwzgldnieniem wielkoci
poszczeglnych liter. Dlatego dla uproszczenia najlepiej
definiowa identyfikatory z uyciem samych maych liter.
Aby wymusi na wikszoci platform spjne zachowanie
MySQL pod tym wzgldem, naley ustawi zmienn konfiguracyjn lower_case_table_names na 1. W ten sposb
wszystkie identyfikatory, w ktrych wana jest wielko
liter, bd traktowane jak pisane maymi literami. Wicej
informacji o identyfikatorach mona znale w podrczniku MySQL pod adresem http://mysql.com/identifier case
sensitivity.
Tworzenie indeksw
i zarzdzanie nimi
Indeksy s czsto najwaniejszym czynnikiem okrelajcym szybko wybierania danych z duych tabel.
W tym podrozdziale zajmiemy si tworzeniem indeksw
i podstawowymi aspektami zarzdzania indeksami. Nie
bdziemy zajmowa si zagadnieniami takimi jak optymalny wybr kolumny dla indeksu czy sposobami uywania
indeksw. Zainteresowanych szczegami odsyamy do
rozdziau 4., Wydobywanie danych. Proste zapytania.
ROZDZIA 2
37
ROZDZIA 2
Zobacz rwnie
Usuwanie indeksu
DROP INDEX nazwa_indeksu ON nazwa_tabeli;
DROP INDEX autor ON ksika;
Skadnia usuwania indeksu jest bardzo prosta wystarczy poda nazw tabeli i nazw indeksu, ktry ma z niej
zosta usunity.
Pierwsze zapytanie prezentuje ogln posta zapytania
usuwajcego indeks; drugie to przykad usunicia indeksu
autor z tabeli ksika.
Zobacz rwnie
Zagadnienia opisywane w niniejszym rozdziale s szerzej
omawiane w dostpnej on-line dokumentacji MySQL, pod
nastpujcymi adresami:
n