SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TREœCI
                                         MySQL. Darmowa
                                         baza danych.
           KATALOG KSI¥¯EK               Æwiczenia praktyczne
                      KATALOG ONLINE     Autor: Marcin Lis
                                         ISBN: 83-246-0600-9
                                         Format: A5, stron: 184
       ZAMÓW DRUKOWANY KATALOG


              TWÓJ KOSZYK
                                                             Wykorzystaj w swoich projektach bazê MySQL
                    DODAJ DO KOSZYKA     MySQL to system zarz¹dzania bazami danych stworzony i rozwijany przez szwedzk¹
                                         firmê MySQL AB. Jest bardzo szybki i wydajny, dostêpny dla ró¿nych systemów
                                         operacyjnych i, co najwa¿niejsze, dystrybuowany na licencji GPL, wiêc korzystanie
         CENNIK I INFORMACJE             z niego nie wymaga wnoszenia ¿adnych op³at. MySQL wykorzystywany jest coraz
                                         powszechniej — nie tylko jako zaplecze bazodanowe witryn WWW, ale tak¿e jako
                   ZAMÓW INFORMACJE      magazyn danych dla z³o¿onych systemów informatycznych operuj¹cych na setkach
                     O NOWOœCIACH        tysiêcy rekordów.
                                         „MySQL. Darmowa baza danych. Æwiczenia praktyczne” to zbiór krótkich æwiczeñ,
                       ZAMÓW CENNIK      dziêki którym poznasz podstawy pracy z MySQL. Dowiesz siê, jak zainstalowaæ
                                         i skonfigurowaæ serwer MySQL w systemach Windows i Linux, nauczysz siê tworzyæ
                                         bazy danych i zak³adaæ konta u¿ytkowników. Poznasz typy danych stosowane
                 CZYTELNIA               w MySQL, zaprojektujesz i utworzysz tabele w bazie danych oraz wykorzystasz jêzyk
                                         SQL do wstawiania, wybierania i modyfikowania danych.
          FRAGMENTY KSI¥¯EK ONLINE
                                             • Instalacja MySQL
                                             • Uruchamianie i zatrzymywanie serwera bazy danych
                                             • Tworzenie kont u¿ytkowników i nadawanie uprawnieñ
                                             • Uruchamianie poleceñ zapisanych w plikach zewnêtrznych
                                             • Tworzenie struktury bazy danych
                                             • Wprowadzanie danych do tabel
                                             • Pobieranie danych
                                             • Z³o¿one zapytania



Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Wstęp                                                   5
Rozdział 1. Instalacja i konfiguracja                                9
            Instalacja w systemie Linux                              9
            Instalacja w systemie Windows                           17
            Wstępna konfiguracja w systemie Windows                 21
            Uruchamianie i zatrzymywanie serwera w systemie Linux   26
            Wstępna konfiguracja w systemie Linux                   31
            Uruchamianie i zatrzymywanie serwera
              w systemie Windows                                    32

Rozdział 2. Zarządzanie serwerem                                    37
            Łączenie z serwerem                                     37
            Tworzenie i usuwanie baz danych                         39
            Wybór bazy danych                                       40
            Obsługa kont użytkowników                               41
            Systemy kodowania znaków                                54
            Wczytywanie poleceń z plików zewnętrznych               60
            Lista dostępnych baz danych                             62

Rozdział 3. Koncepcja relacyjnych baz danych                        65
            Tabele                                                  65
            Klucze                                                  66
            Relacje                                                 68
            Podstawowe zasady projektowania tabel                   73
4          MySQL. Darmowa baza danych • Ćwiczenia praktyczne

Rozdział 4. Tworzenie struktury bazy danych                    81
            Ogólna postać instrukcji CREATE                     81
            Typy danych                                         85
            Atrybuty kolumn                                     98
            Kodowanie znaków dla tabel i kolumn                104
            Pobieranie struktury tabel                         106
            Modyfikacja tabel                                  108
            Usuwanie tabel                                     115
            Kilka tabel w praktyce                             116

Rozdział 5. Elementy SQL (DML)                                 125
            Wprowadzanie danych                                125
            Pobieranie danych                                  134
            Modyfikacja danych                                 150
            Usuwanie danych                                    153

Rozdział 6. Złożone instrukcje SQL                             157
            Pobieranie danych z kilku tabel                    157
            Typy złączeń                                       160
            Grupowanie danych                                  165
Dane w bazie przechowywane są w tabelach. Pojęcie tabeli
         poznaliśmy w rozdziale 3., „Koncepcja relacyjnych baz da-
         nych”. Czas więc dowiedzieć się, w jaki sposób można tworzyć
tabele. Służy do tego instrukcja CREATE TABLE o schematycznej postaci:
    CREATE TABLE nazwa_tabeli
    (
      nazwa_kolumny_1 typ_kolumny_1 [atrybuty],
      nazwa_kolumny_2 typ_kolumny_2 [atrybuty],
      ...
      nazwa_kolumny_n typ_kolumny_n [atrybuty],
    )

Nazwa tabeli może zawierać dowolne znaki, jakie może zawierać na-
zwa pliku w systemie operacyjnym, na którym działa serwer MySQL,
z wyjątkiem /,  i . Maksymalna długość nazwy to 64 bajty. Począw-
szy od wersji 3.23.6, nazwa tabeli może być nazwą słowa zastrze-
żonego dla konstrukcji języka (np. SELECT, CREATE), w takim wy-
padku musi być jednak zawsze ujęta w znaki ‘, np. ‘SELECT‘. Nie
82        MySQL. Darmowa baza danych • Ćwiczenia praktyczne

