Tinyint mysql: Типы полей в MySQL
Типы полей в MySQL
В этой статье мы освятим очень важный вопрос, связанный с тем, какие типы полей в таблицах предоставляет нам MySQL. Ведь не секрет, что записи в таблицах должны соответствовать этим типам. И каждая ячейка записи должна удовлетворять определённым условиям, которые как раз и задаются типом поля в MySQL.
Давайте с Вами по порядку разберём все типы полей в MySQL
1. VARCHAR. Это тип является строковым, причём строкой переменной длины от 0 до 255 символов.
2. TINYINT. Это тип целых чисел. Диапазон значений от -127 до 128, либо 0 до 255, в зависимости от того, может ли это поле быть отрицательным. О том, как это задавать, я расскажу ниже.
3. TEXT (BLOB). Это обычный строковый тип, в котором максимальная длина составляет 65535 символов. Идеальный вариант для хранения текстов статей.
4. DATE. Этот тип отвечает за дату. Формат следующий: «YYYY-MM-DD«. Например, такое значение будет удовлетворять этому полю: «2011-01-02«.
5. SMALLINT. Также, как и TINYINT — это целый тип данных, но диапазон значений уже побольше: -32768 до 32767, либо от 0 до 65535.
6. MEDIUMINT. Ещё один целый тип, но диапазон значений ещё больше: от -8388608 до 8388607, либо от 0 до 16777215.
7. INT. Самый часто используемый целый тип данных. Его диапазон: от -2147483648 до 2147483647, либо от 0 до 4294967295.
8. BIGINT. Последний целый тип, который используется достаточно редко, так как его диапазон значений особо не востребован: от -9223372036854775808 до 9223372036854775807, либо от 0 до 18446744073709551615.
9. FLOAT. Вещественный тип данных. Точность одинарная, то есть число знаков после запятой может быть не более 24-х. Диапазон значений: от -3,402823466E+38 до -1,175494351E-38, 0, и от 1,175494351E-38 до 3,402823466E+38.
10. DOUBLE. Тот же FLOAT, но с двойной точностью. Количество знаков после запятой может составлять до 53-х. Допустимые значения: от -1,7976931348623157E+308 до -2,2250738585072014E-308, 0, и от 2,2250738585072014E-308 до 1,7976931348623157E+308. В общем, если Вам нужны действительно огромные числа, то DOUBLE — это наилучший выбор.
11. DECIMAL. Редко используемый тип даных, но тем не менее. Это число, похожее на тип DOUBLE, но хранится оно в виде строки. И, фактически, интервал допустимых значений определяется наличием знака «—» и «.«. Если эти знаки отсутсвуют, то допустимый интервал такой же, как и у DOUBLE.
12. DATETIME. Тип данных, отвечающих за хранение даты и времени. Формат следующий: «YYYY-MM-DD HH:MM:SS«.
13. TIMESTAMP. Определённая временная метка, которая может иметь один из следующих форматов: «YYYYMMDDHHMMSS«, «YYMMDDHHMMSS«, «YYYYMMDD«, «YYMMDD«.
14. TIME. Простой тип, отвечающий за время в формате: «HH:MM:SS«.
15. YEAR. Тип, отвечающий за год в одном из двух форматов: «YY«, «YYYY«.
16. CHAR. Строка фиксированной длины. Диапазон состовляет от 0 до 255 символов. При хранении данный тип добавляет к концу строки количество пробелов до заданного размера.
17. TINYTEXT (TINYBLOB). Текст с длиной от 0 до 255 символов.
18. MEDIUMTEXT (MEDIUMBLOB). Текст с длиной от 0 до 16777215 символов.
19. LONGTEXT (LONGBLOB). Текст с длиной от 0 до 4294967295 символов.
20. ENUM. Этот тип содержит список значений. Другими словами, значение соответствующей ячейки записи должно быть выбрано из списка допустимых строковых значений (аналог radiobutton). Максимальное количество значений 65535.
21. SET. Набор значений. Если в ENUM должно быть выбрано только одно, то тут может быть выбрано сразу несколько значений (аналог checkbox). Максимальное количество значений, хранимых в SET — 64.
Вот мы и познакомились со всеми типами полей в MySQL. Как и обещал, рассказываю, как выбрать, какое число будет использоваться: положительное или отрицательное. Для этого есть специальный атрибут UNSIGNED, который если стоит, то число положительное, а если его нет, то число может быть как положительным, так и отрицательным. Впрочем, потом Вы всё поймёте, а пока просто примите это к сведению.
Разумеется, всё это запоминать не нужно. И давайте я сейчас Вам перечислю типы, которые используются очень часто и которые многократно использовал я сам:
- VARCHAR — идеальный тип данных для всяких логинов, паролей, заголовков статей, имён, фамилий и прочего.
- TINYINT — используется для всяких «флагов». Например, активирован пользователь на сайте или нет, заблокирован пользователь на сайте или нет. Также используется для численной оценки прав пользователя. Например, «1» — это Гость, «2» — Зарегистрированный, «3» — Администратор и так далее.
- TEXT — используется для хранения текста, разумеется, используется очень часто.
- INT — самый популярный вариант использования этого типа — это ID (уникального идентификатора), который уникален для каждой записи в таблице.
- DATETIME — используется для хранения даты и времени. Например, можно хранить дату и время отправки сообщения на форуме, дату и время регистрации пользователя и так далее.
- ENUM — используется реже тех, которые я описал выше, но тем не менее. Самый простой пример использования этого типа — это словесное описание прав пользователя: «Гость«, «Зарегистрированный«, «Администратор«.
Как видите, типов полей в MySQL очень много, но используются активно всего 5-6, поэтому всё очень и очень просто.
Удачи!
-
Создано 02.01.2011 21:09:18 -
Михаил Русаков
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
MySQL | Типы данных
Типы данных MySQL
Последнее обновление: 25.05.2018
При определении столбцов таблицы для них необходимо указать тип данных. Каждый столбец должен иметь тип данных. Тип данных определяет, какие значения
могут храниться в столбце, сколько они будут занимать места в памяти.
MySQL предоставляет следующие типы данных, которые можно разбить на ряд групп.
Символьные типы
CHAR: представляет стоку фиксированной длины.
Длина хранимой строки указыватся в скобках, например,
CHAR(10)
— строка
из десяти символов. И если в таблицу в данный столбец сохраняется строка из 6 символов (то есть меньше установленной длины в 10 символов), то строка
дополняется 4 проблеми и в итоге все равно будет занимать 10 символовVARCHAR: представляет стоку переменной длины.
Длина хранимой строки также указыватся в скобках, например,
VARCHAR(10)
.
Однако в отличие от CHAR хранимая строка будет занимать именно столько места, скольо необходимо. Например, если определеная длина в 10 символов, но в
столбец сохраняется строка в 6 символов, то хранимая строка так и будет занимать 6 символов плюс дополнительный байт, который хранит длину строки.
Начиная с MySQL 5.6 типы CHAR и VARCHAR по умолчанию используют кодировку UTF-8, которая позволяет использовать до 3 байт для хранения символа в заивисимости от языка (
для многих европейских языков по 1 байту на символ, для ряда восточно-европейских и ближневосточных — 2 байта, а для китайского, яполнского, корейского — по 3 байта на символ).
Ряд дополнительных типов данных представляют текст неопределенной длины:
TINYTEXT: представляет текст длиной до 255 байт.
TEXT: представляет текст длиной до 65 КБ.
MEDIUMTEXT: представляет текст длиной до 16 МБ
LARGETEXT: представляет текст длиной до 4 ГБ
Числовые типы
TINYINT: представляет целые числа от -127 до 128, занимает 1 байт
BOOL: фактически не представляет отдельный тип, а является лишь псевдонимом для типа
TINYINT(1)
и может хранить два значения 0 и 1.
Однако данный тип может также в качестве значения принимать встроенные константы TRUE (представляет число 1) и
FALSE (предоставляет число 0).Также имеет псевдоним BOOLEAN.
TINYINT UNSIGNED: представляет целые числа от 0 до 255, занимает 1 байт
SMALLINT: представляет целые числа от -32768 до 32767, занимает 2 байтa
SMALLINT UNSIGNED: представляет целые числа от 0 до 65535, занимает 2 байтa
MEDIUMINT: представляет целые числа от -8388608 до 8388607, занимает 3 байта
MEDIUMINT UNSIGNED: представляет целые числа от 0 до 16777215, занимает 3 байта
INT: представляет целые числа от -2147483648 до 2147483647, занимает 4 байта
INT UNSIGNED: представляет целые числа от 0 до 4294967295, занимает 4 байта
BIGINT: представляет целые числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, занимает 8 байт
BIGINT UNSIGNED: представляет целые числа от 0 до 18 446 744 073 709 551 615, занимает 8 байт
DECIMAL: хранит числа с фиксированной точностью. Данный тип может принимать два параметра
precision
и
scale
:DECIMAL(precision, scale)
.Параметр
precision
представляет максимальное количество цифр, которые может хранить число. Это значение должно находиться в диапазоне от 1 до 65.Параметр
scale
представляет максимальное количество цифр, которые может содержать число после запятой. Это значение должно находиться в диапазоне от 0 до значения параметра precision. По умолчанию оно равно 0.Например, в определении следующего столбца:
salary DECIMAL(5,2)
Число 5 —
precision
, а число 2 —scale
, поэтому данный столбец может хранить значения из диапазона от -999.99 до 999.99.Размер данных в байтах для DECIMAL зависит от хранимого значения.
Данный тип также имеет псевдонимы NUMERIC, DEC, FIXED.
FLOAT: хранит дробные числа с плавающей точкой одинарной точности от -3.4028 * 1038 до 3.4028 * 1038, занимает 4 байта
Может принимать форму
FLOAT(M,D)
, гдеM
— общее количество цифр, аD
—
количество цифр после запятой.
DOUBLE: хранит дробные числа с плавающей точкой двойной точности от -1.7976 * 10308 до 1.7976 * 10308, занимает 8 байт. Также может принимать форму
DOUBLE(M,D)
, гдеM
— общее количество цифр, аD
— количество цифр после запятой.Данный тип также имеет псевдонимы REAL и DOUBLE PRECISION, которые можно использовать вместо DOUBLE.
Типы для работы с датой и временем
DATE: хранит даты с 1 января 1000 года до 31 деабря 9999 года (c «1000-01-01» до «9999-12-31»). По умолчанию для хранения используется формат yyyy-mm-dd. Занимает 3 байта.
TIME: хранит время от -838:59:59 до 838:59:59. По умолчанию для хранения времени применяется формат «hh:mm:ss». Занимает 3 байта.
DATETIME: объединяет время и дату, диапазон дат и времени — с 1 января 1000 года по 31 декабря 9999 года (с «1000-01-01 00:00:00» до «9999-12-31 23:59:59»).
Для хранения по умолчанию используется формат «yyyy-mm-dd hh:mm:ss». Занимает 8 байтTIMESTAMP: также хранит дату и время, но в другом диапазоне: от «1970-01-01 00:00:01» UTC до «2038-01-19 03:14:07» UTC. Занимает 4 байта
YEAR: хранит год в виде 4 цифр. Диапазон доступных значений от 1901 до 2155. Занимает 1 байт.
Тип Date может принимать даты в различных форматах, однако непосредственно для хранения в самой бд даты приводятся к формату «yyyy-mm-dd».
Некоторые из принимаемых форматов:
Для времени тип Time использует 24-часовой формат. Он может принимать время в различных форматах:
Примеры значений для типов DATETIME и TIMESTAMP:
2018-05-25 19:21:34
2018-05-25
(хранимое значение2018-05-25 00:00:00
)
Составные типы
ENUM: хранит одно значение из списка допустимых значений. Занимает 1-2 байта
SET: может хранить несколько значений (до 64 значений) из некоторого списка допустимых значений. Занимает 1-8 байт.
Бинарные типы
TINYBLOB: хранит бинарные данные в виде строки длиной до 255 байт.
BLOB: хранит бинарные данные в виде строки длиной до 65 КБ.
MEDIUMBLOB: хранит бинарные данные в виде строки длиной до 16 МБ
LARGEBLOB: хранит бинарные данные в виде строки длиной до 4 ГБ
Урок 2. Типы полей MySQL
1. Типы полей
2. Часто используемые типы полей MySQL
В предыдущем уроке мы рассмотрели основные составляющие MySQL. Напомню, в базу данных входят таблицы, которые состоят из записей, а записи, в свою очередь, состоят из полей. Поле подразумевает два атрибута — имя и тип. Имя может быть любое, удобное Вам, а состоять должно из латинских букв и нижнего подчёркивания.
Имя: id, name, age, sex
Типы: 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 и так далее.
Спасибо за внимание!
Типы данных MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Ниже приведен список типов данных, доступных в MySQL, который включает в себя string, numeric, date/time, и типыданных large (больших объектов).
String типы данных
Ниже перечислены типы данных String в MySQL:
Синтаксис | Максимальный размер | Пояснение |
---|---|---|
CHAR(size) | Размер 255 символов | Где size — количество сохраняемых символов. Строки с фиксированной длиной. Пространство справа дополнено на равное количество символов. |
VARCHAR(size) | Размер 255 символов | Где size — количество сохраняемых символов. Строка переменной длины. |
TINYTEXT(size) | Размер 255 символов | Где size — количество сохраняемых символов. |
TEXT(size) | Размер 65535 символов | Где size — количество сохраняемых символов. |
MEDIUMTEXT(size) | Размер 16777215 символов. | Где size — количество сохраняемых символов. |
LONGTEXT(size) | Размер 4Гб или 4294967295 символов | Где size — количество сохраняемых символов. |
BINARY(size) | Размер 255 символов | Где size — количество двоичных символов для хранения. Строки с фиксированной длиной. Пространство справа дополнено на равное количество символов. (Представлено в MySQL 4.1.2) |
VARBINARY(size) | Размер 255 символов. | Где size — количество сохраняемых символов. Строка переменной длины. (Представлено в MySQL 4.1.2) |
Numeric типы данных
Ниже перечислены числовые типы данных в MySQL:
Синтаксис | Максимальный размер | Пояснение |
---|---|---|
BIT | Очень маленькое целочисленное значение, эквивалентное TINYINT (1). Подписанные значения варьируются от -128 до 127. Беззнаковые значения варьируются от 0 до 255. | |
TINYINT(m) | Очень маленькое целочисленное значение. Подписанные значения варьируются от -128 до 127. Беззнаковые значения варьируются от 0 до 255. | |
SMALLINT(m) | Малое целочисленное значение. Подписанные значения варьируются от -32768 до 32767. Беззнаковые значения варьируются от 0 до 65535. | |
MEDIUMINT(m) | Среднее целочисленное значение. Подписанные значения варьируются от -8388608 до 8388607. Беззнаковые значения варьируются от 0 до 16777215. | |
INT(m) | Стандартное целочисленное значение. Подписанные значения варьируются от -2147483648 до 2147483647. Беззнаковые значения варьируются от 0 до 4294967295. | |
INTEGER(m) | Стандартное целочисленное значение. Подписанные значения варьируются от -2147483648 до 2147483647. Беззнаковые значения варьируются от 0 до 4294967295. | Это синоним типа данных INT. |
BIGINT(m) | Большое целочисленное значение. Подписанные значения варьируются от -9223372036854775808 до 9223372036854775807. Беззнаковые значения варьируются от 0 до 18446744073709551615. | |
DECIMAL(m,d) | Число с фиксированной точкой. m по умолчанию — 10, если не указано. d по умолчанию равно 0, если не указано. | Где m — всего цифр, а d — количество цифр после десятичного знака. |
DEC(m,d) | Число с фиксированной точкой. m по умолчанию — 10, если не указано. d по умолчанию равно 0, если не указано. | Где m — всего цифр, а d — количество цифр после десятичного знака. Это синоним типа DECIMAL. |
NUMERIC(m,d) | Число с фиксированной точкой. m по умолчанию — 10, если не указано. d по умолчанию равно 0, если не указано. | Где m — всего цифр, а d — количество цифр после десятичного знака. Это синоним типа DECIMAL. |
FIXED(m,d) | Число с фиксированной точкой. m по умолчанию — 10, если не указано. d по умолчанию равно 0, если не указано. | Где m — всего цифр, а d — количество цифр после десятичного знака. (Представлено в MySQL 4.1) Это синоним типа DECIMAL. |
FLOAT(m,d) | Число с плавающей точкой с одиночной точностью. | Где m — всего цифр, а d — количество цифр после десятичного знака. |
DOUBLE(m,d) | Число с плавающей точкой с двойной точностью. | Где m — всего цифр, а d — количество цифр после десятичного знака. Это синоним типа данных DOUBLE. |
DOUBLE PRECISION(m,d) | Число с плавающей точкой с двойной точностью. | Где m — всего цифр, а d — количество цифр после десятичного знака. |
REAL(m,d) | Число с плавающей точкой с двойной точностью. | Где m — всего цифр, а d — количество цифр после десятичного знака. Это синоним типа данных DOUBLE. |
FLOAT(p) | Число с плавающей точкой. | Где p — точность. |
BOOL | Синонимы TINYINT (1) | Рассматривается как тип данных типа boolean, где значение 0 считается FALSE, а любое другое значение считается TRUE. |
BOOLEAN | Синонимы TINYINT (1) | Рассматривается как тип данных типа boolean, где значение 0 считается FALSE, а любое другое значение считается TRUE. |
Date/Time типы данных
Ниже приведены типы данных дата / время в MySQL:
Синтаксис | Максимальный размер | Пояснение |
---|---|---|
DATE | Значения варьируются от ‘1000-01-01’ до ‘9999-12-31’. | Отображается как ‘YYYY-MM-DD’. |
DATETIME | Значения варьируются от ‘1000-01-01 00:00:00’ до ‘9999-12-31 23:59:59’. | Отображается как ‘YYYY-MM-DD HH:MM:SS’. |
TIMESTAMP(m) | Значения варьируются от ‘1970-01-01 00:00:01’ UTC до ‘2038-01-19 03:14:07’ UTC. | Отображается как ‘YYYY-MM-DD HH:MM:SS’. |
TIME | Значения варьируются от ‘-838: 59: 59’ до ‘838: 59: 59’. | Отображается как ‘HH:MM:SS. |
YEAR[(2|4)] | Значение года как 2 цифры или 4 цифры. | Значение по умолчанию — 4 цифры. |
Large Object (LOB) типы данных
Ниже перечислены типы данных большого объекта (LOB) в MySQL:
Синтаксис | Максимальный размер | Пояснение |
---|---|---|
TINYBLOB | Максимальный размер 255 байт. | |
BLOB(size) | Максимальный размер 65 535 байт. | Где size — количество хранимых символов (размер является необязательным и был введен в MySQL 4.1) |
MEDIUMBLOB | Максимальный размер 16 777 215 байт. | |
LONGTEXT | Максимальный размер 4 ГБ или 4 294 967 295 символов. |
Рубрика: Программирование MySQL | Permalink
Максимальная длина для текста типа MySQL
для MySql версии 8.0.
Требования Хранения Числового Типа
Data Type Storage Required
TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT, INTEGER 4 bytes
BIGINT 8 bytes
FLOAT(p) 4 bytes if 0 <= p <= 24, 8 bytes if 25 <= p <= 53
FLOAT 4 bytes
DOUBLE, REAL 8 bytes
DECIMAL(M,D), NUMERIC(M,D) Varies; see following discussion
BIT(M) approximately (M+7)/8 bytes
значения для десятичных (и числовых) столбцов представлены с использованием двоичного формата, который упаковывает девять десятичных (базовых 10) цифр в четыре байта. Хранение целых и дробных частей каждого значения определяется отдельно. Для каждого кратного девяти цифр требуется четыре байта, а для» оставшихся » цифр требуется некоторая доля четырех байтов. Дано хранилище, необходимое для избыточных цифр по следующей таблице.
требования к хранения типа даты и времени
Для столбцов TIME, DATETIME и TIMESTAMP хранилище, необходимое для таблиц, созданных до MySQL 5.6.4, отличается от таблиц, созданных от 5.6.4 on. Это связано с изменением в 5.6.4, которое позволяет этим типам иметь дробную часть, которая требует от 0 до 3 байтов.
Data Type Storage Required Before MySQL 5.6.4 Storage Required as of MySQL 5.6.4
YEAR 1 byte 1 byte
DATE 3 bytes 3 bytes
TIME 3 bytes 3 bytes + fractional seconds storage
DATETIME 8 bytes 5 bytes + fractional seconds storage
TIMESTAMP 4 bytes 4 bytes + fractional seconds storage
начиная с MySQL 5.6.4, хранилище для года и даты остается неизменным. Однако, время, ДАТАВРЕМЯ, и timestamp иначе. DATETIME упаковывается более эффективно, требуя 5, а не 8 байтов для нефракционной части, и все три части имеют дробную часть, которая требует от 0 до 3 байтов, в зависимости от точности дробных секунд сохраненных значений.
Fractional Seconds Precision Storage Required
0 0 bytes
1, 2 1 byte
3, 4 2 bytes
5, 6 3 bytes
например, TIME(0), TIME(2), TIME(4) и TIME (6) используют 3, 4, 5 и 6 байт соответственно. Время и время(0) эквивалентны и требуют одинакового хранения.
для деталей о внутреннем представлении временные значения, см. MySQL Internals: важные алгоритмы и структуры.
Требования К Хранению Типа Строки
В следующей таблице M представляет объявленную длину столбца в символах для небинарных строковых типов и байтах для двоичных строковых типов. L представляет фактическую длину в байтах, заданного строкового значения.
Data Type Storage Required
CHAR(M) The compact family of InnoDB row formats optimize storage for variable-length character sets. See COMPACT Row Format Characteristics. Otherwise, M × w bytes, <= M <= 255, where w is the number of bytes required for the maximum-length character in the character set.
BINARY(M) M bytes, 0 <= M <= 255
VARCHAR(M), VARBINARY(M) L + 1 bytes if column values require 0 − 255 bytes, L + 2 bytes if values may require more than 255 bytes
TINYBLOB, TINYTEXT L + 1 bytes, where L < 28
BLOB, TEXT L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT L + 4 bytes, where L < 232
ENUM('value1','value2',...) 1 or 2 bytes, depending on the number of enumeration values (65,535 values maximum)
SET('value1','value2',...) 1, 2, 3, 4, or 8 bytes, depending on the number of set members (64 members maximum)
TINYINT | Очень маленькое целое число | Диапазон числа со знаком от –128 до 127. Диапазон числа без знака (unsigned) от 0 до 255. |
---|---|---|
SMALLINT | Маленькое целое число | Диапазон числа со знаком от –32768 до 32767. Диапазон числа без знака (unsigned) от 0 до 65535. |
MEDIUMINT | Среднее целое число | Диапазон числа со знаком от –8388608 до 8388607. Диапазон числа без знака (unsigned) от 0 до 16777215. |
INT, INTEGER | Целое число | Диапазон числа со знаком от –2147483648 до 2147483647. Диапазон числа без знака (unsigned) от 0 до 4294967295. |
BIGINT | Большое целое число | Диапазон числа со знаком от –9223372036854775808 до 9223372036854775807. Диапазон числа без знака (unsigned) от 0 до 18446744073709551615. |
FLOAT | Малое (одинарной точности) число с плавающей запятой. Не может быть числом без знака | Диапазоны от –3.402823466E+38 до –1.175494351E-38, 0 и 1.175494351E-38 до 3.402823466E+38. Если количество знаков после запятой не установлено или <= 24 это число с плавающей запятой одинарной точности. |
DOUBLE, DOUBLE PRECISION, REAL | Нормальное (двойной точности) число с плавающей запятой. Не может быть числом без знака | Диапазоны от -1.7976931348623157E+308 до -2.2250738585072014E-308, 0 и 2.2250738585072014E-308 до 1.7976931348623157E+308. Если количество знаков после запятой не установлени или 25 <= количество знаков <= 53 означает числоа с плавающей запятой двойной точности. |
DECIMAL, NUMERIC | Распакованное число с плавающей запятой | Работает подобно типу данных CHAR : «распакованный» означает, что число хранится в виде строки, используя один символ для каждой цифры-значения. Символ десятичной запятой и символ отрицательного числа «-» не учитывается в длину. Если десятичное значение равно 0, значение не будет иметь десятичной запятой или дробной части. Максимальный размер для DECIMAL значение такое же, как и для DOUBLE , но фактический диапазон для данного столбца DECIMAL может быть ограничен в выборе длины и десятичные дроби. |
DATE | Дата | Дата в диапазоне от «1000-01-01» до «9999-12-31». MySQL хранит поле типа DATE в виде «YYYY-MM-DD» (ГГГГ-ММ-ДД). |
DATETIME | Дата и время | Допустимые диапазоны от «1000-01-01 00:00:00» до «9999-12-31 23:59:59». MySQL хранит поле типа DATETIME в виде «YYYY-MM-DD HH:MM:SS» (ГГГГ-ММ-ДД ЧЧ-ММ-СС). |
TIMESTAMP | Дата и время | Диапазон от «1970-01-01 00:00:00» до, примерно, 2037 года. MySQL может хранить поле типа TIMESTAMP в видах «YYYYMMDDHHMMSS» (TIMESTAMP(14) ), «YYMMDDHHMMSS» (TIMESTAMP(12) ), «YYYYMMDD» (TIMESTAMP(8) ) и др. |
TIME | Время | Диапазон от «-838:59:59» до «838:59:59». MySQL хранит поле TIME в виде «HH:MM:SS», но позволяет присваивать значения столбцам TIME с использованием либо строки или числа. |
YEAR | Год в 2- или 4- хцифровом виде (4 цифры по-умолчанию) | Если вы используете 4 цифра, то допустимые значения 1901-2155, и 0000. Если 2 цифры, то 1970-2069 (70-69). MySQL хранит значения поля YEAR в формате «YYYY». |
CHAR | Строка фиксированной длины, которая справа дополняются пробелами до указанной длины, при хранении | Диапазон длины от 1 до 255 символов. Завершающие пробелы удаляются, когда значение извлекается. Значения CHAR сортируются и сравниваются без учета регистра в зависимости от кодировки по умолчанию, если не установлен флаг BINARY . |
VARCHAR | Строка переменной длины. Примечание: конечные пробелы удаляются при сохранении (в отличие от спецификации ANSI SQL). | Диапазон длины от 1 до 255 символов. Значения VARCHAR сортируются и сравниваются без учета регистра, если не установлен флаг BINARY . |
TINYBLOB, TINYTEXT | BLOB или ТЕХТ с максимальной длиной 255 (2^8 — 1) символов. | |
BLOB, TEXT | BLOB или ТЕХТ с максимальной длиной 65535 (2^16 — 1) символов. | |
MEDIUMBLOB, MEDIUMTEXT | BLOB или ТЕХТ с максимальной длиной 16777215 (2^24 — 1) символов. | |
LONGBLOB, LONGTEXT | BLOB или ТЕХТ с максимальной длиной 4294967295 (2^32 — 1) символов. | |
ENUM | Перечисление | Строка-объект, который может принимать только одно значение, выбирается из списка значений «значение 1», «значение 2» или NULL . ENUM максимум может иметь 65535 различных значений. |
SET | Набор | Строка-объект, который может принимать ноль и более значений, каждоу из которых должно быть выбрано из списка значений «значение 1», «значение 2», … Поле SET может иметь максимум 64 варианта значений. |
База Данных MySQL типы данных MySQL Server MS Access
Тип данных определяет, какое значение может содержать столбец: целочисленные данные, символьные данные, денежные данные, данные даты и времени, двоичные строки и т. д.
Типы данных SQL
Каждый столбец в таблице базы данных должен иметь имя и тип данных.
Разработчик SQL должен решить, какой тип данных будет храниться в каждом столбце при создании таблицы. Тип данных является ориентиром для SQL, чтобы понять, какой тип данных ожидается внутри каждого столбца, и он также определяет, как SQL будет взаимодействовать с хранимыми данными.
Примечание: Типы данных могут иметь разные имена в разных базах данных.
И даже если имя такое же, размер и другие детали могут быть разными!
Всегда проверяйте документацию!
Типы данных MySQL
В MySQL есть три основных типа данных: текст, число и дата.
Текстовые типы данных:
Тип данных | Описание |
---|---|
CHAR(size) | Содержит строку фиксированной длины (может содержать буквы, цифры и специальные символы). Фиксированный размер указывается в скобках. Может хранить до 255 символов |
VARCHAR(size) | Содержит строку переменной длины (может содержать буквы, цифры и специальные символы). Максимальный размер указывается в скобках. Может хранить до 255 символов. Примечание: Если поместить большее значение, чем 255, оно будет преобразовано в текстовый тип |
TINYTEXT | Содержит строку с максимальной длиной 255 символов |
TEXT | Содержит строку с максимальной длиной 65 535 символов |
BLOB | Для BLOB-объектов (двоичные большие объекты). Удерживает до 65 535 байт данных |
MEDIUMTEXT | Содержит строку с максимальной длиной 16 777 215 символов |
MEDIUMBLOB | Для BLOB-объектов (двоичные большие объекты). Удерживает до 16 777 215 байт данных |
LONGTEXT | Содержит строку с максимальной длиной 4 294 967 295 символов |
LONGBLOB | Для BLOB-объектов (двоичные большие объекты). Удерживает до 4 294 967 295 байт данных |
ENUM(x,y,z,etc.) | Позволяет ввести список возможных значений. В списке Enum можно вывести до 65535 значений. Если вставленное значение отсутствует в списке, будет вставлено пустое значение. Примечание: Значения сортируются в порядке их ввода. Вы вводите возможные значения в этом формате: Enum (‘ X ‘, ‘ Y ‘, ‘ Z ‘) |
SET | Аналогично Enum, за исключением того, что набор может содержать до 64 элементов списка и может хранить более одного выбора |
Типы данных чисел:
Тип данных | Описание |
---|---|
TINYINT(size) | -128 до 127 нормальный. 0 до 255 неподписанный *. Максимальное количество цифр может быть указано в скобках |
SMALLINT(size) | -32768 до 32767 нормальный. 0 до 65535 неподписанный *. Максимальное количество цифр может быть указано в скобках |
MEDIUMINT(size) | -8388608 до 8388607 нормальный. 0 до 16777215 неподписанный *. Максимальное количество цифр может быть указано в скобках |
INT(size) | -2147483648 до 2147483647 нормальный. 0 до 4294967295 неподписанный *. Максимальное количество цифр может быть указано в скобках |
BIGINT(size) | -9223372036854775808 до 9223372036854775807 в норме. 0 для 18446744073 |
php — TINYINT против ENUM (0, 1) для логических значений в MySQL
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира
.
Tiny int MySQL в Integer в Java
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
.