Типы данных в реляционных СУБД

Базы Данных

Типы данных в реляционных СУБД

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

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

Название типа

Описание

INT

Тип целых чисел. Имеет довольно широкий диапазон значений. Поле типа INT занимает 4 байта.

TINYINT

Данный тип также является целочисленным, но у него самый маленький диапазон допустимых значений: от -127 до 128.Поле данного типа занимает 1 байт.

VARCHAR

Текст длинной до 255 символов. Поле типа VARCHAR занимает количество байт равное длине строки.

YEAR

Данный тип предназначен для хранения чисел в диапазоне от 1901 до 2155. В учебной базе данных этот тип поля используется для хранения года издания учебника.

Целочисленные типы, к которым относятся типы INT и TINYINT, могут использоваться со специальной опцией UNSIGNED. В этом случае диапазон допустимых значений сдвигается в область положительных чисел. Например, TINYINT UNSIGNED имеет диапазон от 0 до 255, поле этого типа тоже будет занимать 1 байт.

Еще одна опция: AUTO_INCREMENT. Она применяется для числовых полей, выбранных в качестве первичных ключей. Значение поля с опцией AUTO_INCREMENT автоматически подбирается СУБД. Это избавляет пользователя БД от необходимости придумывать уникальный числовой ключ.

 

В таблица “Автор” столбцы относятся к следующим типам: “id” – INT UNSIGNED AUTO_INCREMENT; “Фамилия”, “Имя” и “Отчество” – к типу VARCHAR.

К каким типам данных можно отнести поля в таблицах, которые вы спроектировали в предыдущем задании?

Hosted by uCoz