może również zawierać znaków o kodach 0 i 255 w standardzie ASCII,
a na jej końcu nie powinny się znajdować tzw. białe znaki (czyli
spacje, tabulatory itp.).
Nazwa kolumny może zawierać dowolne znaki, jednak jej długość
jest również ograniczona do 64 bajtów i także nie powinna być zakoń-
czona białym znakiem. Typ kolumny określa rodzaj danych, które
dana kolumna będzie mogła przechowywać, np. łańcuch znaków, licz-
by, itp. Występujące w MySQL typy danych zostaną omówione w na-
stępnej sekcji.
W nazwach tabel (oraz baz danych) mogą występować zarówno małe,
jak i duże litery, jednak to, czy będą rozróżniane, zależy od systemu
plików systemu operacyjnego, na którym został zainstalowany MySQL.
I tak w większości odmian Uniksa wielkie i małe litery są rozróżnia-
ne, natomiast w systemach Windows — nie. W systemach Mac OS
rozróżnianie wielkości liter zależy od tego, czy wykorzystywany jest
system plików HFS (nie są rozróżniane), czy USF (są rozróżniane).
W związku z tym, o ile to możliwe, najwygodniej przyjąć po prostu
zasadę, że nazwy baz i tabel zawsze są pisane małymi literami (najle-
piej alfabetu łacińskiego).
Nazwy kolumn również mogą zawierać małe i duże litery, jednak
w tym wypadku nie są one rozróżniane, niezależnie od wersji systemu
operacyjnego czy systemu plików. Począwszy od wersji 4.1, wszystkie
identyfikatory i nazwy odnoszące się do definicji zawartości tabel są
zapisywane w standardzie Unicode. Należy również pamiętać, że jeśli
identyfikator (np. nazwa kolumny) zawiera znaki spoza standardowe-
go zestawu ASCII (np. polskie litery), należy go ująć w lewe apostrofy
(podobnie jak w sytuacji, kiedy identyfikator jest nazwą zastrzeżoną
dla konstrukcji języka SQL).
Dla treningu spróbujmy teraz utworzyć prostą tabelę klient, która bę-
dzie zawierała dwie kolumny. Pierwsza — o nazwie Indeks — będzie
przechowywała liczby całkowite (typ danych INTEGER), druga — o na-
zwie Nazwa — będzie przechowywała ciągi maksymalnie 20 znaków
(typ VARCHAR(20)).
Rozdział 4. • Tworzenie struktury bazy danych   83
Ć W I C Z E N I E

     4.1            Utworzenie prostej tabeli

    Utwórz tabelę o nazwie klient zawierającą dwie kolumny — pierwszą
    o nazwie Indeks typu INTEGER, drugą o nazwie Nazwa typu VARCHAR(20).
    Utworzenie takiej tabeli osiągniemy po wydaniu polecenia w postaci:
            CREATE TABLE klient
            (
              Indeks INTEGER,
              Nazwa VARCHAR(20)
            );

    Oczywiście najpierw należy uruchomić klienta mysql, zalogować się
    do serwera i wybrać bazę danych (np. test), tak jak było to opisywane
    we wcześniejszych rozdziałach. Po wykonaniu opisanych czynności
    w oknie konsoli zobaczymy widok zaprezentowany na rysunku 4.1.

       Rysunek 4.1.
       Zalogowanie
       do serwera
       i utworzenie tabeli
       klient w bazie test




    Co się jednak stanie, jeśli spróbujemy utworzyć tabelę o nazwie, która
    już istnieje w bazie? W takiej sytuacji zostanie zgłoszony błąd widocz-
    ny na rysunku 4.2. Jest to całkiem zrozumiałe zachowanie systemu.
    Czasem jednak chcielibyśmy utworzyć tabelę o zadanej nazwie tylko
    wtedy, gdy nie istnieje ona w bazie, a gdyby istniała — nie podej-
    mować żadnego działania. W takiej sytuacji powinniśmy skorzystać
    z dodatkowej konstrukcji II NOT EXISTS w ogólnej postaci:
            CREATE TABLE IF NOT EXISTS nazwa_tabeli
            (
              definicje kolumn
            )

    którą możemy przetłumaczyć jako: utwórz tabelę nazwa_tabeli, o ile
    nie istnieje ona jeszcze w bazie.
84                MySQL. Darmowa baza danych • Ćwiczenia praktyczne

       Rysunek 4.2.
       Próba utworzenia
       już istniejącej
       tabeli

Ć W I C Z E N I E

     4.2            Utworzenie tabeli, o ile nie istnieje ona już w bazie

    Napisz instrukcję tworzącą tabelę klient (taką jak w ćwiczeniu 4.1),
    która nie spowoduje wystąpienia błędu w sytuacji, jeśli tabela o takiej
    nazwie będzie już istniała w bazie.
            CREATE TABLE IF NOT EXISTS klient
            (
              Indeks INTEGER,
              Nazwa VARCHAR(20)
            );



    Tworzona tabela może być również tymczasową, czyli taką, która zo-
    stanie automatycznie usunięta po zakończeniu połączenia. Co wię-
    cej, taka tabela jest powiązana wyłącznie z połączeniem, w którym
    została utworzona, tak więc dwóch użytkowników może w jednym
    czasie w jednej bazie utworzyć różne tabele o takiej samej nazwie.
    Tymczasowość tabeli zapewnia słowo TEMPORARY umieszczone za CREATE,
    czyli instrukcja w ogólnej postaci:
            CREATE TEMPORARY TABLE nazwa_tabeli
            (
              definicje kolumn
            )

