Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Типы данных MySQL

Числовые типы данных MySQL имеют следующие дополнительные атрибуты.

UNSIGNED

Предполагается, что данное числовое значение будет неотрицательным (то есть положительным или равным нулю). То место в памяти, которое обеспечивает возможность хранить положительные или отрицательные значения в фиксированных типах данных, таких, как DECIMAL и NUMERIC, используется для хранения части числа, и это несколько увеличивает диапазон по сравнению с DECIMAL и NUMERIC. (Дополнительного атрибута SIGNED в данном случае нет.)

ZER0F1LL

Этот атрибут, используемый для отображения форматирования, заставляет MySQL дополнять числовые значения до полного размера нулями, а не пробелами. При использовании атрибута ZEROFILL автоматически включается атрибут UNSIGNED. В MySQL также принудительно вводится ограничение на отображаемый размер столбцов, составляющее 255 символов. Столбцы с данными, превышающими по длине 255 символов, хранятся должным образом, но отображаются из них только 255 символов. Числовые типы с плавающей точкой могут иметь после десятичной точки не более 30 цифр.

В приводимом ниже перечне видно, что MySQL поддерживает большую часть типов SQL 2003, а также в нем есть несколько дополнительных типов для хранения списков значений, а также больших двоичных объектов (BLOB). К расширениям стандарта ANSI относятся типы TEXT, ENUM, SET и MEDIUMINT. К специальным атрибутам, выходящим за рамки стандарта ANSI, также относятся AUTOINCREMENT, BINARY, NULL, UNSIGNED и ZEROFILL.

BIGINT[(n)] [UNSIGNED] [ZEROFILL] (тип данных SQL 2003: BIGINT)

Хранит числа со знаком и без знака. Диапазон для чисел со знаком составляет от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807. Диапазон для чисел без знака составляет от 0 до 18 146 744 073 709 551 615. При использовании типа BIGINT вычисления могут быть неточными из-за округлений.

BIT, BOOL (тип данных SQL 2003: отсутствует)

Синоним TINYINT.

BLOB (тип данных SQL 2003: BLOB)

Хранит до 65 535 байт данных. Поддержка индексирования столбцов BLOB есть только в версиях MySQL 3.23.2 и выше (этой возможности нет больше ни в одной из рассматриваемых в книге платформ). В MySQL тип BLOB функционально эквивалентен типу MySQL VARCHAR BINARY (который обсуждается ниже) с заданным по умолчанию верхним ограничением на размер. При сравнении данных типа BLOB нужно всегда учитывать регистр. Отличие этого типа от используемого в MySQL типа VARCHAR BINARY состоит в том, что нельзя устанавливать значения по умолчанию (DEFAULT), а также в том, что в BLOB не удаляются заключительные пробелы. К столбцам BLOB не следует применять операции GROUP BY и ORDER BY. Они также хранятся отдельно от таблицы, в то время как все прочие типы данных MySQL сохраняются в структуре самого файла таблицы.

CHAR(n) [BINARY], CHARACTER [BINARY] (тип данных SQL 2003: CHARACTER))

Содержит символьную строку фиксированной длины от 1 до 255 символов. При сохранении значений тип CHAR дополняется пробелами, а при извлечении пробелы обрезаются, как в типе ANSI SQL 2003 VARCHAR. Атрибут BINARY позволяет производить поиск двоичных данных, а не только словарный поиск без учета регистра.

DATE (тип данных SQL 2003: DATE)

Хранит дату в диапазоне от 1000-01-01 до 9999-12-31 (ограниченную кавычками). По умолчанию MySQL отображает эти значения в формате ГГГГ-ММ-ДД, хотя пользователь может указать и какой-нибудь другой формат отображения.

DAТЕ TIME (тип данных SQL 2003: TIMESTAMP)

Хранит значение даты и времени в диапазоне от 1000-01-01 00:00:00 до 9999-12-31 23:59:59.

DECIMAL [р, (я)] [ZEROFILL] (тип данных SQL 2003: DECIMAL(PRECISION, SCALE))

