Место для вас

Типы Данных MySQL

Во многих учебниках или же видео уроках мало времени уделяется типам данных MySQL. И никто толком не объясняет что и зачем это нужно. Может быть упомянут, и говорят вскользь о типах данных. А все остальные примеры показывают на стандартных типах (integer,varchar,text). А зря…

Согласен. так делать можно, НО!!! только в тех случаях, когда мы что-то тестируем по быстрому, но не более. В остальных же случаях НУЖНО строго соблюдать и использовать типы. Ибо правильное использование типов данных может существенно снизить размеры БД и нагрузку, а так же увеличить скорость работы.

Числовые типы данных

Целые числа

Необязательный флаг UNSIGNED задает, что будет создано поле для хранения без знаковых чисел (больших или равных 0).

TINYINT — Может хранить числа от -128 до 127
SMALLINT — Диапазон от -32 768 до 32 767
MEDIUMINT — Диапазон от -8 388 608 до 8 388 607
INT — Диапазон от -2 147 483 648 до 2 147 483 647
BIGINT — Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Дробные числа

синтаксис:
ИмяТипа[(length, decimals)] [UNSIGNED]
где length — количество чисел, которое будет составлять дробное число,
а decimals — количество знаков после точки.
Необязательный флаг UNSIGNED задает, что будет создано поле для хранения без знаковых чисел (больших или равных 0).

FLOAT — Число с плавающей точкой небольшой точности.
DOUBLE — Число с плавающей точкой двойной точности.
REAL — Синоним для DOUBLE.
DECIMAL — Дробное число, хранящееся в виде строки.
NUMERIC — Синоним для DECIMAL.

Дата и время

DATE — Дата в формате ГГГГ-ММ-ДД
TIME — Время в формате ЧЧ:ММ:СС
DATETIME — Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMP — Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГММДДЧЧММСС

Строки

Обычно при поиске по текстовым полям по запросу SELECT не берется в рассмотрение регистр символов, т.е. строки "Вася" и "ВАСЯ" считаются одинаковыми. Кроме того, если база данных настроена на автоматическую перекодировку текста при его помещении и извлечении, эти поля будут храниться в указанной вами кодировке.

синтаксис: VARCHAR (length) [BINARY]

Сперва идут типы строк, которые могут хранить не более length символов, где length принадлежит диапазону от 1 до 255.

При занесении некоторого значения в поле такого типа из него автоматически вырезаются концевые пробелы. Если указан флаг BINARY, то при запросе SELECT строка будет сравниваться с учетом регистра.

VARCHAR — Может хранить не более 255 символов.
TINYTEXT — Может хранить не более 255 символов.
TEXT — Может хранить не более 65 535 символов.
MEDIUMTEXT — Может хранить не более 16 777 215 символов.
LONGTEXT — Может хранить не более 4 294 967 295 символов.
Чаще всего применяется тип TEXT, но если не уверены, что данные не будут превышать 65 536 символов, используйте LONGTEXT.

Бинарные данные

Бинарные данные — это почти то же самое, что и данные в формате TEXT, но только при поиске в них учитывается регистр символов.

TINYBLOB — Может хранить не более 255 символов.
BLOB — Может хранить не более 65 535 символов.
MEDIUMBLOB — Может хранить не более 16 777 215 символов.
LONGBLOB — Может хранить не более 4 294 967 295 символов.

BLOD-данные не перекодируются автоматически, если при работе с установленным соединением включена возможность перекодирования текста "на лету".

ну вот и все. желательно внедрять это в свои проекты. поннимаю, что это не удобно, но НУЖНО!!! так правильно. ну… и не зоя же разрабы MySQL придумали стока типов =)


Место для вас

Добавить коментарий

кликните на картинку,
чтоб обновить код

Что за сайт

Этот сайт представляет унифицированную базу, где инфа собрана в единое целое, а не разбросанна по многочисленным сайтам, записям на листах бумаги или головам людей; а так же доступна круглосуточно не зависимо от кого-либо или чего-либо.

Будь в курсе

Интересненько

Вверх