Ć W I C Z E N I E

     4.3            Tabela tymczasowa

    Utwórz tymczasową tabelę o dwóch dowolnych kolumnach.
            CREATE TEMPORARY TABLE test
            (
              id INTEGER,
              wartosc INTEGER
            );
Rozdział 4. • Tworzenie struktury bazy danych   85

    Istnieje także możliwość utworzenia nowej tabeli na bazie już istnieją-
    cej. Stosujemy w tym celu instrukcję CREATE w postaci:
            CREATE TABLE nowa_tabela LIKE istniejąca_tabela;

    która oznacza: utwórz tabelę o nazwie nowa_tabela o strukturze takiej
    jak istniejąca_tabela.

Ć W I C Z E N I E

     4.4            Tworzenie jednej tabeli na bazie innej

    Utwórz tabelę klient2 o strukturze pobranej z tabeli klient.
            CREATE TABLE klient2 LIKE klient;




    Każda kolumna tabeli w bazie danych ma przypisany typ, który okre-
    śla rodzaj danych, jakie mogą być w niej przechowywane. Wystę-
    pujące w MySQL typy danych można podzielić na trzy grupy:
      q liczbowe,
      q daty i czasu,
      q łańcuchowe.



    Typy liczbowe
    Typy liczbowe możemy podzielić na dwa rodzaje — typy całkowito-
    liczbowe oraz typy zmiennoprzecinkowe. Zgodnie z nazwami służą
    one do reprezentacji wartości całkowitych oraz zmiennoprzecinko-
    wych (zmiennopozycyjnych, rzeczywistych). Typy całkowitoliczbowe
    zostały przedstawione w tabeli 4.1. Jeden z wymienionych w niej ty-
    pów — INTEGER — wykorzystywaliśmy już przy tworzeniu przykłado-
    wej tabeli klient. W każdym z wymienionych przypadków z wyjątkiem
    BOOL i BOOLEAN można zastosować dodatkowy modyfikator określają-
    cy maksymalną szerokość wyświetlania w sytuacji, kiedy liczba zna-
    ków wartości jest mniejsza niż maksymalna. Definicja typu ma wtedy
    postać:
            nazwa_typu(ile)
86          MySQL. Darmowa baza danych • Ćwiczenia praktyczne

Dozwolone są także modyfikatory UNSIGNED oraz ZEROIILL. Pierwszy
z nich oznacza, że wartość ma być traktowana jako liczba bez znaku
(czyli niedopuszczalne są wartości ujemne). Drugi powoduje, że je-
żeli liczba cyfr w danej wartości jest mniejsza od maksymalnej liczby
wyświetlanych znaków, wolne miejsca zostaną dopełnione zerami.
Zastosowanie atrybutu ZEROIILL powoduje, że automatycznie zostanie
również zastosowany atrybut UNSIGNED.
Przykładowo, jeżeli zostanie zastosowany typ TINYINT UNSIGNED, w po-
szczególnych wierszach kolumny będzie można zapisywać wartości od
0 do 255. Jeżeli natomiast zostanie zastosowany typ TINYINT(4) ZEROIILL,
w poszczególnych wierszach kolumny również będzie można zapi-
sywać jedynie wartości od 0 do 255, ale będą one wyświetlane zawsze
w postaci czteroznakowej, w której wolne miejsca z prawej strony zo-
stały wypełnione zerami. Oznacza to, że wartość 2 będzie wyświetlana
jako 0002, wartość 64 jako 0064, a 128 jako 0128.

 Tabela 4.1. Typy całkowitoliczbowe

                                      Liczba
     Typ      Zakres wartości         zajmowanych Opis
                                      bajtów
     BIT      -                       zmienna     W wersjach od 5.0.3
                                                  reprezentuje pola bitowe
                                                  od 1 do 64 bitów,
                                                  w wersjach wcześniejszych
                                                  synonim dla TINYINT(1).
     BOOL     -                       1           Synonim dla TINYINT(1).
                                                  Wartość 0 jest
                                                  interpretowana jako false,
                                                  wartość różna od 0 jako
                                                  true. W przyszłości
                                                  ma zostać wprowadzona
                                                  pełna obsługa typu
                                                  BOOLEAN.
Rozdział 4. • Tworzenie struktury bazy danych              87

Tabela 4.1. Typy całkowitoliczbowe (ciąg dalszy)

                                       Liczba
 Typ         Zakres wartości           zajmowanych Opis
                                       bajtów
 BOOLEAN     -                         1             Synonim dla TINYINT(1).
                                                     Wartość 0 jest
                                                     interpretowana jako false,
                                                     wartość różna od 0 jako
                                                     true. Wprowadzony
                                                     w wersji 4.1.0.
                                                     W przyszłości ma zostać
                                                     wprowadzona pełna
                                                     obsługa typu BOOLEAN.
 TINYINT     Od –128 do 127            1             Reprezentacja bardzo
             dla liczb ze znakiem                    małych wartości
             i od 0 do 255 dla liczb                 całkowitoliczbowych.
             bez znaku.
 SMALLINT    Od –327–8 (–215)          2             Reprezentacja
             do 327–7 (215–1)                        małych wartości
             dla liczb ze znakiem                    całkowitoliczbowych.
             i od 0 do –5535 (216–1)
             dla liczb bez znaku.
 MEDIUMINT   Od –8388–08 (–223)        3             Reprezentacja
             do 8388–07 (223–1)                      średnich wartości
             dla liczb ze znakiem                    całkowitoliczbowych.
             i od 0 do 1–777215
             (224–1) dla liczb
             bez znaku.
 INT         Od –2147483–48 (–231)     4             Reprezentacja
             do 2147483–47 (231–1)                   zwykłych wartości
             dla liczb ze znakiem                    całkowitoliczbowych.
             i od 0 do 42949–7295
             (232–1) dla liczb
             bez znaku.
