Содержание

Типы данных в MySQL — Блог компании Селектел

Эта инструкция
является частью курса

Введение

При создании таблиц в MySQL для каждого столбца нужно указывать тип данных. Он определяет, какие данные там могут храниться, как будут обрабатываться и сколько места будут занимать. В MySQL все типы данных делятся на несколько классов: числовые типы, символьные, дата/время и так далее. В каждом классе есть несколько типов данных, которые внешне могут быть похожи, но их поведение или принципы хранения отличаются. Важно выбрать правильный тип сразу при создании таблицы, потому что потом готовую структуру и приложения будет сложней переделать.

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

Возможности MySQL в «Облачных базах данных»

Подробнее

Числовые типы

Используются для хранения чисел. Бывают целочисленными, с плавающей точкой и с фиксированной точкой.

Целые числа

Хранят только целые числа, без дробной части. Делятся на signed (со знаком) и unsigned (без знака). Типы singed позволяют хранить как положительные, так и отрицательные значения. Типы unsigned хранят только положительные числа, но зато диапазон значений больше. Это может быть полезно в случаях, когда хранимые значения заведомо не могут быть отрицательным. Например, количество товара или идентификатор записи в таблице.

ТипРазмер (байт)Диапазон signedДиапазон unsigned
TINYINT1-128 … 1270 … 255
SMALLINT2-3 2768 … 32 7670 … 65 535
MEDIUMINT3-8 388 608 … 83886070 … 16 777 215
INT42 147 483 648 … 2 147 483 6470 … 42 94 967 295
BIGINT8-263 … 263-10 … 264-1

Числа с плавающей точкой

Хранят приблизительные значения. Не резервируют определенное количество бит для целочисленной или дробной частей. Поэтому у всех значений в таблице количество до и после запятой будет разным.

ТипРазмер (байт)Диапазон 
FLOAT4-3.402823466E+38 … -1.175494351E-38 и 1.175494351E-38 … 3.402823466E+38
DOUBLE8-1.7976931348623157E+308 … -2.2250738585072014E-308 и2.2250738585072014E-308 … 1.7976931348623157E+308

До версии MySQL 8.0.17 эти типы данных поддерживали диапазон unsigned, но он работал не так, как с целыми числами. Беззнаковый диапазон просто запрещал сохранять отрицательные значения, при этом максимальное значение не увеличивалось. Начиная с версии 8.0.17, использование unsigned не рекомендуется и  считается устаревшим. В будущих версиях MySQL поддержку беззнакового диапазона для этого типа данных могут вовсе удалить.

Числа с фиксированной точкой

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

В MySQL для хранения чисел с фиксированной точкой используются типы DECIMAL(M,D) и NUMERIC(M,D), но по факту это синонимы. Можно использовать любой из этих типов, результат будет одинаковым. В таких столбцах максимально можно хранить до 65 чисел вместе с целочисленной и дробной частями.

Символьные (строковые)

Символьные типы используются для хранения текстов. Есть два основных типа: CHAR и VARCHAR. С точки зрения пользователя они выглядят похоже, но MySQL хранит и обрабатывает их по-разному.

  • CHAR хранит строку фиксированной длины до 255 символов. Если длина вставляемой записи меньше, то MySQL автоматически дополняет значение пробелами. Например, если мы указали тип CHAR(10) и сохранили строку «Привет», то по факту в БД будет храниться строка «Привет » (обратите внимание на четыре пробела в конце строки).

Кажется, что это лишняя трата места. Но если во всех ваших записях хранятся строки примерно одной длины, то тип CHAR будет очень производительным. Например, его можно использовать для хранения хешей, у которых длина всегда одинакова.

  • VARCHAR хранит строки переменной длины до 65 535 символов. Причем в памяти хранится именно та длина, которая была указана при создании. VARCHAR занимает меньше места, чем CHAR, но подвержен фрагментации и из-за этого может проигрывать в скорости обработки данных.

Текстовые и бинарные

Текстовые (TEXT) и бинарные (BLOB) типы данных используются для хранения больших объемов текста или двоичных данных. Эти типы похожи, но отличаются по способу хранения и обработки внутри MySQL.

  • BLOB обрабатывается как двоичные данные. В нем не хранится набор символов, а операции сортировки и сравнения основаны на числовых значениях байтов. 
  • TEXT обрабатывается как символьные строки. В нем хранится именно набор символов, а значения сортируются и сравниваются на основе сопоставления набора символов..

Текстовые типы отлично подходят для хранения больших текстов: статей, докладов и так далее. А бинарные типы могут хранить любые файлы или мультимедиа-контент.

ТипРазмер (байт)Макс. размер символов
TINYTEXT / TINYBLOB255255
TEXT / BLOB65 53565 535
MEDIUMTEXT / MEDIUMBLOB16 777 215224-1
LONGTEXT / LONGBLOB4 294 967 295232-1

