MySQL_Opis_jezyka_msqloj.pdf

(484 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
MySQL. Opis jêzyka
Autor: Paul Dubois
T³umaczenie: Pawe³ Gonera, Anna Zawadzka
ISBN: 83-7361-688-8
Tytu³ orygina³u:
MySQL Language Reference
Format: B5, stron: 472
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
MySQL to najpopularniejsza na wiecie baza danych dostêpna na licencji open
source. Dziêki swojej wydajno ci, szybko ci dzia³ania, stabilno ci i rozbudowanym
mechanizmom zabezpieczeñ jest wykorzystywana niemal do wszystkich zadañ, do
jakich mo¿e byæ potrzebna baza danych. Stanowi zaplecze dla wielu aplikacji
korporacyjnych, witryn WWW i sklepów internetowych. Bogactwo funkcji i mo¿liwo ci
to ogromna zaleta rodowiska MySQL, jednak¿e zapamiêtanie sk³adni, parametrów
i sposobów stosowania wszystkich poleceñ i rozszerzeñ jest praktycznie niemo¿liwe.
Ka¿dy, kto chce biegle pos³ugiwaæ siê t¹ baz¹, powinien mieæ pod rêk¹ materia³y
opisuj¹ce stosowany w niej jêzyk SQL.
Ksi¹¿ka „MySQL. Opis jêzyka” to najlepsze ród³o takich informacji. Stworzona,
zredagowana i sprawdzona przez pracowników dzia³ów pomocy i produkcji firmy
MySQL AB publikacja zawiera wszystko, co mo¿e byæ potrzebne u¿ytkownikowi bazy
danych MySQL. Przedstawia zarówno zagadnienia podstawowe, takie jak: struktura
jêzyka, typy danych i zasady konstruowania zapytañ, jak i tematy zaawansowane:
transakcje, replikacjê oraz administrowanie baz¹. Szczegó³owo opisane s¹ równie¿
wszystkie zagadnienia zwi¹zane z zaimplementowanym w niej jêzykiem SQL.
• Podstawowe informacje o MySQL
• Jêzyk SQL — instrukcje, typy danych, funkcje i operatory
• Zapytania
• Definiowanie danych
• Obs³uga transakcji
• Zarz¹dzanie kontami u¿ytkowników
• Konserwacja tabel
• Replikacja baz danych
• Rozszerzenia MySQL dla systemów GIS
• Procedury sk³adowane
• Obs³uga b³êdów
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Rozdział 1. Informacje ogólne .............................................................................. 9
1.1. Na temat tego podręcznika....................................................................................... 9
1.1.1. Zasady przyjęte w tym podręczniku .......................................................... 10
1.2. Omówienie systemu zarządzania bazą danych MySQL......................................... 12
1.2.1. Historia MySQL ........................................................................................ 13
1.2.2. Główne cechy MySQL .............................................................................. 14
1.2.3. Stabilność MySQL .................................................................................... 17
1.2.4. Jak du e mogą być tabele MySQL ............................................................ 18
1.2.5. Zgodność z rokiem 2000 ........................................................................... 19
1.3. Omówienie MySQL AB ........................................................................................ 21
1.3.1. Model biznesowy i usługi MySQL AB...................................................... 22
1.3.2. Informacje o kontakcie .............................................................................. 25
1.4. Obsługa techniczna oraz wydawanie licencji MySQL ........................................... 26
1.4.1. Obsługa techniczna oferowana przez MySQL AB........................................ 26
1.4.2. Prawa autorskie i licencje .......................................................................... 27
1.4.3. Licencje MySQL ....................................................................................... 28
1.4.4. Logo i znaki towarowe MySQL ................................................................ 30
1.5. Plany rozwoju MySQL .......................................................................................... 32
1.5.1. MySQL 4.0 w skrócie................................................................................ 33
1.5.2. MySQL 4.1 w skrócie................................................................................ 35
1.5.3. MySQL 5.0: następna wersja rozwojowa .................................................. 37
1.6. MySQL i przyszłość (TODO) ................................................................................ 37
1.6.1. Nowe mechanizmy planowane dla wersji 4.1............................................ 38
1.6.2. Nowe funkcje planowane dla wersji 5.0 .................................................... 38
1.6.3. Nowe funkcje planowane dla 5.1............................................................... 39
1.6.4. Nowe funkcje planowane w bliskiej przyszłości ......................................... 40
1.6.5. Nowe funkcje planowane w niezbyt odległej przyszłości.......................... 43
1.6.6. Nowe funkcje, których wdro enia nie planujemy.......................................... 44
1.7. Źródła informacji o MySQL .................................................................................. 45
1.7.1. Listy dyskusyjne poświęcone MySQL ...................................................... 45
1.7.2. Wspomaganie środowiska MySQL na IRC (Internet Relay Chat)............. 54
1.8. Zgodność MySQL ze standardami ......................................................................... 55
1.8.1. Standardy spełniane przez MySQL............................................................ 56
1.8.2. Wybieranie trybów MySQL ...................................................................... 56
1.8.3. Uruchamianie MySQL w trybie ANSI ...................................................... 56
1.8.4. Rozszerzenia MySQL do standardu SQL .................................................. 57
4
Spis treści
1.8.5. Rozbie ności między MySQL a standardem SQL ........................................ 60
1.8.6. Jak MySQL radzi sobie z ograniczeniami ................................................. 67
1.8.7. Znane błędy i projektowe braki w MySQL................................................ 69
Rozdział 2. Struktura języka .............................................................................. 77
2.1. Literały................................................................................................................... 77
2.1.1. Łańcuchy ................................................................................................... 77
2.1.2. Liczby........................................................................................................ 80
2.1.3. Wartości szesnastkowe .............................................................................. 80
2.1.4. Wartości logiczne ...................................................................................... 81
2.1.5. Wartości NULL ......................................................................................... 81
2.2. Nazwy baz danych, tabel, indeksów, kolumn i aliasów ......................................... 81
2.2.1. Kwalifikatory identyfikatorów .................................................................. 83
2.2.2. Znaczenie wielkości liter w nazwach identyfikatorów .............................. 83
2.3. Zmienne definiowane przez u ytkownika.............................................................. 85
2.4. Zmienne systemowe............................................................................................... 87
2.4.1. Strukturalne zmienne systemowe .............................................................. 89
2.5. Składnia komentarza .............................................................................................. 91
2.6. Traktowanie słów zastrze onych w MySQL.......................................................... 92
Rozdział 3. Obsługa zestawów znaków ............................................................... 95
3.1. Ogólne informacje o zestawach znaków i sortowaniu ........................................... 95
3.2. Zestawy znaków i porządki sortowania w MySQL................................................ 96
3.3. Określanie domyślnego zestawu znaków i sortowania........................................... 98
3.3.1. Zestaw znaków i sortowanie dla serwera................................................... 98
3.3.2. Zestaw znaków i sortowanie dla bazy danych ........................................... 99
3.3.3. Zestaw znaków i sortowanie dla tabeli .................................................... 100
3.3.4. Zestaw znaków i sortowanie dla kolumny ............................................... 100
3.3.5. Przykłady przypisywania zestawu znaków i sortowania ......................... 101
3.3.6. Zestawy znaków i sortowanie dla połączenia .......................................... 102
3.3.7. Zestaw znaków i sortowanie dla łańcucha znaków.................................. 104
3.3.8. Wykorzystywanie COLLATE w instrukcjach SQL .................................... 105
3.3.9. Priorytet klauzuli COLLATE .................................................................. 106
3.3.10. Operator BINARY................................................................................... 106
3.3.11. Niektóre przypadki specjalne, w których trudno określić sortowanie...... 106
3.3.12. Sortowania muszą być odpowiednie dla danego zestawu znaków........... 107
3.3.13. Przykład wpływu porządku sortowania ................................................... 108
3.4. Operacje, na które ma wpływ obsługa zestawów znaków.................................... 109
3.4.1. Łańcuchy wyjściowe ............................................................................... 109
3.4.2. CONVERT()............................................................................................ 110
3.4.3. CAST() .................................................................................................... 110
3.4.4. Instrukcje SHOW .................................................................................... 111
3.5. Obsługa Unicode.................................................................................................. 112
3.6. UTF8 dla metadanych .......................................................................................... 113
3.7. Kompatybilność z innymi systemami zarządzania bazą danych .......................... 115
3.8. Nowy format pliku konfiguracji zestawu znaków................................................ 115
3.9. Narodowe zestawy znaków.................................................................................. 115
3.10. Aktualizacja zestawów znaków z MySQL 4.0..................................................... 116
3.10.1. Zestawy znaków w wersji 4.0 i odpowiadające im w wersji 4.1 pary
składające się z zestawu znaków i sortowania......................................... 117
3.10.2. Przekształcanie kolumn znakowych wersji 4.0 na format 4.1 ................. 118
3.11. Zestawy znaków i sortowania obsługiwane przez MySQL.................................. 118
3.11.1. Zestawy znaków standardu Unicode ....................................................... 119
3.11.2. Zestawy znaków zachodnioeuropejskich................................................. 120
3.11.3. Zestawy znaków dla Europy Centralnej .................................................. 121
Spis treści
3.11.4.
3.11.5.
3.11.6.
3.11.7.
5
Zestawy znaków południowoeuropejskich i środkowowschodnich......... 122
Zestawy znaków regionu bałtyckiego...................................................... 123
Zestawy znaków dla cyrylicy................................................................... 123
Azjatyckie zestawy znaków..................................................................... 124
Rozdział 4. Typy kolumn .................................................................................. 125
4.1. Przegląd typów dla kolumny................................................................................ 126
4.1.1. Omówienie typów liczbowych ................................................................ 126
4.1.2. Przegląd typów związanych z datą i czasem............................................ 129
4.1.3. Przegląd typów łańcuchowych ................................................................ 130
4.2. Typy liczbowe...................................................................................................... 132
4.3. Typy związane z datą i czasem ............................................................................ 135
4.3.1. Typy DATETIME, DATE i TIMESTAMP............................................. 137
4.3.2. Typ TIME................................................................................................ 142
4.3.3. Typ YEAR............................................................................................... 143
4.3.4. Problem roku 2000 a typy związane z datą.............................................. 144
4.4. Typy łańcuchowe ................................................................................................. 144
4.4.1. Typy CHAR i VARCHAR ...................................................................... 144
4.4.2. Typy BLOB i TEXT................................................................................ 146
4.4.3. Typ Enum ................................................................................................ 147
4.4.4. Typ SET .................................................................................................. 149
4.5. Rozmiar pamięci potrzebnej dla typów kolumn................................................... 151
4.6. Wybieranie odpowiedniego typu dla kolumny..................................................... 152
4.7. Wykorzystywanie typów kolumn z innych mechanizmów baz danych ............... 153
Rozdział 5. Funkcje i operatory ........................................................................ 155
5.1. Operatory ............................................................................................................. 156
5.1.1. Nawiasy ................................................................................................... 156
5.1.2. Operatory porównania ............................................................................. 156
5.1.3. Operatory logiczne .................................................................................. 161
5.1.4. Operatory rozró niania wielkości liter..................................................... 163
5.2. Funkcje kontroli przepływu ................................................................................. 163
5.3. Funkcje łańcuchowe............................................................................................. 166
5.3.1. Funkcje porównywania łańcuchów.......................................................... 176
5.4. Funkcje liczbowe ................................................................................................. 178
5.4.1. Operatory arytmetyczne........................................................................... 178
5.4.2. Funkcje matematyczne ............................................................................ 180
5.5. Funkcje daty i godziny ......................................................................................... 186
5.6. Funkcje obsługi wyszukiwania pełnotekstowego................................................. 202
5.6.1. Boolowskie wyszukiwania pełnotekstowe............................................... 205
5.6.2. Wyszukiwania pełnotekstowe z rozwijaniem zapytania .......................... 207
5.6.3. Ograniczenia dla wyszukiwania pełnotekstowego................................... 208
5.6.4. Modyfikowanie wyszukiwania pełnotekstowego MySQL ...................... 209
5.6.5. Lista rzeczy do zrobienia dla wyszukiwania pełnotekstowego ................ 211
5.7. Funkcje konwersji typów ..................................................................................... 211
5.8. Inne funkcje ......................................................................................................... 214
5.8.1. Funkcje bitowe ........................................................................................ 214
5.8.2. Funkcje szyfrujące................................................................................... 215
5.8.3. Funkcje informacyjne .............................................................................. 219
5.8.4. Funkcje ró ne .......................................................................................... 223
5.9. Funkcje i modyfikatory do zastosowania z klauzulami GROUP BY................... 226
5.9.1. Funkcje GROUP BY (agregujące)........................................................... 226
5.9.2. Modyfikatory GROUP BY ...................................................................... 229
5.9.3. GROUP BY z ukrytymi polami............................................................... 232
6
Spis treści
Rozdział 6. Składnia instrukcji SQL .................................................................. 235
6.1. Instrukcje operujące na danych ............................................................................ 235
6.1.1. Składnia instrukcji DELETE ................................................................... 235
6.1.2. Składnia instrukcji DO ............................................................................ 238
6.1.3. Składnia instrukcji HANDLER ............................................................... 238
6.1.4. Składnia instrukcji INSERT .................................................................... 240
6.1.5. Składnia instrukcji LOAD DATA INFILE.............................................. 246
6.1.6. Składnia instrukcji REPLACE................................................................. 255
6.1.7. Składnia instrukcji SELECT.................................................................... 256
6.1.8. Składnia podzapytań................................................................................ 265
6.1.9. Składnia instrukcji TRUNCATE ............................................................. 276
6.1.10. Składnia instrukcji UPDATE................................................................... 276
6.2. Instrukcje definiowania danych ........................................................................... 278
6.2.1. Składnia instrukcji ALTER DATABASE ............................................... 278
6.2.2. Składnia instrukcji ALTER TABLE........................................................ 279
6.2.3. Składnia instrukcji CREATE DATABASE............................................. 285
6.2.4. Składnia instrukcji CREATE INDEX ..................................................... 285
6.2.5. Składnia instrukcji CREATE TABLE ..................................................... 287
6.2.6. Składnia instrukcji DROP DATABASE.................................................. 301
6.2.7. Składnia instrukcji DROP INDEX .......................................................... 302
6.2.8. Składnia instrukcji DROP TABLE.......................................................... 302
6.2.9. Składnia instrukcji RENAME TABLE.................................................... 303
6.3. Instrukcje programu MySQL ............................................................................... 304
6.3.1. Składnia instrukcji DESCRIBE
(odczytywanie informacji na temat kolumn) ........................................... 304
6.3.2. Składnia instrukcji USE........................................................................... 304
6.4. Instrukcje obsługi transakcji i blokowania ........................................................... 305
6.4.1. Składnia instrukcji START TRANSACTION, COMMIT
oraz ROLLBACK.................................................................................... 305
6.4.2. Instrukcje niemo liwe do wycofania ....................................................... 306
6.4.3. Instrukcje wykonujące niejawne zatwierdzenie......................................... 306
6.4.4. Składnia instrukcji SAVEPOINT i ROLLBACK TO SAVEPOINT....... 307
6.4.5. Składnia instrukcji LOCK TABLES oraz UNLOCK TABLES .............. 307
6.4.6. Składnia instrukcji SET TRANSACTION .............................................. 310
6.5. Administracja bazą danych .................................................................................. 311
6.5.1. Instrukcje zarządzające kontami u ytkowników ....................................... 311
6.5.2. Instrukcje do konserwacji tabel ............................................................... 319
6.5.3. Składnia instrukcji SET i SHOW ............................................................ 326
6.5.4. Inne instrukcje administracyjne ............................................................... 347
6.6. Instrukcje replikacji.............................................................................................. 352
6.6.1. Instrukcje SQL sterujące serwerem głównym ......................................... 352
6.6.2. Instrukcje SQL sterujące serwerami podrzędnymi .................................. 354
Rozdział 7. Rozszerzenia przestrzenne w MySQL ............................................... 365
7.1. Wstęp ................................................................................................................... 365
7.2. Model geometryczny OpenGIS............................................................................ 366
7.2.1. Hierarchia klas geometrycznych.............................................................. 366
7.2.2. Klasa Geometry ....................................................................................... 368
7.2.3. Klasa Point .............................................................................................. 369
7.2.4. Klasa Curve ............................................................................................. 369
7.2.5. Klasa LineString ...................................................................................... 370
7.2.6. Klasa Surface........................................................................................... 370
7.2.7. Klasa Polygon.......................................................................................... 370
7.2.8. Klasa GeometryCollection....................................................................... 371
Zgłoś jeśli naruszono regulamin