Строковые данные в MySQL.

Строковые данные (String Types) в MySQL.

В MySQL существует несколько типов символических данных (строковых). Понятие “строки”, которые могут храниться в таких столбцах MySQL, является общим в том смысле, что это могут быть не только строки символов (текстовые данные), но и какие-то двоичных данные, например, изображения или аудио файлы.

Текстовые строковые данные.

 CHAR  для хранения данных фиксированной длины
 VARCHAR  для хранения данных переменной длины
 TEXT  для хранения данных переменной длины

Типы char и varchar самые распространенные. Единственное отличие между ними, что первый тип с фиксированной длиной, второй – с переменной. При сохранении в поле char более короткого значения, оно дополняется пробелами справа. Эти пробелы отсекаются при выборке. Значения типа varchar занимают столько байт, сколько нужно для их хранения плюс один байт для сохранения длины строки. Continue reading

Цифровые данные в MySQL.

Цифровые (Numeric) данные в MySQL.

В MySQL cуществуют следующие классы цифровых данных (Numeric Data Types):

  • целые (Integer), не имеют дробной части;
  • с плавающей запятой (Floating-Point), могут иметь целую и дробную часть. Очень эффективный формат для компьютерных расчетов, но значение числа имеет ошибку округления;
  • с фиксированной запятой (Fixed-Point). Также могут иметь целую и дробную часть, но в отличии от предыдущего случая в таком поле сохраняется точное значение числа. Данный тип используется, например, для денежных расчетов;
  • бит (Bit). Данный тип используется для сохранения значений в виде битовой карты. bit(n) сохраняет значение из n-бит. n может устанавливаться в интервале от 1 до 64.

Данные классы, в свою очередь, могут делиться на типы, которые отличаются количеством байт, необходимых для их хранения в памяти и, соответственно, диапазоном значений, что представлено в таблице ниже:

Класс Тип Описание
Integer TINYINT  Целые значения, отличаются количеством байт,  которые необходимы, чтобы сохранить данное значение в памяти, и диапазоном возможных значений
Integer SMALLINT
Integer MEDIUMINT
Integer INT
Integer BIGINT
Floating-Point FLOAT  Одинарной точности с плавающей запятой
Floating-Point DOUBLE  Двойной точности с плавающей запятой
Fixed-Point DECIMAL  Точное значение с фиксированной запятой
BIT BIT  Значение в виде битовой карты

Типы данных в MySQL.

Основные типы данных в MySQL.

В СУБД MySQL существует 4 основных категории типов данных:

  • цифровые (numeric) данные;
  • строковые или символьные (character) данные;
  • бинарные (binary) данные;
  • календарные (temporal) данные.

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

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

Например, создаем таблицу, содержащую два столбца. Описываем имена этих столбцов и их тип:

create table users (
id  int,
name char(30)  );

В следующем примере мы даем дополнительное описание столбца id. Этот столбец не может содержать отрицательные значения или значения NULL:

create table users (
id  int unsigned not null,
name char(30)  );

NULL – это значение, не связанное с каким-то определенным типом. Другими словами можно сказать, что NULL – это отсутствие какого-то определенного значения, т.е. “нет значения” или “пустое значение”. В таблицу можно добавлять строки с пустыми значениями в столбцах, если это не запрещено в описании столбца, как в примере выше. Можно искать строки с пустыми значениями в определенных столбцах, можно проверять пустое или нет значение столбца, но пустые значения нельзя сравнивать.