Хранит точные числовые значения в виде строк, используя один символ для каждой цифры. Если точность не указана, она принимается равной 10, а масштаб (если не указан) — равным нулю.

INT [EGER] [UNSIGNED] [ZEROFILL] [AUTO [INCREMENT] (тип данных SQL 2003: INT, INTEGER)

Хранит целые числа со знаком и без знака в диапазоне от -2 147 483 648 до 2 147 483 647 для таблиц с индексно-последовательным методом доступа (ISAM). Для чисел без знака допустимый диапазон в таблицах ISAM — от 0 до 4 294 967 295. В других типах таблиц диапазон значений несколько отличается. Атрибут AUTO INCREMENT доступен для всех вариантов типа INT. Этот атрибут создает для каждой вновь добавляемой строки уникальный идентификатор строки. (За дополнительной информацией об атрибуте AUTO INCREMENT обращайтесь к разделу «Инструкция CREATE/ALTER TABLE» главы 3.)

LONGBLOB (тип данных SQL 2003: BINARY LARGE OBJECT)

Хранит данные BLOB длиной до 4 294 967 295 символов. Заметьте, что для некоторых протоколов связи клиент/сервер такой объем данных может оказаться слишком большим.

LONGTEXT (тип данных SQL 2003: CLOB)

Хранит данные типа TEXT длиной до 4 294 967 295 символов. Заметьте, что для некоторых протоколов связи клиент/сервер такой объем данных может оказаться слишком большим.

MED1UMBLOB (тип данных SQL 2003: отсутствует)

Хранит данные типа BLOB длиной до 16 777 215 символов.

MEDIUMTEXT (тип данных SQL 2003: отсутствует)

Хранит данные типа TEXT длиной до 16 777 215 символов.

MEDIUMINTf(n)] [UNSIGNED] [ZEROFILL] (тип данных SQL 2003: отсутствует)

Хранит целые числа со знаком и без знака в диапазоне от 8 388 608 до -8 388 608. Диапазон для чисел без знака — от 0 до 16 777 215.

NCHAR(n) [BINARY], [NATIONAL] CHAR(n) [BINARY] (тип данных SQL 2003: NCHAR(n))

Синонимы для CHAR. Типы NCHAR обеспечивают поддержку набора UNICODE, начиная с MySQL 4.1.

NUMERIC(p, s) (тип данных SQL 2003: DECIMAL) Синоним типа DECIMAL.

NVARCHAR(n) [BINARY], [NATIONAL] VARCHAR(n) [BINARY], NATIONAL CHAR

VARYING(n) [BINARY] (тип данных SQL 2003: NCHAR VARYING)

Синонимы типа VARYING [BINARY]. Хранит символьные строки переменной длины до 255 символов. Если не используется ключевое слово BINARY, значения хранятся и сравниваются без учета регистра.

REAL (тип данных SQL 2003: REAL) Синоним типа DOUBLE PRECISION.

SЕТ(«знач1», «знач2», …п) (тип данных SQL 2003: отсутствует)

Символьный тип данных, значения которого должны быть равны нулю или нескольким значениям из указанного списка. Список может содержать до 64 элементов.

SMALLINT[(n)] [UNSIGNED] [ZEROFILL] (тип данных SQL 2003: SMALLINT)

Хранит целые числа со знаком или без знака. Диапазон для чисел со знаком — от -32 768 до 32 767. Диапазон для чисел без знака — от 0 до 65 535.

TEXT (тип данных SQL 2003: отсутствует)

Хранит до 65 535 символов данных. Данные типа TEXT хранятся отдельно от таблиц, в то время как остальные типы хранятся в структуре файла соответствующей таблицы. Тип TEXT функционально эквивалентен типу VARCHAR без указания верхней границы (за исключением максимального размера столбца). Сравнение выполняется без учета регистра. Тип TEXT отличается от стандартного типа VARCHAR тем, что нельзя указывать значения по умолчанию (DEFAULT), а также тем, что в ТЕХТ удаляются заключительные пробелы. К столбцам TEXT не следует применять операции GROUP BY и ORDER BY. Кроме того, поддержка индексирования столбцов TEXT появилась только в MySQL 3.23.2 и выше.

Источник