mysql. opis języka scan.pdf

(11908 KB) Pobierz
IDZ DO
PRZYK£ADOW Y ROZDZIA£
MySQL. Opis jêzyka
SPIS TRECI
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 wydajnoci, szybkoci dzia³ania, stabilnoci 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¿liwoci
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 NOWOCIACH
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
744945367.016.png 744945367.017.png 744945367.018.png 744945367.019.png 744945367.001.png 744945367.002.png 744945367.003.png 744945367.004.png 744945367.005.png 744945367.006.png 744945367.007.png 744945367.008.png 744945367.009.png 744945367.010.png 744945367.011.png 744945367.012.png 744945367.013.png 744945367.014.png
 
Spis treci
Rozdział 1. Informacje ogólne..............................................................................9
1.1. Na temat tego podrcznika....................................................................................... 9
1.1.1. Zasady przyjte w tym podrczniku .......................................................... 10
1.2. Omówienie systemu zarzdzania 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 du0e 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: nastpna 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 wdro0enia nie planujemy.......................................... 44
1.7. ?ródła informacji o MySQL .................................................................................. 45
1.7.1. Listy dyskusyjne po,wicone 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
744945367.015.png
4
Spis treci
1.8.5. Rozbie0no,ci midzy 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 jzyka ..............................................................................77
2.1. Literały................................................................................................................... 77
2.1.1. ŁaEcuchy ................................................................................................... 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 u0ytkownika.............................................................. 85
2.4. Zmienne systemowe............................................................................................... 87
2.4.1. Strukturalne zmienne systemowe .............................................................. 89
2.5. Składnia komentarza.............................................................................................. 91
2.6. Traktowanie słów zastrze0onych 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 porzdki 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 łaEcucha 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 porzdku sortowania................................................... 108
3.4. Operacje, na które ma wpływ obsługa zestawów znaków.................................... 109
3.4.1. ŁaEcuchy 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 zarzdzania 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 odpowiadajce im w wersji 4.1 pary
składajce 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 treci
5
3.11.4. Zestawy znaków południowoeuropejskich i ,rodkowowschodnich......... 122
3.11.5. Zestawy znaków regionu bałtyckiego...................................................... 123
3.11.6. Zestawy znaków dla cyrylicy................................................................... 123
3.11.7. Azjatyckie zestawy znaków..................................................................... 124
Rozdział 4. Typy kolumn..................................................................................125
4.1. Przegld typów dla kolumny................................................................................ 126
4.1.1. Omówienie typów liczbowych ................................................................ 126
4.1.2. Przegld typów zwizanych z dat i czasem............................................ 129
4.1.3. Przegld typów łaEcuchowych ................................................................ 130
4.2. Typy liczbowe...................................................................................................... 132
4.3. Typy zwizane 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 zwizane z dat.............................................. 144
4.4. Typy łaEcuchowe................................................................................................. 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 pamici 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ó0niania wielko,ci liter..................................................... 163
5.2. Funkcje kontroli przepływu ................................................................................. 163
5.3. Funkcje łaEcuchowe............................................................................................. 166
5.3.1. Funkcje porównywania łaEcuchó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 szyfrujce................................................................................... 215
5.8.3. Funkcje informacyjne.............................................................................. 219
5.8.4. Funkcje ró0ne .......................................................................................... 223
5.9. Funkcje i modyfikatory do zastosowania z klauzulami GROUP BY................... 226
5.9.1. Funkcje GROUP BY (agregujce)........................................................... 226
5.9.2. Modyfikatory GROUP BY...................................................................... 229
5.9.3. GROUP BY z ukrytymi polami............................................................... 232
6
Spis treci
Rozdział 6. Składnia instrukcji SQL..................................................................235
6.1. Instrukcje operujce 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 podzapytaE................................................................................ 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 niemo0liwe do wycofania ....................................................... 306
6.4.3. Instrukcje wykonujce 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 zarzdzajce kontami u0ytkownikó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 sterujce serwerem głównym ......................................... 352
6.6.2. Instrukcje SQL sterujce serwerami podrzdnymi .................................. 354
Rozdział 7. Rozszerzenia przestrzenne w MySQL...............................................365
7.1. Wstp................................................................................................................... 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