Кажется, что типы TINYTEXT и TEXT похожи на CHAR и VARCHAR. Но разница в том, что MySQL не умеет индексировать текстовые и бинарные типы и не может использовать индексы для сортировки.

Дата/время

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

ТипРазмер (байт)Описание
DATE3Только дата в формате YYYY-MM-DD. Допустимые значения от 1000-01-01 до 9999-12-31
DATETIME8Дата и время в формате YYYY-MM-DD HH:MM:SS. Допустимые значения от 1000-01-01 00:00:00 до 9999-12-31 23:59:59
TIMESTAMP4Дата и время. Хранится в виде количества секунд, прошедших с 1 января 1970 года по гринвичу. Занимает в два раза меньше места, чем тип DATETIME. Но при этом диапазон ограничен значениями от 1970-01-01 00:00:01 до 2038-01-09 03:14:07
TIME3Только время в формате HH:MM:SS. Допустимые значения от 00:00:00 до 23:59:59
YEAR(N)1Только год в формате YYYY или YY. Допустимые значения от 1901 до 2155 или от 70 до 69 (1970 — 2069)

JSON

Это относительно новый тип данных, который появился в MySQL версии 5. 7.8. Он позволяет нативно хранить и обрабатывать данные в JSON-формате.

В отличие от хранения объектов в виде текста, в использовании специального типа данных есть несколько преимуществ: 

  1. Валидация JSON-объектов. Если попытаться сохранить неправильный JSON, MySQL сгенерирует ошибку.
  2. Возможность нативно работать с JSON, выбирать и обновлять только отдельные части объектов, а не весь объект целиком.
  3. MySQL сохраняет тип JSON в специальном внутреннем формате. Такой способ более производительный, чем работа с JSON в виде строки.

Составные типы

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

  • ENUM может хранить только одно значение из списка, занимает 1-2 байта.
  • SET может хранить одновременно до 64 значений из списка, занимает от 1 до 8 байт.

Заключение

Мы рассмотрели основные типы данных и полей в MySQL, объяснили разницу между схожими типами. Теперь вы можете создавать свои структуры БД, используя полученные знания.

Зарегистрироваться в панели управления

Регистрируйте аккаунт в панели управления Selectel, пополняйте баланс удобным способом и подключайте наши продукты.

Перейти в панель

Узнать о продукте больше

Все о принципах работы, задачах и фичах «Облачных баз данных» читайте на нашем сайте.

Читать про продукт

Типы данных в СУБД—Справка | Документация

  • Типы данных Access
  • Типы данных в системах управления базами данных и многопользовательских базах геоданных

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

При импорте данных одного типа в поле, имеющее другой тип данных, вам нужно понимать, что является эквивалентами типов данных при их переносе между ArcGIS и вашей системой управления базами данных (СУБД), поскольку это может влиять на содержание данных. Точно так же, при создании новых наборов данных в ArcGIS полезно знать, что является эквивалентами типов данных при их переносе между ArcGIS и вашей СУБД. Например, если вы добавите столбец с плавающей точкой (float) в созданный класс пространственных объектов, то в базе данных SQL Server это будет соответствовать столбцу с численным (numeric) типом данных.

Примечание:

Перемещение данных из одной базы данных в другую может вызывать преобразование типов данных.

Подробнее о конвертации данных из одного типа в другой

Типы данных файловой базы геоданных представляют собой типы данных ArcGIS. Однако среди продуктов СУБД типы данных могут различаться. В расположенных ниже разделах содержится информация о том, каким образом происходит преобразование типов данных СУБД в типы данных ArcGIS.

Типы данных Access

При создании класса пространственных объектов или таблицы в ArcGIS для каждого столбца существует возможность выбора 11 различных типов данных. Эти типы данных преобразуются в типы данных Access, как указано в расположенной ниже таблице.

Тип данных ArcGISТип данных AccessПримечания

OBJECTID

Длинное целое (Long Integer)

OBJECTID является полем AutoNumber.

SHORT INTEGER

Целое

LONG INTEGER

Длинное целое (Long Integer)

FLOAT

Одиночный

DOUBLE

Число двойной точности

ТЕКСТ

Текст

DATE

Дата/Время

BLOB

Объект OLE*

GUID

Число

Replication ID, возможны повторы

GEOMETRY

Объект OLE*

RASTER

Длинное целое (Long Integer)

*Объекты связывания и встраивания (OLE) представляют собой объекты, которые были созданы в других приложениях и сейчас связаны с Microsoft Access или встроены в него. В данном случае, типы данных Большой двоичный объект (BLOB) и Геометрия (GEOMETRY) не существуют в Access, поэтому объект ArcGIS связывается с базой данных Access.