88               MySQL. Darmowa baza danych • Ćwiczenia praktyczne

       Tabela 4.1. Typy całkowitoliczbowe (ciąg dalszy)

                                                      Liczba
         Typ           Zakres wartości                zajmowanych Opis
                                                      bajtów
         INTEGER       Od –2147483–48 (–231)          4           Synonim dla INT.
                       do 2147483–47 (231–1)
                       dla liczb ze znakiem
                       i od 0 do 42949–7295 (232–
                       1) dla liczb bez znaku.
         BIGINT        Od –922337203–854775808        8           Reprezentacja
                       (–263) do 922337203–854                    dużych wartości
                       775807 (263 –1) dla liczb                  całkowitoliczbowych.
                       ze znakiem i od 0
                       do 1844–744073709551–15
                       (264–1) dla liczb bez znaku.

Ć W I C Z E N I E

     4.5            Tabela z kolumnami typu INTEGER

    Utwórz tabelę, która będzie zawierała dwie kolumny typu INTEGER,
    pierwszą o nazwie id i drugą o nazwie znacznik.
            CREATE TABLE test
            (
              id INTEGER,
              znacznik INTEGER
            );

Ć W I C Z E N I E

     4.6            Tabela z kolumnami typu INTEGER
                    z dodatkowymi atrybutami
    Utwórz tabelę, która będzie zawierała kolumnę typu INTEGER przecho-
    wującą wyłącznie dodatnie wartości z przedziału 0 – 65535, w której
    liczba wyświetlanych znaków będzie zawsze równa 5, a wolne miej-
    sca wartości krótszych niż 5 znaków będą wypełniane zerami.
            CREATE TABLE test
            (
              id SMALLINT(5) ZEROFILL
            );
Rozdział 4. • Tworzenie struktury bazy danych               89

Typy zmiennoprzecinkowe zostały przedstawione w tabeli 4.2. Po-
dobnie jak w przypadku typów całkowitoliczbowych, istnieje możli-
wość zastosowania modyfikatora określającego szerokość wyświetla-
nia. W przypadku typów ILOAT, DOUBLE i DOUBLE PRECISION występuje
on zawsze jednocześnie z modyfikatorem określającym liczbę miejsc
po przecinku, ogólnie:
    nazwa_typu(mod1, mod2)

gdzie mod1 określa szerokość wyświetlania (całkowitą liczbę cyfr zna-
czących), a mod2 liczbę uwzględnianych miejsc po przecinku.

 Tabela 4.2. Typy zmiennoprzecinkowe

                                     Liczba
  Typ          Zakres wartości       zajmowanych   Opis
                                     bajtów
  FLOAT        zmienny               4 lub 8       Parametr precyzja określa
  (precyzja)                                       precyzję, z jaką będzie
                                                   reprezentowana dana
                                                   wartość rzeczywista.
                                                   W przypadku wartości
                                                   od 0 do 24 mamy
                                                   do czynienia z liczbami
                                                   o pojedynczej precyzji,
                                                   a w przypadku wartość
                                                   od 25 do –3 z liczbami
                                                   o podwójnej precyzji,
                                                   co odpowiada opisanym
                                                   niżej typom FLOAT i DOUBLE.
  FLOAT        od –3.4028234––E+38   4             Liczby
               do 3.4028234––E+38                  zmiennoprzecinkowe
                                                   pojedynczej precyzji.
  DOUBLE       od –1.797–931348      8             Liczby
               –23157E+308                         zmiennoprzecinkowe
               do 1.797–931348                     podwójnej precyzji.
               –23157E+308
  DOUBLE       jw.                   jw.           Synonim dla DOUBLE.
  PRECISION
  REAL         jw.                   jw.           Synonim dla DOUBLE.
90             MySQL. Darmowa baza danych • Ćwiczenia praktyczne

 Tabela 4.2. Typy zmiennoprzecinkowe (ciąg dalszy)

                                     Liczba
     Typ         Zakres wartości     zajmowanych    Opis
                                     bajtów
     DECIMAL     zmienny             zmienna        Wartości z separatorem
                                                    dziesiętnym. W wersjach
                                                    przed 5.0.3
                                                    przechowywana jako
                                                    łańcuch znaków.
                                                    Całkowita maksymalna
                                                    liczba znaków i liczba
                                                    znaków po separatorze
                                                    dziesiętnym może być
                                                    określana przez dodatkowe
                                                    parametry.
     DEC         jw.                 jw.            Synonim dla DECIMAL.
     NUMERIC     jw.                 jw.            Synonim dla DECIMAL.
     FIXED       jw.                 jw.            Synonim dla DECIMAL,
                                                    dodany w wersji 4.1.0.

W przypadku typu DECIMAL i jego synonimów możliwe jest zastoso-
wanie modyfikatora określającego szerokość wyświetlania bez mody-
fikatora określającego liczbę miejsc po przecinku, czyli prawidłowa
jest zarówno konstrukcja:
       DECIMAL(mod1)

jak i:
       DECIMAL(mod1, mod2)

W stosunku do typów zmiennoprzecinkowych można również stoso-
wać modyfikatory ZEROIILL oraz UNSIGNED. Znaczenie pierwszego z nich
jest takie samo jak w przypadku typów całkowitoliczbowych. Zasto-
sowanie modyfikatora UNSIGNED powoduje natomiast, że dozwolone
będą jedynie wartości nieujemne, nie zmieni się natomiast zakres
wartości możliwych do reprezentowania.

