Stronę tą wyświetlono już: 8782 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)