Całkowite duże - w przedziale od -9.223.372.036.854.775.808 do
9.223.372.036.854.775.807. Bez znaku w przedziale od 0 to 18.446.744.073.709.551.615
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Całkowite małe - w przedzialeod -128 do 127 lub bezznakowo
od 0 do 255:
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Całkowite normalne - w przedziale -2.147.483.648 to 2.147.483.647
Bez znaku w przedziale od 0 to 4.294.967.295:
INT[(M)] [UNSIGNED] [ZEROFILL]
Całkowite normalne - w przedziale -2.147.483.648 to 2.147.483.647
Bez znaku w przedziale od 0 to 4.294.967.295:
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
Całkowite normalne, duże - w przedziale od -9.223.372.036.854.775.808
do 9.223.372.036.854.775.807. Bez znaku w przedziale od 0 to 18.446.744.073.709.551.615:
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Całkowita z precyzją mniejszą niż INT w przedziale
od -32.768 do 32.767 lub bezznakowo od 0 do 65.535:
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Czas - godzina, minuta, sekunda i separatory, razem 8 pozycji:
TIME
Data:
DATE
Data i czas:
DATETIME
Data i czas - 19 pozycyjna:
TIMESTAMP
Logiczne - 0 jest fałszem, a każda liczba w zakresie
od -128 do 127 lub od 1 do 255 jest prawdą:
mysql> SELECT IF(0, 'true', 'false');
+------------------------+
| IF(0, 'true', 'false') |
+------------------------+
| false |
+------------------------+
mysql> SELECT IF(1, 'true', 'false');
+------------------------+
| IF(1, 'true', 'false') |
+------------------------+
| true |
+------------------------+
mysql> SELECT IF(2, 'true', 'false');
+------------------------+
| IF(2, 'true', 'false') |
+------------------------+
| true |
+------------------------+
Pole tekstowe - ma wartość 0 lub kilka wartości pól z listy o długości od 1 do 64 sztuk elementów
SET('value-1','value-2',...) [CHARACTER SET charset_name] [COLLATE collation_name]
Pole tekstowe - ma wartość jednego pola z listy o długości od 1 do 65.535 sztuk elementów
ENUM('value-1','value-2',...) [CHARACTER SET charset_name] [COLLATE collation_name]
Rok - ma 2 lub 4 pola:
YEAR [(2|4)]
Różne typy danych. 1 Bit na znak:
BINARY(M)
Tekst do 255 znaków:
TINYBLOB
Tekst do 255 znaków:
TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
Tekst do 255 znaków, uzupełniany zerami:
[NATIONAL] CHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]
Tekst do 255 znaków, nie uzupełniany zerami:
[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]
Tekst do 65.538 znaków:
BLOB[(M)]
Tekst do 65.538 znaków:
TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]
Tekst do 16.777.215 znaków:
MEDIUMBLOB
Tekst do 16.777.215 znaków:
MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
Tekst do 4.294.967.295 znaków:
LONGBLOB
Tekst do 4.294.967.295 znaków:
LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
Zmiennoprzecinkowe - w zakresie od -3.402823466E+38 do -1.175494351E-38, 0,
oraz 1.175494351E-38 do 3.402823466E+38
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
Zmiennoprzecinkowe duże - w zakresie od -1.7976931348623157E+308 do
-2.2250738585072014E-308, 0,
oraz 2.2250738585072014E-308 do 1.7976931348623157E+308
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
Zmiennoprzecinkowa duża - zapisana jako łańcuch znaków,
w zakresie od -1.7976931348623157E+308 do -2.2250738585072014E-308, 0,
oraz 2.2250738585072014E-308 do 1.7976931348623157E+308
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
Automatyczne numerowanie wierszy w tabeli:
CREATE TABLE samochody (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO samochody (name) VALUES
('fiat'),('lada'),('trabant'),
('maly'),('duza'),('staroc');
SELECT * FROM samochody;
Binary - określa, że kolumna CHAR lub VARCHAR przechowuje wartości binarne
i uwzględnia wielkość znaków. Przy porównywaniu pól tekstowych wielkość
liter jest ignorowana
DEFAULT wartość - wartość domyślna pola
NULL, NOT NULL - dopuszcza wartość zero dla pól
PRIMARY KEY - tworzy unikalny klucz tabeli
UNSIGNED - mówi, że dane w polach mają być nieujemne
UNIQUE - definiuje pole jako unikalne
ZEROFILL - dopełnia pole zerami do jego rozmiaru