Найти в Дзене
IT_WORLD BLOG

Типы данных в MySQL(Урок 3)

Перед тем как начать создавать таблицы в базе данных необходимо знать какие типы данных поддерживает MySQL и сейчас рассмотрим каждый тип данных: • BIT [(количество битов)] Если не указывать количество битов то по стандарту будет присвоен 1 бит; • TINYINT числа для этого типа данных могут быть в диапазоне от -128 до 127 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 255; • BOOL или BOOLEAN числовые ненулевые значения воспринимает как TRUE(истина) а нулевые как FALSE(ложь) или просто принимает символьные значения TRUE или FALSE; • SMALLINT это целочисленный тип данных который имеет диапазон от -32 768 до 32 767 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 65 535; • MEDIUMINT это целочисленный тип данных который имеет диапазон от -8 388 608 до 8 388 607 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 16 777 215; • INT или INTEGER это целочисленный тип данных который имеет диапазон от -2 147 483 648 до 2 147 483 647 если указан парам

Перед тем как начать создавать таблицы в базе данных необходимо знать какие типы данных поддерживает MySQL и сейчас рассмотрим каждый тип данных:

• BIT [(количество битов)] Если не указывать количество битов то по стандарту будет присвоен 1 бит;

• TINYINT числа для этого типа данных могут быть в диапазоне от -128 до 127 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 255;

• BOOL или BOOLEAN числовые ненулевые значения воспринимает как TRUE(истина) а нулевые как FALSE(ложь) или просто принимает символьные значения TRUE или FALSE;

• SMALLINT это целочисленный тип данных который имеет диапазон от -32 768 до 32 767 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 65 535;

• MEDIUMINT это целочисленный тип данных который имеет диапазон от -8 388 608 до 8 388 607 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 16 777 215;

• INT или INTEGER это целочисленный тип данных который имеет диапазон от -2 147 483 648 до 2 147 483 647 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 4 294 967 295;

• BIGINT это целочисленный тип данных который имеет диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 если указан параметр UNSIGNED то он будет иметь диапазон от 0 до 8 446 744 073 70 9 551 615;

• SERIAL это целочисленный тип данных который принимает числа без знака, принимает автоматически увеличиваемые числа. Используется для генерации уникальных чисел для первичного ключа в столбце;

• FLOAT число с плавающей точкой имеет диапазон от -1,7976931348623157308 до -2,2250738585072014-308 а также от 2,2250738585072014-308 до 1,797693134862315738 ;

• FLOAT (<точность>) этот тип данных эквивалентен типу данных FLOAT если значения от 0 до 24 а если значения от 25 до 53 то эквивалентен типу данных DOUBLE;

Для всех десятичных типов данных можно задать точность и шкалу кроме типа данных FLOAT (<точность>) Например если для столбца применен тип данных FLOAT(7,5) это значит что в столбец нельзя присвоить больше 2 цифр расчет производится так 7-5=2 все числа будут округлятся до 5 знаков после десятичного разделителя.

• DECIMAL, DEC, NUMERIC, FIXED не округляемое число с фиксированной точкой, может содержать 65 цифр и до 30 цифр после десятичного разделителя( по умолчанию 10 цифр и 0 после десятичного разделителя);

Параметры для числовых типов данных:

• UNSIGNED этот параметр запрещает отрицательные значения;

• ZEROFILL этот параметр дополняет числовые значения нулями;

• AUTO_INCREMENT этот параметр автоматически нумерует столбцы;

Продолжение типов данных:

• DATE тип данных который хранит дату в следующем формате год-месяц-день может иметь значения от 0000-01-01 до 9999-12-31;

• DATETIME тип данных который хранит дату и время имеет временной диапазон от 00:00:00 до 23:59:59;

• TIMESTAMP тип данных который похож на DATETIME только диапазон даты от 1970 до 2038 г. а также он может выполнять различные операции когда наступит определенный день и время;

• TIME тип данных который хранит время в диапазоне от -838:59:59 до 838:59:59;

• YEAR YEAR(2) YEAR(4) тип данных который хранит год в диапазоне от 1901 до 2155 года можно использовать два формата YYYY или YY;

• CHAR или NATIONAL CHAR это символьная строка с фиксированной длиной, диапазон от 0 до 255 если количество символов не указано используется 1 символ. NATIONAL CHAR поддерживает кодировку UTF-8 а CHAR поддерживает все кодировки MySQL;

• VARCHAR или NATIONAL VARCHAR это символьная строка произвольной длины она имеет диапазон от 0 до 65 535 тут есть одно ограничение 65 535 байт должно быть в сумме с такими типами данных как CHAR, VARCHAR, VARBINARY, BINARY это ограничение срабатывает когда в таблице есть хоть один VARCHAR. Если используется кодировка UTF-8 то количество байтов падает до 21 844. NATIONAL VARCHAR отличается от NATIONAL CHAR тем что поддерживает все кодировки MySQL;

• BINARY данный тип данных фиксированной длины, аналогичен CHAR только вместо символов поддерживает байты и значения маленькой длины дополнятся нулевыми байтами;

• VARBINARY этот тип данных переменой длины но этот тип данных аналогичен VARCHAR только с байтами;

• TINYBLOB этот тип данных аналогичен VARBINARY только имеет ограничение в 255 байтов;

• TINYTEXT это символьная строка с переменой длиной которая имеет ограничение в 255 байтов;

• BLOB байтовый тип данных с переменой длиной с ограничением в 65 535 байт;

• TEXT символьная строка с переменой длиной для хранения текста и с ограничением в 65 535 байт;

• MEDIUMBLOB байтовая строка с переменой длиной с ограничением в 16 777 215 байт;

• MEDIUMTEXT символьная строка с переменой длиной и ограничением в 16 777 215 байт;

• LONGBLOB это байтовый тип данных с переменой длиной и ограничением 4 294 967 295 байт. Ограничение может быть больше все зависит от протокола связи с сервером;

• LONGTEXT это символьный тип данных с переменой длиной и ограничением 4 294 967 295 байт. Ограничение может быть больше все зависит от протокола связи с сервером;

• ENUM тип данных который содержит только одно значение из заданного списка есть ограничения в 65 535 элементов;

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