В SQL типы данных определяют, какие данные могут храниться в столбце. Выбор правильного типа данных имеет решающее значение для целостности данных, эффективности хранения и производительности запросов. В этом уроке рассматриваются общие типы данных и их подтипы, используемые в базах данных SQL, а также диапазоны их значений.
Числовые типы данных используются для хранения числовых значений.
INT
или INTEGER
: Обычно 4-байтовое целое число.SMALLINT
: Обычно 2-байтовое целое число.BIGINT
: Обычно 8-байтовое целое число.TINYINT
: Обычно 1-байтовое целое число.TINYINT
: от -128 до 127 (со знаком) или от 0 до 255 (без знака)SMALLINT
: от -32 768 до 32 767INT
: от -2 147 483 648 до 2 147 483 647BIGINT
: от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807DECIMAL(10, 2)
может хранить числа с 10 общими цифрами, 2 из которых находятся после десятичной точки.FLOAT
: Число с плавающей точкой одинарной точности.DOUBLE
/ DOUBLE PRECISION
: Число с плавающей точкой двойной точности.REAL
: Синоним для FLOAT
в некоторых базах данных.Символьные типы данных используются для хранения текста.
CHAR(10)
хранит строки ровно из 10 символов.VARCHAR(255)
хранит строки длиной до 255 символов.VARCHAR
.Типы данных даты и времени используются для хранения временных значений.
TIMESTAMP
часто имеет особое поведение, связанное с часовыми поясами и автоматическим обновлением.Важно понимать концепцию 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
в запросах.