Типы данных в системах управления базами данных и многопользовательских базах геоданных

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

Связанные разделы

типов данных (Transact-SQL) — SQL Server

Редактировать

Твиттер LinkedIn Фейсбук Электронная почта

  • Статья
  • 2 минуты на чтение

Применяется к: SQL Server Azure SQL База данных Azure SQL Управляемый экземпляр Azure Synapse Analytics Analytics Platform System (PDW)

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

SQL Server предоставляет набор системных типов данных, определяющих все типы данных, которые можно использовать с SQL Server. Вы также можете определить свои собственные типы данных в Transact-SQL или Microsoft .NET Framework. Типы данных псевдонимов основаны на типах данных, предоставляемых системой. Дополнительные сведения о типах данных псевдонимов см. в разделе CREATE TYPE (Transact-SQL). Пользовательские типы получают свои характеристики от методов и операторов класса, который вы создаете с помощью одного из языков программирования, поддерживаемых .

NET Framework.

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

  • Тип данных результата определяется применением правил приоритета типа данных по отношению к типам данных входных выражений. Дополнительные сведения см. в разделе Приоритет типов данных (Transact-SQL).
  • Сортировка результата определяется правилами приоритета сортировки, когда тип данных результата равен 9.0019 char , varchar , text , nchar , nvarchar или ntext . Дополнительные сведения см. в разделе Приоритет сортировки (Transact-SQL).
  • Точность, масштаб и длина результата зависят от точности, масштаба и длины входных выражений. Дополнительные сведения см. в разделе Точность, масштаб и длина (Transact-SQL).

SQL Server предоставляет синонимы типов данных для совместимости с ISO.

Дополнительные сведения см. в разделе Синонимы типов данных (Transact-SQL).

Категории типов данных

Типы данных в SQL Server разделены на следующие категории:

Точные числа

Строки символов Unicode

Приблизительные цифры

Двоичные строки

Дата и время

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

Строки символов

В SQL Server в зависимости от характеристик хранения некоторые типы данных относятся к следующим группам:

  • Типы данных больших значений: varchar(max) и nvarchar(max)

  • Типы данных больших объектов: text , ntext , image ,

    varbinary(max) и xml

    Примечание.

    sp_help возвращает -1 в качестве длины для типов данных большого значения и xml .

Точные числа

bigint

числовой

маленькое целое

десятичный

маленькие деньги

крохотныйинт

Приблизительные цифры

Дата и время

смещение даты и времени

дата-время2

малая дата и время

дата-время

Строки символов

варчар

Строки символов Unicode

nvarchar

Двоичные строки

Двоичные

варбинарный

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

курсор

версия строки

иерархический идентификатор

уникальный идентификатор

sql_вариант

Типы пространственной геометрии

Типы пространственной географии

См.

также

CREATE PROCEDURE (Transact-SQL)
CREATE TABLE (Transact-SQL)
DECLARE @local_variable (Transact-SQL) EXECUTE (Transact-SQL)
Выражения (Transact-SQL)
Функции (Transact-SQL)
LIKE (Transact-SQL)
sp_droptype (Transact-SQL)
sp_help (Transact-SQL)
sp_rename (Transact-SQL)

Типы данных базы данных | Информатика

Ресурсы по базам данных KS3 (14–16 лет)

  • Редактируемая презентация урока в PowerPoint
  • Редактируемые раздаточные материалы по повторным версиям
  • Глоссарий, охватывающий ключевые термины модуля
  • Тематические карты разума для визуализации 8 ключевых понятий

    карточки, помогающие учащимся активно вспоминать и повторять на основе уверенности

  • Викторина с прилагаемым ключом к ответу для проверки знаний и понимания модуля

Просмотр ресурсов баз данных KS3

A-Level Introduction to Databases (16-18 лет)

  • Редактируемая презентация урока в PowerPoint для наглядного представления ключевых понятий
  • Карточки для распечатки, помогающие учащимся активно вспоминать и повторять на основе уверенности
  • Тест с ответами для проверки знаний и понимания модуля

View A-Level Introduction to Databases Resources

1 KS3 Databases Resources (14–16 лет)

2 A-Level Introduction to Databases (16–18 лет)

3 Распространенные типы данных баз данных

3. 1 Дополнительная литература :

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

Существуют языки программирования, которые требуют, чтобы программист определял тип данных переменной, прежде чем присваивать ей значение. В то время как некоторые языки программирования могут автоматически привязывать тип данных к переменной на основе исходных данных, назначенных переменной. Например, переменной присвоено значение «3,75», тогда тип данных, который будет привязан к переменной, — с плавающей запятой.

Большинство языков программирования позволяют каждой переменной хранить данные только одного типа.