Contenu connexe

En vedette

Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...twitch.tv/katmpb
 
Refaktoryzacja kodu w języku PHP
Refaktoryzacja kodu w języku PHPRefaktoryzacja kodu w języku PHP
Refaktoryzacja kodu w języku PHPDevCastZone
 
Matryca śledzenia - Traceability Matrix
Matryca śledzenia - Traceability MatrixMatryca śledzenia - Traceability Matrix
Matryca śledzenia - Traceability MatrixRadoslaw Smilgin
 
Grywalizacja (gamification) w testowaniu
Grywalizacja (gamification) w testowaniuGrywalizacja (gamification) w testowaniu
Grywalizacja (gamification) w testowaniuRadoslaw Smilgin
 
JavaStart - kurs Java Podstawy
JavaStart - kurs Java PodstawyJavaStart - kurs Java Podstawy
JavaStart - kurs Java PodstawyJavaStart
 

En vedette (8)

Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
 
Przetestuj swoje CV
Przetestuj swoje CVPrzetestuj swoje CV
Przetestuj swoje CV
 
Refaktoryzacja kodu w języku PHP
Refaktoryzacja kodu w języku PHPRefaktoryzacja kodu w języku PHP
Refaktoryzacja kodu w języku PHP
 
Matryca śledzenia - Traceability Matrix
Matryca śledzenia - Traceability MatrixMatryca śledzenia - Traceability Matrix
Matryca śledzenia - Traceability Matrix
 
Grywalizacja (gamification) w testowaniu
Grywalizacja (gamification) w testowaniuGrywalizacja (gamification) w testowaniu
Grywalizacja (gamification) w testowaniu
 
JavaStart - kurs Java Podstawy
JavaStart - kurs Java PodstawyJavaStart - kurs Java Podstawy
JavaStart - kurs Java Podstawy
 
Tester.pl - Numer 4
Tester.pl - Numer 4Tester.pl - Numer 4
Tester.pl - Numer 4
 
ISTQB REX BLACK book
ISTQB REX BLACK bookISTQB REX BLACK book
ISTQB REX BLACK book
 

Plus de Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 

Plus de Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

