SQL код скопирован в буфер обмена
Освойте типы данных SQL с этим руководством! Узнайте о числовых (INTEGER, DECIMAL, FLOAT), строковых (CHAR, VARCHAR, TEXT), датах/времени (DATE, TIME, DATETIME) и других основных типах данных SQL, таких как BOOLEAN, BLOB и JSON. Узнайте, как выбрать правильный тип данных для оптимальной структуры базы данных, целостности данных и производительности запросов. Также узнайте об эффективной обработке значений NULL.
EN PT

Урок 1.3: Базовые типы данных в SQL

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

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

Числовые типы данных используются для хранения числовых значений.

INTEGER

  • Хранит целые числа.
  • Подтипы:
    • INT или INTEGER: Обычно 4-байтовое целое число.
    • SMALLINT: Обычно 2-байтовое целое число.
    • BIGINT: Обычно 8-байтовое целое число.
    • TINYINT: Обычно 1-байтовое целое число.
  • Диапазоны (приблизительные, могут различаться в зависимости от системы управления базами данных):
    • TINYINT: от -128 до 127 (со знаком) или от 0 до 255 (без знака)
    • SMALLINT: от -32 768 до 32 767
    • INT: от -2 147 483 648 до 2 147 483 647
    • BIGINT: от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

DECIMAL / NUMERIC

  • Хранит точные числовые значения с указанной точностью и масштабом.
  • Точность: Общее количество цифр.
  • Масштаб: Количество цифр справа от десятичной точки.
  • Пример: DECIMAL(10, 2) может хранить числа с 10 общими цифрами, 2 из которых находятся после десятичной точки.
  • Диапазон: Зависит от точности и масштаба.

FLOAT / REAL

  • Хранит приблизительные числовые значения с плавающей точкой.
  • Подтипы:
    • FLOAT: Число с плавающей точкой одинарной точности.
    • DOUBLE / DOUBLE PRECISION: Число с плавающей точкой двойной точности.
    • REAL: Синоним для FLOAT в некоторых базах данных.
  • Диапазон: Варьируется в зависимости от конкретной реализации, но обычно охватывает широкий диапазон значений с ограниченной точностью.

Символьные / Строковые типы данных

Символьные типы данных используются для хранения текста.

CHAR

  • Хранит строки фиксированной длины.
  • Вы указываете длину при определении столбца.
  • Пример: CHAR(10) хранит строки ровно из 10 символов.
  • Если хранимая строка короче указанной длины, она дополняется пробелами.

VARCHAR

  • Хранит строки переменной длины.
  • Вы указываете максимальную длину при определении столбца.
  • Пример: VARCHAR(255) хранит строки длиной до 255 символов.
  • Использует только пространство, необходимое для хранения фактической строки.

TEXT

  • Хранит большие строки переменной длины.
  • Часто используется для хранения документов, статей или других больших текстовых данных.
  • Максимальная длина обычно намного больше, чем у VARCHAR.

Типы данных даты и времени

Типы данных даты и времени используются для хранения временных значений.

DATE

  • Хранит дату (год, месяц, день).
  • Формат: Варьируется в зависимости от системы управления базами данных (например, ГГГГ-ММ-ДД, ММ/ДД/ГГГГ).

TIME

  • Хранит время (час, минута, секунда).
  • Формат: Варьируется в зависимости от системы управления базами данных (например, ЧЧ:ММ:СС).

DATETIME / TIMESTAMP

  • Хранит как дату, так и время.
  • Формат: Варьируется в зависимости от системы управления базами данных (например, ГГГГ-ММ-ДД ЧЧ:ММ:СС).
  • TIMESTAMP часто имеет особое поведение, связанное с часовыми поясами и автоматическим обновлением.

Логический тип данных

BOOLEAN

  • Хранит значения true/false.
  • Некоторые базы данных могут представлять логические значения как целые числа (например, 0 для false, 1 для true).

Другие типы данных

BLOB (Binary Large Object)

  • Хранит двоичные данные, такие как изображения, аудио- или видеофайлы.

JSON

  • Хранит данные в формате JSON (JavaScript Object Notation).
  • Позволяет хранить полуструктурированные данные в столбце базы данных.

Значения NULL

Важно понимать концепцию NULL в SQL. NULL представляет собой отсутствующее или неизвестное значение. Столбец может быть определен как разрешающий или запрещающий значения NULL. В отличие от других типов данных, NULL не является типом данных сам по себе, а скорее свойством столбца. Крайне важно правильно обрабатывать значения NULL в запросах, чтобы избежать неожиданных результатов. Сравнения с NULL следует выполнять с использованием IS NULL или IS NOT NULL.

Выбор правильного типа данных

  • Учитывайте тип данных, которые вам нужно хранить (числовые, текстовые, дата/время и т. д.).
  • Выбирайте наименьший тип данных, который может вместить диапазон значений, которые вы ожидаете.
  • Используйте VARCHAR вместо CHAR, если вам не нужны строки фиксированной длины.
  • Используйте DECIMAL для точных числовых значений, особенно при работе с валютой.
  • Помните о конкретных типах данных и их поведении в вашей системе управления базами данных.

Понимая доступные типы данных и их характеристики, вы можете проектировать базы данных, которые будут эффективными, надежными и простыми в обслуживании.

Основные выводы из этого урока:

  • Типы данных имеют значение: Выбор подходящего типа данных имеет решающее значение для целостности данных, эффективности хранения и производительности запросов.
  • Числовые типы: INTEGER, DECIMAL и FLOAT используются для хранения числовых данных, каждый со своими характеристиками в отношении точности и диапазона.
  • Строковые типы: CHAR, VARCHAR и TEXT используются для хранения текстовых данных с различными ограничениями по длине и последствиями для хранения.
  • Типы даты/времени: DATE, TIME и DATETIME используются для хранения временных данных с определенными форматами, которые различаются в разных системах баз данных.
  • Другие типы: BOOLEAN, BLOB и JSON обеспечивают поддержку хранения логических значений, двоичных данных и полуструктурированных данных соответственно.
  • Значения NULL: NULL представляет собой отсутствующее или неизвестное значение и не является типом данных сам по себе. Крайне важно правильно обрабатывать значения NULL в запросах.
  • Выбирайте с умом: Учитывайте характер данных, требуемую точность и последствия для хранения при выборе типа данных для столбца.