Типы данных в MySQL — Блог компании Селектел
Эта инструкция
является частью курса
Введение
При создании таблиц в MySQL для каждого столбца нужно указывать тип данных. Он определяет, какие данные там могут храниться, как будут обрабатываться и сколько места будут занимать. В MySQL все типы данных делятся на несколько классов: числовые типы, символьные, дата/время и так далее. В каждом классе есть несколько типов данных, которые внешне могут быть похожи, но их поведение или принципы хранения отличаются. Важно выбрать правильный тип сразу при создании таблицы, потому что потом готовую структуру и приложения будет сложней переделать.
В этой статье мы расскажем об основных типах данных в MySQL и дадим советы, где лучше использовать тот или иной тип.
Возможности MySQL в «Облачных базах данных»
ПодробнееЧисловые типы
Используются для хранения чисел. Бывают целочисленными, с плавающей точкой и с фиксированной точкой.
Целые числа
Хранят только целые числа, без дробной части. Делятся на signed (со знаком) и unsigned (без знака). Типы singed позволяют хранить как положительные, так и отрицательные значения. Типы unsigned хранят только положительные числа, но зато диапазон значений больше. Это может быть полезно в случаях, когда хранимые значения заведомо не могут быть отрицательным. Например, количество товара или идентификатор записи в таблице.
Тип | Размер (байт) | Диапазон signed | Диапазон unsigned |
TINYINT | 1 | -128 … 127 | 0 … 255 |
SMALLINT | 2 | -3 2768 … 32 767 | 0 … 65 535 |
MEDIUMINT | 3 | -8 388 608 … 8388607 | 0 … 16 777 215 |
INT | 4 | 2 147 483 648 … 2 147 483 647 | 0 … 42 94 967 295 |
BIGINT | 8 | -263 … 263-1 | 0 … 264-1 |
Числа с плавающей точкой
Хранят приблизительные значения. Не резервируют определенное количество бит для целочисленной или дробной частей. Поэтому у всех значений в таблице количество до и после запятой будет разным.
Тип | Размер (байт) | Диапазон |
FLOAT | 4 | -3.402823466E+38 … -1.175494351E-38 и 1.175494351E-38 … 3.402823466E+38 |
DOUBLE | 8 | -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 / TINYBLOB | 255 | 255 |
TEXT / BLOB | 65 535 | 65 535 |
MEDIUMTEXT / MEDIUMBLOB | 16 777 215 | 224-1 |
LONGTEXT / LONGBLOB | 4 294 967 295 | 232-1 |
Кажется, что типы TINYTEXT и TEXT похожи на CHAR и VARCHAR. Но разница в том, что MySQL не умеет индексировать текстовые и бинарные типы и не может использовать индексы для сортировки.
Дата/время
Типы данных, которые позволяют работать с датой и временем.
Тип | Размер (байт) | Описание |
DATE | 3 | Только дата в формате YYYY-MM-DD. Допустимые значения от 1000-01-01 до 9999-12-31 |
DATETIME | 8 | Дата и время в формате YYYY-MM-DD HH:MM:SS. Допустимые значения от 1000-01-01 00:00:00 до 9999-12-31 23:59:59 |
TIMESTAMP | 4 | Дата и время. Хранится в виде количества секунд, прошедших с 1 января 1970 года по гринвичу. Занимает в два раза меньше места, чем тип DATETIME. Но при этом диапазон ограничен значениями от 1970-01-01 00:00:01 до 2038-01-09 03:14:07 |
TIME | 3 | Только время в формате 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-формате.
В отличие от хранения объектов в виде текста, в использовании специального типа данных есть несколько преимуществ:
- Валидация JSON-объектов. Если попытаться сохранить неправильный JSON, MySQL сгенерирует ошибку.
- Возможность нативно работать с JSON, выбирать и обновлять только отдельные части объектов, а не весь объект целиком.
- 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). Пользовательские типы получают свои характеристики от методов и операторов класса, который вы создаете с помощью одного из языков программирования, поддерживаемых .
Когда два выражения с разными типами данных, параметрами сортировки, точностью, масштабом или длиной объединяются оператором, характеристики результата определяются следующим образом:
- Тип данных результата определяется применением правил приоритета типа данных по отношению к типам данных входных выражений. Дополнительные сведения см. в разделе Приоритет типов данных (Transact-SQL).
- Сортировка результата определяется правилами приоритета сортировки, когда тип данных результата равен 9.0019 char , varchar , text , nchar , nvarchar или ntext . Дополнительные сведения см. в разделе Приоритет сортировки (Transact-SQL).
- Точность, масштаб и длина результата зависят от точности, масштаба и длины входных выражений. Дополнительные сведения см. в разделе Точность, масштаб и длина (Transact-SQL).
SQL Server предоставляет синонимы типов данных для совместимости с ISO.
Категории типов данных
Типы данных в 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», тогда тип данных, который будет привязан к переменной, — с плавающей запятой.
Большинство языков программирования позволяют каждой переменной хранить данные только одного типа.