MySQL. Darmowa baza danych. Ćwiczenia praktyczne

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREœCI MySQL. Darmowa baza danych. KATALOG KSI¥¯EK Æwiczenia praktyczne KATALOG ONLINE Autor: Marcin Lis ISBN: 83-246-0600-9 Format: A5, stron: 184 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK Wykorzystaj w swoich projektach bazê MySQL DODAJ DO KOSZYKA MySQL to system zarz¹dzania bazami danych stworzony i rozwijany przez szwedzk¹ firmê MySQL AB. Jest bardzo szybki i wydajny, dostêpny dla ró¿nych systemów operacyjnych i, co najwa¿niejsze, dystrybuowany na licencji GPL, wiêc korzystanie CENNIK I INFORMACJE z niego nie wymaga wnoszenia ¿adnych op³at. MySQL wykorzystywany jest coraz powszechniej — nie tylko jako zaplecze bazodanowe witryn WWW, ale tak¿e jako ZAMÓW INFORMACJE magazyn danych dla z³o¿onych systemów informatycznych operuj¹cych na setkach O NOWOœCIACH tysiêcy rekordów. „MySQL. Darmowa baza danych. Æwiczenia praktyczne” to zbiór krótkich æwiczeñ, ZAMÓW CENNIK dziêki którym poznasz podstawy pracy z MySQL. Dowiesz siê, jak zainstalowaæ i skonfigurowaæ serwer MySQL w systemach Windows i Linux, nauczysz siê tworzyæ bazy danych i zak³adaæ konta u¿ytkowników. Poznasz typy danych stosowane CZYTELNIA w MySQL, zaprojektujesz i utworzysz tabele w bazie danych oraz wykorzystasz jêzyk SQL do wstawiania, wybierania i modyfikowania danych. FRAGMENTY KSI¥¯EK ONLINE • Instalacja MySQL • Uruchamianie i zatrzymywanie serwera bazy danych • Tworzenie kont u¿ytkowników i nadawanie uprawnieñ • Uruchamianie poleceñ zapisanych w plikach zewnêtrznych • Tworzenie struktury bazy danych • Wprowadzanie danych do tabel • Pobieranie danych • Z³o¿one zapytania Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl
  • 2. Wstęp 5 Rozdział 1. Instalacja i konfiguracja 9 Instalacja w systemie Linux 9 Instalacja w systemie Windows 17 Wstępna konfiguracja w systemie Windows 21 Uruchamianie i zatrzymywanie serwera w systemie Linux 26 Wstępna konfiguracja w systemie Linux 31 Uruchamianie i zatrzymywanie serwera w systemie Windows 32 Rozdział 2. Zarządzanie serwerem 37 Łączenie z serwerem 37 Tworzenie i usuwanie baz danych 39 Wybór bazy danych 40 Obsługa kont użytkowników 41 Systemy kodowania znaków 54 Wczytywanie poleceń z plików zewnętrznych 60 Lista dostępnych baz danych 62 Rozdział 3. Koncepcja relacyjnych baz danych 65 Tabele 65 Klucze 66 Relacje 68 Podstawowe zasady projektowania tabel 73
  • 3. 4 MySQL. Darmowa baza danych • Ćwiczenia praktyczne Rozdział 4. Tworzenie struktury bazy danych 81 Ogólna postać instrukcji CREATE 81 Typy danych 85 Atrybuty kolumn 98 Kodowanie znaków dla tabel i kolumn 104 Pobieranie struktury tabel 106 Modyfikacja tabel 108 Usuwanie tabel 115 Kilka tabel w praktyce 116 Rozdział 5. Elementy SQL (DML) 125 Wprowadzanie danych 125 Pobieranie danych 134 Modyfikacja danych 150 Usuwanie danych 153 Rozdział 6. Złożone instrukcje SQL 157 Pobieranie danych z kilku tabel 157 Typy złączeń 160 Grupowanie danych 165
  • 4. Dane w bazie przechowywane są w tabelach. Pojęcie tabeli poznaliśmy w rozdziale 3., „Koncepcja relacyjnych baz da- nych”. Czas więc dowiedzieć się, w jaki sposób można tworzyć tabele. Służy do tego instrukcja CREATE TABLE o schematycznej postaci: CREATE TABLE nazwa_tabeli ( nazwa_kolumny_1 typ_kolumny_1 [atrybuty], nazwa_kolumny_2 typ_kolumny_2 [atrybuty], ... nazwa_kolumny_n typ_kolumny_n [atrybuty], ) Nazwa tabeli może zawierać dowolne znaki, jakie może zawierać na- zwa pliku w systemie operacyjnym, na którym działa serwer MySQL, z wyjątkiem /, i . Maksymalna długość nazwy to 64 bajty. Począw- szy od wersji 3.23.6, nazwa tabeli może być nazwą słowa zastrze- żonego dla konstrukcji języka (np. SELECT, CREATE), w takim wy- padku musi być jednak zawsze ujęta w znaki ‘, np. ‘SELECT‘. Nie
  • 5. 82 MySQL. Darmowa baza danych • Ćwiczenia praktyczne może również zawierać znaków o kodach 0 i 255 w standardzie ASCII, a na jej końcu nie powinny się znajdować tzw. białe znaki (czyli spacje, tabulatory itp.). Nazwa kolumny może zawierać dowolne znaki, jednak jej długość jest również ograniczona do 64 bajtów i także nie powinna być zakoń- czona białym znakiem. Typ kolumny określa rodzaj danych, które dana kolumna będzie mogła przechowywać, np. łańcuch znaków, licz- by, itp. Występujące w MySQL typy danych zostaną omówione w na- stępnej sekcji. W nazwach tabel (oraz baz danych) mogą występować zarówno małe, jak i duże litery, jednak to, czy będą rozróżniane, zależy od systemu plików systemu operacyjnego, na którym został zainstalowany MySQL. I tak w większości odmian Uniksa wielkie i małe litery są rozróżnia- ne, natomiast w systemach Windows — nie. W systemach Mac OS rozróżnianie wielkości liter zależy od tego, czy wykorzystywany jest system plików HFS (nie są rozróżniane), czy USF (są rozróżniane). W związku z tym, o ile to możliwe, najwygodniej przyjąć po prostu zasadę, że nazwy baz i tabel zawsze są pisane małymi literami (najle- piej alfabetu łacińskiego). Nazwy kolumn również mogą zawierać małe i duże litery, jednak w tym wypadku nie są one rozróżniane, niezależnie od wersji systemu operacyjnego czy systemu plików. Począwszy od wersji 4.1, wszystkie identyfikatory i nazwy odnoszące się do definicji zawartości tabel są zapisywane w standardzie Unicode. Należy również pamiętać, że jeśli identyfikator (np. nazwa kolumny) zawiera znaki spoza standardowe- go zestawu ASCII (np. polskie litery), należy go ująć w lewe apostrofy (podobnie jak w sytuacji, kiedy identyfikator jest nazwą zastrzeżoną dla konstrukcji języka SQL). Dla treningu spróbujmy teraz utworzyć prostą tabelę klient, która bę- dzie zawierała dwie kolumny. Pierwsza — o nazwie Indeks — będzie przechowywała liczby całkowite (typ danych INTEGER), druga — o na- zwie Nazwa — będzie przechowywała ciągi maksymalnie 20 znaków (typ VARCHAR(20)).
  • 6. Rozdział 4. • Tworzenie struktury bazy danych 83 Ć W I C Z E N I E 4.1 Utworzenie prostej tabeli Utwórz tabelę o nazwie klient zawierającą dwie kolumny — pierwszą o nazwie Indeks typu INTEGER, drugą o nazwie Nazwa typu VARCHAR(20). Utworzenie takiej tabeli osiągniemy po wydaniu polecenia w postaci: CREATE TABLE klient ( Indeks INTEGER, Nazwa VARCHAR(20) ); Oczywiście najpierw należy uruchomić klienta mysql, zalogować się do serwera i wybrać bazę danych (np. test), tak jak było to opisywane we wcześniejszych rozdziałach. Po wykonaniu opisanych czynności w oknie konsoli zobaczymy widok zaprezentowany na rysunku 4.1. Rysunek 4.1. Zalogowanie do serwera i utworzenie tabeli klient w bazie test Co się jednak stanie, jeśli spróbujemy utworzyć tabelę o nazwie, która już istnieje w bazie? W takiej sytuacji zostanie zgłoszony błąd widocz- ny na rysunku 4.2. Jest to całkiem zrozumiałe zachowanie systemu. Czasem jednak chcielibyśmy utworzyć tabelę o zadanej nazwie tylko wtedy, gdy nie istnieje ona w bazie, a gdyby istniała — nie podej- mować żadnego działania. W takiej sytuacji powinniśmy skorzystać z dodatkowej konstrukcji II NOT EXISTS w ogólnej postaci: CREATE TABLE IF NOT EXISTS nazwa_tabeli ( definicje kolumn ) którą możemy przetłumaczyć jako: utwórz tabelę nazwa_tabeli, o ile nie istnieje ona jeszcze w bazie.
  • 7. 84 MySQL. Darmowa baza danych • Ćwiczenia praktyczne Rysunek 4.2. Próba utworzenia już istniejącej tabeli Ć W I C Z E N I E 4.2 Utworzenie tabeli, o ile nie istnieje ona już w bazie Napisz instrukcję tworzącą tabelę klient (taką jak w ćwiczeniu 4.1), która nie spowoduje wystąpienia błędu w sytuacji, jeśli tabela o takiej nazwie będzie już istniała w bazie. CREATE TABLE IF NOT EXISTS klient ( Indeks INTEGER, Nazwa VARCHAR(20) ); Tworzona tabela może być również tymczasową, czyli taką, która zo- stanie automatycznie usunięta po zakończeniu połączenia. Co wię- cej, taka tabela jest powiązana wyłącznie z połączeniem, w którym została utworzona, tak więc dwóch użytkowników może w jednym czasie w jednej bazie utworzyć różne tabele o takiej samej nazwie. Tymczasowość tabeli zapewnia słowo TEMPORARY umieszczone za CREATE, czyli instrukcja w ogólnej postaci: CREATE TEMPORARY TABLE nazwa_tabeli ( definicje kolumn ) Ć W I C Z E N I E 4.3 Tabela tymczasowa Utwórz tymczasową tabelę o dwóch dowolnych kolumnach. CREATE TEMPORARY TABLE test ( id INTEGER, wartosc INTEGER );
  • 8. Rozdział 4. • Tworzenie struktury bazy danych 85 Istnieje także możliwość utworzenia nowej tabeli na bazie już istnieją- cej. Stosujemy w tym celu instrukcję CREATE w postaci: CREATE TABLE nowa_tabela LIKE istniejąca_tabela; która oznacza: utwórz tabelę o nazwie nowa_tabela o strukturze takiej jak istniejąca_tabela. Ć W I C Z E N I E 4.4 Tworzenie jednej tabeli na bazie innej Utwórz tabelę klient2 o strukturze pobranej z tabeli klient. CREATE TABLE klient2 LIKE klient; Każda kolumna tabeli w bazie danych ma przypisany typ, który okre- śla rodzaj danych, jakie mogą być w niej przechowywane. Wystę- pujące w MySQL typy danych można podzielić na trzy grupy: q liczbowe, q daty i czasu, q łańcuchowe. Typy liczbowe Typy liczbowe możemy podzielić na dwa rodzaje — typy całkowito- liczbowe oraz typy zmiennoprzecinkowe. Zgodnie z nazwami służą one do reprezentacji wartości całkowitych oraz zmiennoprzecinko- wych (zmiennopozycyjnych, rzeczywistych). Typy całkowitoliczbowe zostały przedstawione w tabeli 4.1. Jeden z wymienionych w niej ty- pów — INTEGER — wykorzystywaliśmy już przy tworzeniu przykłado- wej tabeli klient. W każdym z wymienionych przypadków z wyjątkiem BOOL i BOOLEAN można zastosować dodatkowy modyfikator określają- cy maksymalną szerokość wyświetlania w sytuacji, kiedy liczba zna- ków wartości jest mniejsza niż maksymalna. Definicja typu ma wtedy postać: nazwa_typu(ile)
  • 9. 86 MySQL. Darmowa baza danych • Ćwiczenia praktyczne Dozwolone są także modyfikatory UNSIGNED oraz ZEROIILL. Pierwszy z nich oznacza, że wartość ma być traktowana jako liczba bez znaku (czyli niedopuszczalne są wartości ujemne). Drugi powoduje, że je- żeli liczba cyfr w danej wartości jest mniejsza od maksymalnej liczby wyświetlanych znaków, wolne miejsca zostaną dopełnione zerami. Zastosowanie atrybutu ZEROIILL powoduje, że automatycznie zostanie również zastosowany atrybut UNSIGNED. Przykładowo, jeżeli zostanie zastosowany typ TINYINT UNSIGNED, w po- szczególnych wierszach kolumny będzie można zapisywać wartości od 0 do 255. Jeżeli natomiast zostanie zastosowany typ TINYINT(4) ZEROIILL, w poszczególnych wierszach kolumny również będzie można zapi- sywać jedynie wartości od 0 do 255, ale będą one wyświetlane zawsze w postaci czteroznakowej, w której wolne miejsca z prawej strony zo- stały wypełnione zerami. Oznacza to, że wartość 2 będzie wyświetlana jako 0002, wartość 64 jako 0064, a 128 jako 0128. Tabela 4.1. Typy całkowitoliczbowe Liczba Typ Zakres wartości zajmowanych Opis bajtów BIT - zmienna W wersjach od 5.0.3 reprezentuje pola bitowe od 1 do 64 bitów, w wersjach wcześniejszych synonim dla TINYINT(1). BOOL - 1 Synonim dla TINYINT(1). Wartość 0 jest interpretowana jako false, wartość różna od 0 jako true. W przyszłości ma zostać wprowadzona pełna obsługa typu BOOLEAN.
  • 10. Rozdział 4. • Tworzenie struktury bazy danych 87 Tabela 4.1. Typy całkowitoliczbowe (ciąg dalszy) Liczba Typ Zakres wartości zajmowanych Opis bajtów BOOLEAN - 1 Synonim dla TINYINT(1). Wartość 0 jest interpretowana jako false, wartość różna od 0 jako true. Wprowadzony w wersji 4.1.0. W przyszłości ma zostać wprowadzona pełna obsługa typu BOOLEAN. TINYINT Od –128 do 127 1 Reprezentacja bardzo dla liczb ze znakiem małych wartości i od 0 do 255 dla liczb całkowitoliczbowych. bez znaku. SMALLINT Od –327–8 (–215) 2 Reprezentacja do 327–7 (215–1) małych wartości dla liczb ze znakiem całkowitoliczbowych. i od 0 do –5535 (216–1) dla liczb bez znaku. MEDIUMINT Od –8388–08 (–223) 3 Reprezentacja do 8388–07 (223–1) średnich wartości dla liczb ze znakiem całkowitoliczbowych. i od 0 do 1–777215 (224–1) dla liczb bez znaku. INT Od –2147483–48 (–231) 4 Reprezentacja do 2147483–47 (231–1) zwykłych wartości dla liczb ze znakiem całkowitoliczbowych. i od 0 do 42949–7295 (232–1) dla liczb bez znaku.
  • 11. 88 MySQL. Darmowa baza danych • Ćwiczenia praktyczne Tabela 4.1. Typy całkowitoliczbowe (ciąg dalszy) Liczba Typ Zakres wartości zajmowanych Opis bajtów INTEGER Od –2147483–48 (–231) 4 Synonim dla INT. do 2147483–47 (231–1) dla liczb ze znakiem i od 0 do 42949–7295 (232– 1) dla liczb bez znaku. BIGINT Od –922337203–854775808 8 Reprezentacja (–263) do 922337203–854 dużych wartości 775807 (263 –1) dla liczb całkowitoliczbowych. ze znakiem i od 0 do 1844–744073709551–15 (264–1) dla liczb bez znaku. Ć W I C Z E N I E 4.5 Tabela z kolumnami typu INTEGER Utwórz tabelę, która będzie zawierała dwie kolumny typu INTEGER, pierwszą o nazwie id i drugą o nazwie znacznik. CREATE TABLE test ( id INTEGER, znacznik INTEGER ); Ć W I C Z E N I E 4.6 Tabela z kolumnami typu INTEGER z dodatkowymi atrybutami Utwórz tabelę, która będzie zawierała kolumnę typu INTEGER przecho- wującą wyłącznie dodatnie wartości z przedziału 0 – 65535, w której liczba wyświetlanych znaków będzie zawsze równa 5, a wolne miej- sca wartości krótszych niż 5 znaków będą wypełniane zerami. CREATE TABLE test ( id SMALLINT(5) ZEROFILL );
  • 12. Rozdział 4. • Tworzenie struktury bazy danych 89 Typy zmiennoprzecinkowe zostały przedstawione w tabeli 4.2. Po- dobnie jak w przypadku typów całkowitoliczbowych, istnieje możli- wość zastosowania modyfikatora określającego szerokość wyświetla- nia. W przypadku typów ILOAT, DOUBLE i DOUBLE PRECISION występuje on zawsze jednocześnie z modyfikatorem określającym liczbę miejsc po przecinku, ogólnie: nazwa_typu(mod1, mod2) gdzie mod1 określa szerokość wyświetlania (całkowitą liczbę cyfr zna- czących), a mod2 liczbę uwzględnianych miejsc po przecinku. Tabela 4.2. Typy zmiennoprzecinkowe Liczba Typ Zakres wartości zajmowanych Opis bajtów FLOAT zmienny 4 lub 8 Parametr precyzja określa (precyzja) precyzję, z jaką będzie reprezentowana dana wartość rzeczywista. W przypadku wartości od 0 do 24 mamy do czynienia z liczbami o pojedynczej precyzji, a w przypadku wartość od 25 do –3 z liczbami o podwójnej precyzji, co odpowiada opisanym niżej typom FLOAT i DOUBLE. FLOAT od –3.4028234––E+38 4 Liczby do 3.4028234––E+38 zmiennoprzecinkowe pojedynczej precyzji. DOUBLE od –1.797–931348 8 Liczby –23157E+308 zmiennoprzecinkowe do 1.797–931348 podwójnej precyzji. –23157E+308 DOUBLE jw. jw. Synonim dla DOUBLE. PRECISION REAL jw. jw. Synonim dla DOUBLE.
  • 13. 90 MySQL. Darmowa baza danych • Ćwiczenia praktyczne Tabela 4.2. Typy zmiennoprzecinkowe (ciąg dalszy) Liczba Typ Zakres wartości zajmowanych Opis bajtów DECIMAL zmienny zmienna Wartości z separatorem dziesiętnym. W wersjach przed 5.0.3 przechowywana jako łańcuch znaków. Całkowita maksymalna liczba znaków i liczba znaków po separatorze dziesiętnym może być określana przez dodatkowe parametry. DEC jw. jw. Synonim dla DECIMAL. NUMERIC jw. jw. Synonim dla DECIMAL. FIXED jw. jw. Synonim dla DECIMAL, dodany w wersji 4.1.0. W przypadku typu DECIMAL i jego synonimów możliwe jest zastoso- wanie modyfikatora określającego szerokość wyświetlania bez mody- fikatora określającego liczbę miejsc po przecinku, czyli prawidłowa jest zarówno konstrukcja: DECIMAL(mod1) jak i: DECIMAL(mod1, mod2) W stosunku do typów zmiennoprzecinkowych można również stoso- wać modyfikatory ZEROIILL oraz UNSIGNED. Znaczenie pierwszego z nich jest takie samo jak w przypadku typów całkowitoliczbowych. Zasto- sowanie modyfikatora UNSIGNED powoduje natomiast, że dozwolone będą jedynie wartości nieujemne, nie zmieni się natomiast zakres wartości możliwych do reprezentowania.