Stronę tą wyświetlono już: 8221 razy
Polecenie CREATE TABLE umożliwia stworzenie tabeli, która w przyszłości będzie przechowywała rekordy danych. Aby jednak było możliwe prawidłowe korzystanie z tego polecenia trzeba poznać najpierw typy danych, jakie mogą być ustawione dla danej komórki tabeli. Oto przykład utworzenia tabeli z wykorzystaniem tego polecenia:
Nazwa tabeli tworzonej w tym przypadku to books, składa się ona z trzech pól:
- pierwszego o nazwie id, przechowującego typ int unsigned (całkowity bez znaku). Kolejne instrukcje to:
- not null - czyli wpis nie może mieć wartości 0;
- polecenie auto_increment oznacza automatyczne dodawanie wartości tego pola (automatycznie przy dodawaniu danych będzie ustawiał to pole na wartość o 1 większą od ostatnio wstawionej wartości);
- primary key oznacza, że jest to klucz główny tej tabeli. W danej tabeli może istnieć tylko jeden klucz główny.
- drugiego pola o nazwie title przyjmującego ciąg 255 znaków char(255);
- trzeciego pola o nazwie author przyjmującego również ciąg 255 znaków char(255).
Do powyższego zapytania można dodać warunek IF NOT EXISTS w następujący sposób:
jeżeli nie ma się pewności, czy tabela o podanej nazwie już nie istnieje.
Typy danych
Typy liczbowe dzielą się na dwie główne grupy:
- całkowite, które z kolei można podzielić na:
- całkowite ze znakiem;
- całkowite bez znaku - wymagają użycia dodatkowego słowa UNSIGNED z nazwą typu całkowitego ze znakiem
- zmiennoprzecinkowe
Typy liczb całkowitych
Poniżej zamieszczam tabelkę opisującą podstawowe typy danych liczbowych całkowitych:
W powyższej tabelce dla równoważnych typów danych zapisane zostały zakresy ich wartości:
- u góry - dla liczb całkowitych ze znakiem
- u dołu - dla liczb całkowitych bez znaku, czyli np. INT UNSIGNED.
Oznaczenie W w nawiasach kwadratowych oznacza długość wyświetlania liczby. Podanie tej wartości jest opcjonalne (można pominąć)
Typy liczb zmiennoprzecinkowych
Poniżej zamieszczam tabelkę opisującą podstawowe typy danych liczbowych zmiennoprzecinkowych:
Typy przechowywania daty i czasu
W SQL-u dostępnych jest kilka typów umożliwiających przechowywanie daty i czasu. Ciekawą właściwością pól tego typu jest to, że przy wstawianiu rekordu do bazy danych i pozostawieniu danego pola daty lub czasu jako puste wstawiana jest automatycznie bieżąca data. Oto dostępne typy obsługujące datę i czas:
Dla typu TIMESTAMP format wyświetlania daty w zależności od parametru W pokazuje poniższa tabelka.
Typy łańcuchowe
Typy krótkie tekstowe o stałej lub zmiennej długości znaków:
- NATIONAL - wymusza użycie domyślnego zbioru znaków, który i tak jest domyślnie wykorzystywany przez MySQL-a;
- BINARY - wyłącza rozpoznawanie wielkości liter (domyślnie rozpoznawane);
- UNICODE wskazuje, że bedzie wykorzystywany zastaw znaków ucs.
Kolejny typ danych to TEXT - przechowujący zmienną ilość tekstu i BLOB - przechowująca dane binarne. Oto zestawienie tych typów danych:
Ostatni rodzaj typów to typy enumeryczne, umożliwiająca stworzenie własnej listy wartości dopuszczalnych do wprowadzenia w danym polu tabeli. Oto one:
Tworzenie tabelki z poziomu konsoli systemowej
Utwórzmy więc małą tabelkę w nowej bazie danych:
mysql -u root -p password: ************** mysql> CREATE DATABASE library DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; Query OK, 1 row affected (0.00 sec) mysql> USE library; Database changed mysql> USE library; mysql> CREATE TABLE books (id int unsigned not null auto_increment primary key, > title char(255) not null, > author char(255) not null > ); Query OK, 1 row affected (0.33 sec) mysql> DESCRIBE books; +--------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | title | char(255) | NO | | NULL | | | author | char(255) | NO | | NULL | | +--------+------------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)