MySQL - Типы данных
Правильное определение полей в таблице важно для общей оптимизации вашей базы данных. Вы должны использовать только тот тип и размер поля, которое вам действительно нужно. Например, не определяйте поле шириной 10 символов, если вы знаете, что собираетесь использовать только 2 символа. Эти типы полей (или столбцов) также называются типами данных послеtype of data вы будете хранить в этих полях.
MySQL использует много разных типов данных, разбитых на три категории:
- Numeric
- Дата и время
- Типы строк.
Давайте теперь обсудим их подробно.
Числовые типы данных
MySQL использует все стандартные числовые типы данных ANSI SQL, поэтому, если вы переходите к MySQL из другой системы баз данных, эти определения будут вам знакомы.
В следующем списке показаны общие числовые типы данных и их описания.
INT- Целое число нормального размера, которое может быть со знаком или без знака. Если подписано, допустимый диапазон составляет от -2147483648 до 2147483647. Если без знака, допустимый диапазон составляет от 0 до 4294967295. Вы можете указать ширину до 11 цифр.
TINYINT- Очень маленькое целое число, которое может быть со знаком или без знака. Если подписано, допустимый диапазон составляет от -128 до 127. Если без знака, допустимый диапазон составляет от 0 до 255. Вы можете указать ширину до 4 цифр.
SMALLINT- Маленькое целое число, которое может быть со знаком или без знака. Если подписано, допустимый диапазон составляет от -32768 до 32767. Если без знака, допустимый диапазон составляет от 0 до 65535. Вы можете указать ширину до 5 цифр.
MEDIUMINT- Целое число среднего размера, которое может быть со знаком или без знака. Если подписано, допустимый диапазон составляет от -8388608 до 8388607. Если без знака, допустимый диапазон составляет от 0 до 16777215. Вы можете указать ширину до 9 цифр.
BIGINT- Большое целое число, которое может быть со знаком или без знака. Если подписано, допустимый диапазон составляет от -9223372036854775808 до 9223372036854775807. Если без знака, допустимый диапазон составляет от 0 до 18446744073709551615. Вы можете указать ширину до 20 цифр.
FLOAT(M,D)- Число с плавающей запятой, которое не может быть без знака. Вы можете определить длину отображения (M) и количество десятичных знаков (D). Это не требуется и по умолчанию будет 10,2, где 2 - количество десятичных знаков, а 10 - общее количество цифр (включая десятичные знаки). Десятичная точность может доходить до 24 разрядов для FLOAT.
DOUBLE(M,D)- Число двойной точности с плавающей запятой, которое не может быть без знака. Вы можете определить длину отображения (M) и количество десятичных знаков (D). Это не является обязательным и по умолчанию будет 16,4, где 4 - количество десятичных знаков. Десятичная точность может доходить до 53 знаков для DOUBLE. REAL - это синоним DOUBLE.
DECIMAL(M,D)- Распакованное число с плавающей запятой, которое не может быть без знака. В неупакованных десятичных дробях каждое десятичное число соответствует одному байту. Требуется определение длины отображения (M) и количества десятичных знаков (D). NUMERIC является синонимом DECIMAL.
Типы даты и времени
Типы данных даты и времени MySQL следующие:
DATE- Дата в формате ГГГГ-ММ-ДД, между 01.01.1000 и 31.12.9999. Например, 30 декабря й , 1973 будет храниться как 1973-12-30.
DATETIME- Комбинация даты и времени в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС, между 1000-01-01 00:00:00 и 9999-12-31 23:59:59. Например, 3:30 во второй половине дня 30 декабря - го , 1973 будет храниться в 1973-12-30 15:30:00.
TIMESTAMP- временная метка с полуночи, 1 января улица , 1970 и где- то в 2037. Это выглядит как предыдущий формат DATETIME, только без дефиса между числами; 3:30 во второй половине дня на 30 декабря - го , 1973 будет храниться в виде 19731230153000 (YYYYMMDDHHMMSS).
TIME - Сохраняет время в формате ЧЧ: ММ: СС.
YEAR(M)- Сохраняет год в 2-значном или 4-значном формате. Если длина указана как 2 (например, YEAR (2)), YEAR может находиться в диапазоне от 1970 до 2069 (от 70 до 69). Если длина указана как 4, тогда ГОД может быть от 1901 до 2155. Длина по умолчанию - 4.
Типы строк
Хотя числовые типы и типы даты забавны, большинство данных, которые вы будете хранить, будут в строковом формате. В этом списке описаны общие строковые типы данных в MySQL.
CHAR(M)- Строка фиксированной длины от 1 до 255 символов (например, CHAR (5)), дополненная справа пробелами до указанной длины при сохранении. Определение длины не требуется, но значение по умолчанию - 1.
VARCHAR(M)- Строка переменной длины от 1 до 255 символов. Например, VARCHAR (25). Вы должны определить длину при создании поля VARCHAR.
BLOB or TEXT- Поле максимальной длиной 65535 символов. BLOB-объекты являются «большими двоичными объектами» и используются для хранения больших объемов двоичных данных, таких как изображения или другие типы файлов. Поля, определенные как ТЕКСТ, также содержат большие объемы данных. Разница между ними заключается в том, что сортировка и сравнение хранимых данныхcase sensitive на больших двоичных объектах и являются not case sensitiveв текстовых полях. Вы не указываете длину с помощью BLOB или TEXT.
TINYBLOB or TINYTEXT- Столбец BLOB или TEXT с максимальной длиной 255 символов. Вы не указываете длину с помощью TINYBLOB или TINYTEXT.
MEDIUMBLOB or MEDIUMTEXT- Столбец BLOB или TEXT с максимальной длиной 16777215 символов. Вы не указываете длину с MEDIUMBLOB или MEDIUMTEXT.
LONGBLOB or LONGTEXT- Столбец BLOB или TEXT с максимальной длиной 4294967295 символов. Вы не указываете длину с LONGBLOB или LONGTEXT.
ENUM- Перечисление, причудливый термин для обозначения списка. При определении ENUM вы создаете список элементов, из которых необходимо выбрать значение (или оно может быть NULL). Например, если вы хотите, чтобы ваше поле содержало «A», «B» или «C», вы должны определить ENUM как ENUM ('A', 'B', 'C') и только эти значения (или NULL) может когда-либо заполнить это поле.
В следующей главе мы обсудим, как создавать таблицы в MySQL.