2. Часто используемые типы полей MySQL
В предыдущем уроке мы рассмотрели основные составляющие MySQL. Напомню, в базу данных входят таблицы, которые состоят из записей, а записи, в свою очередь, состоят из полей. Поле подразумевает два атрибута - имя и тип. Имя может быть любое, удобное Вам, а состоять должно из латинских букв и нижнего подчёркивания.
Типы: INT, VARCHAR, INT, VARCHAR
Поля могут быть разного типа - с числами (разных величин), текстом, датой и так далее. Логично, если под определённые данные будет точно выбран тип поля.
Тип поля может быть:
1. Целым
2. Вещественным
3. Строковым
4. Бинарным
5. Дата и время
6. Перечисления и множества
Типы полей мы примерно сгруппировали. Теперь давайте приступим к знакомству с ними.
Типы полей в MySQL
Целочисленные типы данных
TINYINT - тип целых чисел. Диапазон значений от -127 до 128 (если может быть отрицательным), либо 0 до 255 (если не может быть отрицательным).
SMALLINT - тип целых чисел, В отличие от TINYINT диапазон значений значительно больше: -32 768 до 32 767 (если значение может быть отрицательным), либо от 0 до 65 535.
MEDIUMINT - тип целых чисел, однако диапазон значений ещё больше: от -8 388 608 до 8 388 607 (если возможны отрицательные), либо от 0 до 16 777 215.
INT - тип целых чисел. Самый распространённый тип данных. Диапазон: от -2 147 483 648 до 2 147 483 647, либо от 0 до 4 294 967 295.
BIGINT - ещё один тип целых чисел, с самым широким диапазоном значений. Используется редко, так как подобные масштабы значений бывают задействованы крайне редко. От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, либо от 0 до 18 446 744 073 709 551 615.
Вещественные числа
FLOAT - вещественные числа. Точность одинарная. Число знаков после запятой может составлять не более 24-х. Диапазон значений: от -3,402823466E+38 до -1,175494351E-38, 0, и от 1,175494351E-38 до 3,402823466E+38.
DOUBLE - вещественный тип данных. Похож на FLOAT, но знаков после запятой больше в два раза. Количество знаков после запятой может составлять до 53-х. Допустимые значения: от -1,7976931348623157E+308 до -2,2250738585072014E-308, 0, и от 2,2250738585072014E-308 до 1,7976931348623157E+308.
DECIMAL - вещественный тип данных, хранится в виде строки. Используется редко. При отсутствии знаков - и . диапазон значений такой же как у DOUBLE.
Строки
TEXT (BLOB) - стандартный строковый тип данных. Максимальная длина 65 535 символов. Самый используемый вариант при хранении текстовых данных.
TINYTEXT (TINYBLOB) - строковый тип. Текст с длиной от 0 до 255 символов.
MEDIUMTEXT (MEDIUMBLOB) - строковый тип. Текст с длиной от 0 до 16 777 215 символов.
LONGTEXT (LONGBLOB) - строковый тип. Текст с длиной от 0 до 4 294 967 295 символов.
VARCHAR - ещё один строковый тип данных, причём строкой переменной длины от 0 до 255 символов. Чаще всего используется для сохранения переменных с логином, паролем и прочими пользовательскими данными.
CHAR - строковый тип данных. Длина фиксированная (независимо от количества переданных символов). Диапазон составляет от 0 до 255 символов. При передаче данных меньше 255 символов в конце к данным дописываются пробелы, чтобы длина строки достигла заданного размера.
Бинарные типы данных
TINYBLOB - бинарный тип данных. Максимум 255 символов.
BLOB - бинарный тип. Максимум 65535 символов.
MEDIUMBLOB - бинарный тип данных. Максимум 16 777 215 символов.
LONGBLOB - бинарный тип данных. Максимум 4 294 967 295 символов.
Дата и время
DATE - тип данных, хранящий дату. Формат следующий: YYYY-MM-DD (год, месяц, день). Например, такое значение будет удовлетворять этому полю: 2011-01-02.
DATETIME - тип данных, хранящий дату и время. Формат следующий: YYYY-MM-DD HH:MM:SS (год-месяц-день час-минута-секунда). Например: 2011-01-21 09:41:22
TIMESTAMP - тип данных, хранящий дату и время. Имеет следующие форматы: YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, YYMMDD.
TIME - тип данных, хранящий время. Формат: HH:MM:SS. Например: 09:21:55.
YEAR - тип данных, хранящий дату (год). Форматы: YY, YYYY.
Списки значений
ENUM - тип данных, содержащий список значений. Значение данного типа должно быть из списка допустимых строковых значений (аналог radiobutton). Максимальное количество значений 65535.
SET - тип данных, содержащий список значений. В отличие от ENUM может быть выбрано несколько значений (аналог checkbox). Максимальное количество значений, хранимых в SET - 64.
Атрибуты полей
Атрибут AUTO_INCREMENT - генерирует новое порядковое значение для строк.
Атрибут UNSIGNED - данное числовое значение будет неотрицательным.
Теперь вы ознакомлены с основными типами полей в MySQL. Все поля не за чем использовать, пригодятся в работе максимум 10 из них, поэтому не старайтесь запомнить всю информацию по ним.
Часто используемые типы полей MySQL
INT - по праву самый распространённый тип. Практически в каждой таблице есть поле ID (уникального идентификатора), автоматически назначаемый для каждой записи.
VARCHAR - популярен для сохранения данных пользователей - логинов, паролей, имён, фамилий и других подобных полей.
TINYINT - используется для активации пользователей (например, 0 не активирован, 1 - активирован), статей, объявлений и прочих данных. Также используется в других ситуациях, где используются так называемые флаги. Например, 1 - Гость, 2 - Зарегистрированный, 3 - Модератор, 4 - Администратор.
TEXT - текстовый тип данных. Очень часто используется для хранения статей, сообщений и прочих записей.
DATETIME - у каждого сообщения, статьи, записи, регистрации пользователя, в конце концов, есть время создания, последнего редактирования и так далее. Для это часто используют данный тип.
ENUM - используется в сочетании с другими типами данных. Для словесного описания какого-либо функционала или сохранения версии ресурса на другом языке (английский и тд). Меню - Menu и так далее.
Спасибо за внимание!