Подробно о типах данных


Оглавление (нажмите, чтобы открыть):

Типы данных

Переменная в JavaScript может содержать любые данные. В один момент там может быть строка, а в другой – число:

Языки программирования, в которых такое возможно, называются «динамически типизированными». Это значит, что типы данных есть, но переменные не привязаны ни к одному из них.

Есть семь основных типов данных в JavaScript. В этой главе мы рассмотрим их в общем, а в следующих главах поговорим подробнее о каждом.

Число

Числовой тип данных ( number ) представляет как целочисленные значения, так и числа с плавающей точкой.

Существует множество операций для чисел, например, умножение * , деление / , сложение + , вычитание — и так далее.

Кроме обычных чисел, существуют так называемые «специальные числовые значения», которые относятся к этому типу данных: Infinity , -Infinity и NaN .

Infinity представляет собой математическую бесконечность ∞. Это особое значение, которое больше любого числа.

Мы можем получить его в результате деления на ноль:

Или задать его явно:

NaN означает вычислительную ошибку. Это результат неправильной или неопределённой математической операции, например:

Значение NaN «прилипчиво». Любая операция с NaN возвращает NaN :

Если где-то в математическом выражении есть NaN , то результатом вычислений с его участием будет NaN .

Математические операции в JavaScript «безопасны». Мы можем делать что угодно: делить на ноль, обращаться со строками как с числами и т.д.

Скрипт никогда не остановится с фатальной ошибкой (не «умрёт»). В худшем случае мы получим NaN как результат выполнения.

Специальные числовые значения относятся к типу «число». Конечно, это не числа в привычном значении этого слова.

Подробнее о работе с числами мы поговорим в главе Числа.

Строка

Строка ( string ) в JavaScript должна быть заключена в кавычки.

В JavaScript существует три типа кавычек.

  1. Двойные кавычки: «Привет» .
  2. Одинарные кавычки: ‘Привет’ .
  3. Обратные кавычки: `Привет` .

Двойные или одинарные кавычки являются «простыми», между ними нет разницы в JavaScript.

Обратные кавычки же имеют «расширенный функционал». Они позволяют нам встраивать выражения в строку, заключая их в $ <…>. Например:

Выражение внутри $ <…>вычисляется, и его результат становится частью строки. Мы можем положить туда всё, что угодно: переменную name или выражение 1 + 2 , или что-то более сложное.

Обратите внимание, что это можно делать только в обратных кавычках. Другие кавычки не имеют такого функционала встраивания!

Мы рассмотрим строки более подробно в главе Строки.

В некоторых языках, например C и Java, для хранения одного символа, например «a» или «%» , существует отдельный тип. В языках C и Java это char .

В JavaScript подобного типа нет, есть только тип string . Строка может содержать один символ или множество.

Булевый (логический) тип

Булевый тип ( boolean ) может принимать только два значения: true (истина) и false (ложь).

Такой тип, как правило, используется для хранения значений да/нет: true значит «да, правильно», а false значит «нет, не правильно».

Булевые значения также могут быть результатом сравнений:

Мы рассмотрим булевые значения более подробно в главе Логические операторы.

Значение «null»

Специальное значение null не относится ни к одному из типов, описанных выше.

Оно формирует отдельный тип, который содержит только значение null :

В JavaScript null не является «ссылкой на несуществующий объект» или «нулевым указателем», как в некоторых других языках.

Это просто специальное значение, которое представляет собой «ничего», «пусто» или «значение неизвестно».

В приведённом выше коде указано, что переменная age неизвестна или не имеет значения по какой-то причине.

Значение «undefined»

Специальное значение undefined также стоит особняком. Оно формирует тип из самого себя так же, как и null .

Оно означает, что «значение не было присвоено».

Если переменная объявлена, но ей не присвоено никакого значения, то её значением будет undefined :

Технически мы можем присвоить значение undefined любой переменной:

…Но так делать не рекомендуется. Обычно null используется для присвоения переменной «пустого» или «неизвестного» значения, а undefined – для проверок, была ли переменная назначена.

Объекты и символы

Тип object (объект) – особенный.

Все остальные типы называются «примитивными», потому что их значениями могут быть только простые значения (будь то строка или число, или что-то ещё). Объекты же используются для хранения коллекций данных или более сложных объектов. Мы разберёмся с ними позднее в главе Объекты после того, как узнаем больше о примитивах.


Тип symbol (символ) используется для создания уникальных идентификаторов объектов. Мы упоминаем здесь о нём для полноты картины, изучим этот тип после объектов.

Оператор typeof

Оператор typeof возвращает тип аргумента. Это полезно, когда мы хотим обрабатывать значения различных типов по-разному или просто хотим сделать проверку.

У него есть два синтаксиса:

  1. Синтаксис оператора: typeof x .
  2. Синтаксис функции: typeof(x) .

Другими словами, он работает со скобками или без скобок. Результат одинаковый.

Вызов typeof x возвращает строку с именем типа:

Последние три строки нуждаются в пояснении:

  1. Math – это встроенный объект, который предоставляет математические операции и константы. Мы рассмотрим его подробнее в главе Числа. Здесь он служит лишь примером объекта.
  2. Результатом вызова typeof null является «object» . Это неверно. Это официально признанная ошибка в typeof , сохранённая для совместимости. Конечно, null не является объектом. Это специальное значение с отдельным типом. Повторимся, это ошибка в языке.
  3. Вызов typeof alert возвращает «function» , потому что alert является функцией. Мы изучим функции в следующих главах, где заодно увидим, что в JavaScript нет специального типа «функция». Функции относятся к объектному типу. Но typeof обрабатывает их особым образом, возвращая «function» . Формально это неверно, но очень удобно на практике.

Итого

В JavaScript есть 7 основных типов.

  • number для любых чисел: целочисленных или чисел с плавающей точкой.
  • string для строк. Строка может содержать один или больше символов, нет отдельного символьного типа.
  • boolean для true / false .
  • null для неизвестных значений – отдельный тип, имеющий одно значение null .
  • undefined для неприсвоенных значений – отдельный тип, имеющий одно значение undefined .
  • object для более сложных структур данных.
  • symbol для уникальных идентификаторов.

Оператор typeof позволяет нам увидеть, какой тип данных сохранён в переменной.

  • Имеет две формы: typeof x или typeof(x) .
  • Возвращает строку с именем типа. Например, «string» .
  • Для null возвращается «object» – это ошибка в языке, на самом деле это не объект.

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

Основные типы данных в базе данных

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

Типы данных в базе данных

Некоторые языки программирования требуют, чтобы программист определял тип данных переменной, прежде чем назначать ему значение. Другие языки могут автоматически устанавливать тип данных переменной, когда исходные значения вводятся в переменную. Например, если var1 создается со значением «1.25», то переменная будет создана как тип данных с плавающей точкой. Если ей присвоено значение Hello world!, то присваивается строковый тип. Большинство языков программирования позволяют каждой переменной хранить один тип заданных значений. Если значение переменной уже установлено как целое число, назначение строковых данных может привести к тому, что информация будет преобразована в целочисленный формат.

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

Таблица

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

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

Применение таблиц

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

, а также теги

и

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

, используемый для определения ячеек в строке заголовка. При наличии таблицы на веб-странице большие объемы данных могут отображаться в удобном для чтения формате. На начальной стадии развития таблицы HTML использовались для построения общей компоновки веб-страниц. Однако каскадные таблицы стилей (CSS) со временем заменили этот инструмент и стали предпочтительным средством проектирования макетов.

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

База данных

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

Почти все сайты электронной коммерции используют различные типы данных в базе данных для хранения инвентаря продукции и информации о клиентах. Эти сайты используют систему управления базами (или СУБД), такую ​​как Microsoft Access, FileMaker Pro или MySQL. Контент веб-сайта, сохраненный в ней, можно легко искать, сортировать и обновлять. Такая гибкость важна для ресурсов электронной коммерции и других динамических сайтов.

История развития

Ранние базы данных были относительно «плоскими» — это означает, что они ограничены простыми строками и столбцами, выглядели как обычная электронная таблица. Однако современные реляционные базы данных (РБД) позволяют получать доступ, обновлять и искать информацию на основе соотношения значений, хранящихся в разных таблицах. РБД также могут генерировать запросы, которые обрабатывают несколько баз. Хотя ранние базы данных могли хранить только текстовые или числовые значения, современные ресурсы позволяют пользователям держать, в том числе, звуковые клипы, изображения и видео.

Типы реляционных баз данных

Реляционная база данных — это модель информационной базы, которая хранит информацию в таблицах. Подавляющее большинство ресурсов, используемых в современных приложениях, являются реляционными, поэтому термины «база данных» и «реляционная база данных» часто используются как синонимы. Аналогичным образом, большинство систем управления баз (СУБД) являются системами управления реляционными (RDBMS). Другие типы моделей баз данных включают плоские файловые и иерархические структуры, которые используются редко.

В терминологии информатики строки иногда называют «кортежами», столбцы — «атрибутами», а сами таблицы — «отношениями». Таблицу можно представить в виде матрицы строк и столбцов, где каждое пересечение строки и столбца содержит определенное значение.

Организация информации в РБД

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

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

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

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

При посещении веб-сайта этот инструмент может предоставить форму, которая позволяет вводить данные, такие как платежный адрес или регистрационная информация. Каждое однострочное текстовое поле в веб-форме называется «окном ввода» и определяется в HTML. Поля с более чем одной строкой называются «текстовыми областями», создаются с помощью тега

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

Базы данных также включают поля. Каждая строка или «запись» в таблице может содержать несколько элементов. Столбцы таблицы определяют, какие окна доступны в каждой строке. Поэтому конкретная комбинация столбцов и строк (например, Row: 101, Column: Name) определяет конкретное поле. Отдельные части можно искать и изменять с помощью стандартных SQL-запросов.

Строка

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

При отображении значений в формате таблицы верхнюю строку часто называют «Заголовок таблицы». Ячейки в строке обычно содержат имя каждого поля.

Pascal. Типы данных


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

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

По способу представления и обработки типы данных бывают:

  • простые
  • структурированные
  • указатели
  • объекты
  • процедуры

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

Целочисленный тип

Сюда входят несколько целочисленных типов, которые различаются диапазоном значений, количеством байт отведённых для их хранения и словом, с помощью которого объявляется тип.

Тип Диапазон Размер в байтах
shortint -128…127 1
integer -32 768…32 767 2
longint -2 147 483 648…2 147 483 647 4
byte 0…255 1
word 0…65 535 2

Объявить целочисленную переменную можно в разделе Var, например:

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

Вещественный тип

В Паскале бывают следующие вещественные типы данных:

Тип Диапазон Память, байт Количество цифр
Real 2.9e-39 … 1.7e38 6 11-12
Single 1.5e-45 … 3.4e38 4 7-8
Double 5.0e-324 …1.7e308 8 15-16
Extended 3.4e-4932 … 1.1e493 10 19-20
Comp -9.2e63 … (9.2e63)-1 8 19-20

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

ln(x) – натуральный логарифм;

sqrt(x) – квадратный корень;

Логический тип

Переменная, имеющая логический тип данных может принимать всего два значения: true (истина) и false (ложь). Здесь истине соответствует значение 1, а ложь тождественная нулю. Объявить булеву переменную можно так:

Над данными этого типа могут выполняться операции сравнения и логические операции: not , and, or, xor.

Символьный тип

Символьный тип данных – это совокупность символов, используемых в том или ином компьютере. Переменная данного типа принимает значение одного из этих символов, занимает в памяти компьютера 1 байт. Слово Char определяет величину данного типа. Существует несколько способов записать символьную переменную (или константу):

  1. как одиночный символ, заключенный в апострофы: ‘W’, ‘V’, ‘п’;
  2. указав код символа, значение которого должно находиться в диапазоне от 0 до 255.
  3. при помощи конструкции ^K, где K – код управляющего символа. Значение K должно быть на 64 больше кода соответствующего управляющего символа.

К величинам символьного типа данных применимы операции отношения и следующие функции:

Succ(x) — возвращает следующий символ;

Pred(x) — возвращает предыдущий символ;

Ord(x) — возвращает значение кода символа;

Chr(x) — возвращает значение символа по его коду;

UpCase(x) — переводит литеры из интервала ‘a’..’z’ в верхний регистр.

Для плодотворной работы с символьным типом рекомендую пользоваться таблицей ASCII.

Строковый тип

Строка в Паскале представляет собой последовательность символов заключенных в апострофы, и обозначается словом String. Число символов (длина строки) должно не превышать 255. Если длину строки не указывать, то она автоматически определиться в 255 символов. Общий вид объявления строковой переменной выглядит так:

Каждый символ в строке имеет свой индекс (номер). Индекс первого байта – 0, но в нем храниться не первый символ, а длина всей строки, из чего следует, что переменная этого типа будет занимать на 1 байт больше числа переменных в ней. Номер первого символа – 1, например, если мы имеем строку S=‘stroka’, то S[1]=s;. В одном из следующих уроков строковый тип данных будет рассмотрен подробнее.

Перечисляемый тип данных

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

Type Day=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Переменная A может принимать лишь значения определенные в разделе Type. Также можно объявить переменную перечисляемого типа в разделе Var:

Var A: (Monday, Tuesday);

К данному типу применимы операции отношения, при этом заранее определенно, что Monday = .. ;

Данные. Понятие типа данных;

Данные. Алгоритм, реализующий решение некоторой конкретной задачи, всегда работает с данными. Данные — это любая информация, представленная в формализованном виде и пригодная для обработки алгоритмом.

Данные, известные перед выполнением алгоритма, являются на­чальными, исходными данными. Результат решения задачи — это ко­нечные, выходные данные. В задачах нахождения максимума из после­довательности чисел и их произведения исходными данными являются числа, а результатами (выходными данными) — соответственно с и М.

Данные делятся на переменные и константы.

Переменные — это такие данные, значения которых могут изме­няться в процессе выполнения алгоритма.

Например, для алгоритма вычисления площади круга необходимо объявить две переменные: переменную R, в которую будет заноситься значение радиуса окружности, и переменную S для вычисления площа­ди круга по формуле

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

Идентификатор (по определению) представляет собой последовательность букв и цифр, начинающаяся с буквы.

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

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


К основным базовым типам относятся:

целый (INTEGER) — определяет подмножество допустимых значений из множества целых чисел;

вещественный (REAL) — определяет подмножество допустимых значений из множества вещественных чисел;

логический (BOOLEAN) — множество допустимых значений — истина и ложь;

символьный (CHAR) — цифры, буквы, знаки препинания и пр.

Тип INTEGER задает подмножество целых чисел, мощность которого зависит от такой характеристики ЭВМ, как размер машинного сло­ва. Если для представления целых чисел в машине используется п раз­рядов (причем один из них отводится под указание знака числа), то до­пустимые числа должны удовлетворять условию -2 n-1 2 n -1 . Считается, что все операции над данными этого типа выполняются точ­но и соответствуют обычным правилам арифметики. Если результат выходит за пределы допустимых значений, то вычисления будут пре­рваны. Такое событие называется переполнением. Четыре арифметические операции считаются стандартными: сложение (+), вычитание (-), умножение (*) и деление (/). Для целых чисел может быть определен дополнительный стандартный тип — целое без знака, задающий подмножество целых положи­тельных чисел. Если для представления целых без знака используется п разрядов, то переменным такого типа можно присваивать значения, удовлетворяющие условию

Тип REAL обозначает подмножество вещественных чисел, границы, изменения которых также определяются характеристиками конкретной ЭВМ. И если считается, что арифметика с данными типа INTEGER дает точный результат, то допускается, что аналогичные действия со значениями типа REAL могут быть неточными, в пределах ошибок округлений, вызванных вычислениями с конечным числом цифр. Это принципиальное различие между типами REAL и INTEGER. Два значения базового типа BOOLEAN обозначаются идентификаторами TRUE FALSE. В базовый тип CHAR входит множество печатаемых символов и символов-разделителей в соответствии с кодом ASCII.

Приведем пример представления числовой информации в различных типах данных применительно к ЭВМ с 16-разрядным машинным словом.

Пусть задано число 12345.

Если этой константе поставлен в соответствие тип INTEGER, то внутренняя стандартная форма представления в памяти (для обработки в двоичной арифметике) — 0011000000111001. Объем — 2 байт, 16 двоичных разрядов. Если для константы определен тип REAL, то число представляется в форме с плавающей точкой и занимает объем 4 байта, 32 двоичных разряда. И, наконец, если число рассматривается как последовательность символов типа CHAR (символьное представление), то каждая его цифра представляется байтом в соответствии с кодом ASCII. Представление 12345 есть —00110001 00110010 00110011 00110100 00110101. Объем — 5 байтов. Переменные и типы данных вводятся для того, чтобы использовать их в различных алгоритмах обработки. Следовательно, нужно иметь еще и множество операций, которые можно применять к данным того или иного типа. Так, к переменным типа REAL и INTEGER применимы арифметические операции, к переменным типа BOOLEAN — логиче­ские (см. п. 1.3), к символьным переменным применима операция конка­тенации — «соединения» символов. Операции отношения или сравне­ния применяются к данным любого типа, но правила их применения различны. Рассмотрим, например, результат применения некоторых операций к значениям 123 и 45 в зависимости от их типа:

Знак Операция Запись Типданных Результат
+ Сложение 123+45 INTEGER
Конкатенация «123»+ «45» CHAR «12345»
> Больше 123 > 45 INTEGER Истина (TRUE)
«123»> «45» CHAR Ложь (FALSE)

Таким образом, тип данных — это такая характеристика данных, которая, с одной стороны, задает множество значений для возможного изменения данных и, с другой стороны, определяет множество операций, которые можно к этим данным применять, и правила выполнения этих операций. До сих пор мы говорили о переменных, хранящих только одно значение, и рассматривали возможности различного представления и использования этого значения при решении конкретных задач. На самом деле, огромное количество алгоритмов требует одновременного хранения в памяти целых наборов однородных объектов, при­чем длина этих наборов может быть заранее неизвестна. Например, пусть необходимо обрабатывать данные о среднесуточной температуре за год для вычисления максимальной и минимальной температур, среднемесячной и среднегодовой температуры и т.п. Для реализации таких алгоритмов необходимо обеспечить хранение каждого отдельного значения среднесуточной температуры. Если иметь при этом в виду переменные базового типа Real, то таких переменных потребова­лось бы 365.

Рассмотрим другой пример. Пусть решение некоторой задачи тре­бует вводить и обрабатывать следующие данные о студентах: фамилия, имя, отчество, дата рождения, год поступления в вуз, номер студенче­ского билета. При этом алгоритм должен обеспечить возможность ввода произвольного количества данных. Здесь речь идет об обработке одно­родных объектов, которые можно условно назвать «Информация о сту­денте», представляющих собой совокупность разнородных данных или атрибутов (фамилия, имя и т.д.). Для решения подобных задач применяются структуры данных, поддерживаемые множеством структурированных типов данных.

Структурированные типы описывают наборы однотипных или разнотипных данных, с которыми алгоритм должен работать как с од­ной именованной переменной.

Массив. Наиболее широко известная структура данных — массив. Массив представляет собой упорядоченную структуру однотипных данных, которые называются элементами массива. Структура данных типа массив подходит, например, для решения задачи обработки среднесуточных температур, описанной выше. Доступ к каждому отдельному элементу массива осуществляется с помощью индекса — в общем случае порядкового номера элемента в массиве. Массивы могут быть как одномерными (адрес каждого элемента определяется значением одного индекса), так и многомерными (адрес каждого элемента определяется значением нескольких индексов). Рассмотрим задачу сортировки (расположения) по возрастанию N целых чисел. Для ее решения, во-первых, необходимо обеспечить ввод всех N чисел, а затем применить один из известных методов сортиров­ки. Любой метод сортировки предполагает неоднократный проход всех или части чисел, поэтому числа целесообразно организовать в массив.

Рис. 4. Сортировка массива из 5 элементов

Метод сортировки посредством простого выбора предполагает циклический просмотр элементов массива, начиная с i-го (i= 1,2. N— 1), поиск минимального элемента и перестановку найденного минимально­го элемента с i-м. За N — 1 проход по массиву (элемент с номером N останется на своем месте) числа будут отсортированы (рис. 1.4).

Подобный алгоритм, очевидно, состоит из трех этапов:

• ввод элементов массива;

• цикл обработки массива;

• вывод отсортированных чисел из массива.

Цикл обработки массива представляет собой совокупность двух «вложенных» циклов: первый цикл (с переменной цикла i) обеспечивает «внешний» проход по элементам массива, начиная с 1-го и кончая элементом с номером N — 1, который должен заканчиваться на каждом шаге перестановкой элементов; второй цикл (с переменной циклау) реа­лизует поиск минимального элемента среди элементов с номерами от i + 1 до N (т.е.у меняется от i + 1 до N). Блок-схема предлагаемого алгоритма сортировки представлена на рис. 5.

Запись. Наиболее общий метод получения структурных типов за­ключается в объединении элементов произвольных типов. Причем сами эти элементы могут быть в свою очередь структурными. Примером данных такого типа может быть объект «Информация о студенте», рас­смотренный выше. В математике это могут быть комплексные числа, состоящие из двух вещественных чисел, или координаты точки, определяемые двумя или более (в зависимости от размерности пространства) числами.

Рис. 5. Блок-схема алгоритма сортировки элементов массива по возрастанию

Множество значений, определенное таким структурным типом, со­стоит из всех возможных комбинаций значений, относящихся к каждо­му из множеств значений элементов структуры. Таким образом, число таких комбинаций равно произведению числа элементов в каждом из составляющих множеств. При обработке данных структурные типы, описывающие объекты, обычно встречаются в файлах или базах данных, поэтому к данным та­кой природы стало широко применяться слово запись. Элементы записи называются полями. Величины типа запись могут быть представлены графически. На рис. 6 изображены следующие переменные:

z типа Complex — объект, описывающий комплексное число, с по­лями re и im типа Real;

d типа Date — объект, описывающий дату, с полями day, month и year со значениями из подмножеств типа Integer (например, day может быть целым числом в интервале от 1 до 31);

ртипа Person — объект «Информация о студенте» с полями family, firstname, secondname, Date, year, num.

Таблица 1.2. Типы и структуры данных в некоторых языках

SQL (типы данных): таблица

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

Тип данных – что это?

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

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

Классификация типов данных

Группировка данных по их типу возникла давно и была вызвана необходимостью структурирования информации для более удобной обработки. В настоящее время основу существующих типов данных образуют два: символьный и числовой.

На их базе была разработана современная классификация, включающая в себя указатели, логический, целочисленный, числовой с плавающей точкой и строковый типы данных. SQLклассификация полностью охватывает все вышеперечисленное. Однако для некоторых современных СУБД существуют дополнительные надстройки. К ним относятся Oracle и MySQL.

Базовые типы данных

Использующиеся при создании атрибутов таблиц, отвечающих стандартам языка SQL, типы данных подразделяются на 4 класса:

  • строковые значения;
  • дроби;
  • целочиселенные значения;
  • значения даты и времени.

Строковый тип данных

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

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

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

Аналогично предыдущему типу позволяет хранить строки длиной до 255 символов. Однако отличие от CHAR в том, что для хранения значения данного типа выделяется требуемое количество памяти. То есть для строки, состоящей из 5-ти символов, потребуется 6 байт памяти. В первом же случае память для значения будет выделена согласно указанному параметру.

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

Используется для хранения текстовой информации, размер которой не превышает 65 535 букв.

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

Был разработан на базе типа ТЕХТ, но позволяет хранить больше данных за счет увеличенного размера до 16 777 215 букв или символов.


Используется для сохранения в базе электронных документов, размер которых не превышает отметку в 16 777 215 знаков.

Функционально аналогичен предыдущим типам, но с увеличенным объемом памяти до 4 гигабайт.

Позволяет помещать в базу данные больших объемов (4 294 967 295 символа).

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

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

Таблица дробных типов данных

Дробные SQL типы данных используются для хранения чисел с плавающей точкой. На практике, как правило, задают различные финансовые показатели. В зависимости от необходимой точности применяют один из трех представленных:

Позволяет содержать дробные числа указываемой точности d.

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

Хранение дробных значений в виде строк.

Например, в банковских расчетах точность дробной части достигает значение в 8-мь или 10-ть знаков. Первые два типа не могут быть задействованы в данной области.

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

Целочисленный тип данных

Целые числа – отдельная группа чисел, образующая один из основных классов. Целочисленные SQL типы данных основываются на использовании базового типа INTEGER с некоторым расширением его свойств.

Хранение целочисленных значений, образующих диапазон [-2 31 ; 2 31 -1]

Служит для хранения чисел в диапазоне от -128 до 127

Характеризуется увеличенным диапазоном хранимых значений в размере от -32 768 до 32 767

Используется для хранения чисел размерностью от -2 2 3 до 2 2 3 -1

Охватывает диапазон целочисленных значений, начиная с -2 63 и заканчивая 2 63 -1

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

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

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

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

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

Главное предназначение — хранение даты в формате ГОД-МЕСЯЦ-ДЕНЬ (“ГГГГ-MM-ДД” или «уууу-mm-dd» ). Обычно значения разделены через «-», однако в качестве разделителя может быть задействован любой символ, кроме цифр.

Позволяет заносить в ячейку таблицы временные значения. Все значения задаются форматом «hh:mm:ss»

Объединяет функции предыдущих двух типов. Формат хранения представлен следующим образом: «уууу-mm-dd hh:mm:ss».

Сохраняет дату и время, исчисляемое количеством секунд, прошедших начиная с полуночи 1.01.1970 года и до заданного значения.

Используется для хранения годовых значений в двух- или четырехзначном формате.

Что ещё необходимо знать?

Все эти типы данных детально систематизированы компанией Microsoft. SQL типы данных ею разработаны более подробно.

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

Специальный указатель – NULL

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

Указатель NULL не имеет типа, а просто указывает на пустое значение в таблицах баз данных. Поэтому он может быть скомбинированным с любым из вышеперечисленных типов.

Узнаем больше о типах данных языка паскаль: Integer, Real, Char, String, Boolean

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

Переменные могут содержать совершенно различные данные. Например, в одной переменной может храниться чье-то имя, в другой – год рождения, в – третьей – рост и т.д. Такие разные данные и представляются компьютером по-разному. Имя – это строка символов, год рождения – целое число, рост – вещественное число (например, рост равен 1.72 м).

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

Ниже перечислены основные стандартные типы данных языка Турбо-Паскаль:

  1. INTEGER – целочисленные данные в диапазоне от –32768 до 32767, в памяти занимают два байта;
  2. REAL – вещественные числа в диапазоне от 2.9´10 -39 (2.9E-39) до 1.7´10 38 (1.7E38), занимают шесть байт;
  3. CHAR – отдельный символ, один байт;
  4. STRING – строка символов, количество символов в строке (длина строки) ограничивается числом N в квадратных скобках, занимает N+1 байт (если число N не указано, то максимальная длина строки равна 255 символов);
  5. BOOLEAN – логический тип, имеет два значения: FALSE (ложь) и TRUE (истина), один байт.

Заметим, что типы INTEGER, CHAR, и BOOLEAN относятся к порядковым типам (ordinal types).

Как Вы, наверное, помните, при описании переменной после ее имени ставится двоеточие, а затем указывается тип. Если несколько переменных имеют одинаковый тип, их имена можно перечислить через запятую.

Пример описания переменных различных типов:

#3 — Типы данных

Этот видеоурок мы посвятим типам данных в языках программирования, которые будут рассмотрены на примерах языков python и javascript.

Виды типов данных

Данные в языках программирования бывают разные.


Язык программирования python имеет типы данных:

  • a) char — символьный тип данных;
  • b) int — целочисленный тип данных;
  • c) float — тип данных с плавающей запятой;
  • d) double — тип данных с плавающей запятой двойной точности;
  • e) bool — логический тип данных.

В языке javascript используются следующие типы данных:

  • a) srting — тип данных «строка»,
  • b) number — тип данных «число»,
  • c) boolean — логический тип данных,
  • d) undefined — тип данных, значения которых не определены,
  • e) null — тип данных с «пустыми» значениями,
  • f) object — тип данных, хранящих свойства и методы.

Рассмотрим некоторые из них.

Тип данных — «строка»

В javascript строкой — string — называют фрагмент текста (последовательность символов). Строка может состоять из букв, чисел, знаков(например, точки и запятые) или пробелов, то есть из символов. Обычно их записывают в одинарных кавычках (но в js можно и в двойных), начинаться и заканчиваться строка должна кавычками одного вида.

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

В некоторых языках программирования есть специальный тип данных для одного символа. Например, в языке С это «char».

Тип данных — «число»

Единый тип «число» используется как для целых, так и для дробных чисел.

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

  • a) int — целые, то есть числа без дробной части,
  • b) float — вещественные, дробные числа с десятичной точкой,
  • c) double — тип данных с плавающей запятой двойной точности,
  • d) number — числовые данные в js.

Целые числа хороши для подсчета чего-либо, а вещественные — для измерения таких свойств, как вес.

Булевый (логический) тип данных — boolean.

Истина или ложь? Компьютеры принимают решения о том, что делать дальше, задавая вопросы и анализируя ответы — «да» или «нет». Вопросы, на которые есть лишь два варианта ответа, называют булевыми (логическими) выражениями.

Булевый тип может принимать одно из двух значений — true (истина) или false (ложь). Программы принимают решения о том, что делать дальше, сравнивая переменные, числа и строки с помощью булевых выражений — тех, что возвращают либо true, либо false.

Бывают также такие типы данных, как null, undefined, object (объект) — в javascript или list (список), tuple (кортеж), dict (словарь) — в python. Но для понимания общих основ программирования вам будет достаточно знания трех типов данных: «число», «строка» и булево значение.

Преобразование типов данных

Не все типы данных в программе совместимы. Порой один тип нужно преобразовать в другой, иначе возникнет ошибка.
В javascript оператор typeof возвращает тип аргумента. В python, чтобы узнать тип, применяют команду type.

Приятного всем просмотра! Учитесь с удовольствием!

1. Базовые типы данных

1. Базовые типы данных

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

(О виртуальных типах данных мы поговорим чуть позже, посвятим этой теме отдельную главу.)

Базовые типы данных – это любые типы данных, заданные в системах управления базами данных изначально, т. е. присутствующие там по умолчанию (в отличие от пользовательского типа данных, который мы проанализируем сразу после прохождения типа данных базового).

Прежде чем перейти к рассмотрению собственно базовых типов данных, перечислим, каких типов данные вообще бывают:

1) числовые данные;

2) логические данные;

3) строковые данные;

4) данные, определяющие дату и время;

5) идентификационные данные.

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

1. В числовом типе данных выделяют:

1) Integer. Этим ключевым словом обычно обозначают целый тип данных;

2) Real, соответствующий вещественному типу данных;

3) Decimal (n, m). Это десятичный тип данных. Причем в обозначении n – это число, фиксирующее общее количество знаков числа, а m показывает, сколько символов из них стоит после десятичной точки;

4) Money или Currency, введен специально для удобного представления данных денежного типа данных.

2. В логическом типе данных обычно выделяют только один базовый тип, это Logical.

3. Строковый тип данных насчитывает четыре базовых типа (имеются в виду, разумеется, наиболее распространенные):

1) Bit (n). Это строки бит с фиксированной длиной n;

2) Varbit (n). Это тоже строки бит, но с переменной длиной, не превышающей n бит;

3) Char (n). Это строки символов с постоянной длиной n;

4) Varchar (n). Это строки символов, с переменной длиной, не превышающей n символов.

4. Тип дата и время включает в себя следующие базовые типы данных:

1) Date – тип данных даты;

2) Time – тип данных, выражающих время суток;


3) Date-time – тип данных, выражающий одновременно и дату, и время.

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

Необходимо заметить, что все базовые типы данных могут иметь варианты различного по диапазону представления данных. Приведем пример: вариантами четырехбайтового типа данных integer могут быть восьмибайтовые (bigint) и двухбайтовые (smallint) типы данных.

Поговорим отдельно о базовом типе данных GUID. Этот тип предназначен для хранения шестнадцатибайтовых значений так называемого глобального уникального идентификатора. Все различные значения этого идентификатора генерируются автоматически при вызове специальной встроенной функции NewId (). Это обозначение происходит от полного английского словосочетания New Identification, что в переводе буквально и означает «новое значение идентификатора». Каждое генерируемое на конкретном компьютере значение идентификатора уникально в пределах всех производимых компьютеров.

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

Такие GUID-идентификаторы могут быть использованы и разработчиками баз данных наравне с другими базовыми типами.

Промежуточное положение между типом GUID и другими базовыми типами занимает еще один специальный базовый тип – тип счетчика.

Для обозначения данных этого типа используется специальное ключевое слово Counter (x 0, ?x), что в буквальном переводе с английского и означает «счетчик». Параметр x 0 задает начальное значение, а ?x – шаг приращения.

Значения этого типа Counter обязательно являются целочисленными.

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

Значения данных типа счетчик генерируются автоматически при вставки строк. Причем эта генерация проводится без повторений, так что счетчик всегда будет уникально идентифицировать каждую строку. Но это создает некоторые неудобства при работе с таблицами, содержащими данные типа счетчик. Если, например, данные в отношении, заданном таблицей, изменятся и их придется удалить или поменять местами, значения счетчика легко могут «спутать карты», особенно если работает неопытный программист. Приведем пример, иллюстрирующий подобную ситуацию. Пусть дана следующая таблица, представляющая какое-то отношение, в которую введены четыре строки:

Счетчик каждой новой строке автоматически дал уникальное имя.

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

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

Обычно счетчик используется как суррогатный, т. е. искусственный ключ в таблице.

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

1 год = 365 дней * 24 ч * 60 с * 60 с 25 с.

1 секунда > 2 -25 год.

2 4*8 значений / 1 значение/секунду = 2 32 с > 2 7 год > 100 лет.

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

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

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

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

Числовые типы данных используются для представления точных и приближенных чисел. При задании числовых типов данных рассматриваются такие их характеристики, как точность и масштаб представления. Точность представления данных числовых типов определяется как общее количество цифр в представлении числа (двоичных или десятичных, в зависимости от представления). Масштаб определяет количество десятичных цифр в дробной части представления числа. Для точных чисел масштаб = 0.

Конкретное представление чисел в памяти машины определяется реализацией.

Для представления точных чисел используются следующие типы данных:

smallINT — короткое целое со знаком; точность представления — обычно 15 двоичных цифр, масштаб — 0. Это означает, что область хранения данных такого типа — 2 байта, диапазон представления — от -32 768 до 32 767 (от -2 15 до 2 15 — 1).

INT (или INTEGER) — целое со знаком; точность представления — обычно 31 двоичная цифра, масштаб — 0. Это означает, что область хранения данных такого типа — 4 байта, диапазон представления — от -2 147 483 648 до 2 147 483 647 (от -2 31 до 2 31 — 1).

decimal[(р[,s])] (или dec[(p[,sJ)J) — десятичное число; представляется в виде десятичного числа с неявно заданным положением десятичной запятой, определяемым значениями точности р и масштаба s числа. Точность р задает общее количество цифр в записи числа, р decimal эквивалентно заданию decimal (18,0).

Область хранения данных числовых типов также зависит от реализации. Диапазон представления чисел зависит от заданных значений точности и масштаба.

NUMERic[(p[,s])] (или NUMl(p[,s])J) — полностью эквивалентно DECIMAL.

Примечание. В СУБД MS SQL Server для представления точных чисел используются еще и следующие типы данных. bit — целый тип данных; допустимые значения 0 и 1. Область хранения — целое число байтов (например, если в таблице определены до 8 колонок с типом данных BIT, SQL Server может хранить значения всех этих колонок в одном байте).

TINYINT — целое без знака; область хранения — 1 байт; диапазон представления — от 0 до 255.

BIGINT — длинное целое со знаком; область хранения — 8 байтов; диапазон представления — от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 (от -263 до 263 — 1).

SMALLMONEY — целое число со знаком для представления денежных величин; в записи числа младшие 4 цифры определяют дробную часть денежной единицы (центы, копейки, . — в зависимости от используемой денежной единицы); область хранения — 4 байта; диапазон представления — от -214 748.3648 до 214 748.3647. money — целое число со знаком для представления денежных величин, в записи которого также младшие 4 цифры определяют дробную часть денежной единицы; область хранения — 8 байтов; диапазон представления — от -922 337 203 685 477.5808 до 922 337 203 685 477.5807.

В СУБД Oracle для представления числовых типов используется еще И ТИП NUMBER.

Так, числовым типам данных стандарта SQL-92 smallint, integer, INT соответствует тип данных NUMBER.

Типам данных numeric|(р| ,s|)| и decimal|(р|,s|)| соответствует NUMBER [(р[,S])].

Тип данных money в СУБД Oracle отсутствует, однако его можно представить, например, как number ( 19 , 4 ), соответственно SMALLMONEY — как NUMBER (10,4).

Для представления приближенных чисел используются следующие типы данных.

FLOAT(n) — вещественное число обычной или двойной точности в зависимости от того, как задано значение п; это значение определяет количество двоичных цифр в записи мантиссы числа. В общем случае 1 -308 до 1,79- 10 +308 .

real — вещественные числа обычной точности; эквивалентно заданию FLOAT(24). Абсолютная величина числа может быть представлена как 0 или в диапазоне от 1,18- 10 -38 до 3,40 • 10 +38 .

double precision — вещественные числа двойной точности; эквивалентно заданию FLOAT(53).

Примечание. В СУБД Oracle для представления вещественных чисел используются следующие типы данных:

FLOAT(n) — точность представлена в диапазоне 1 NOT null. Значение числовой константы (-0) эквивалентно значению 0.

Целая константа определяет целое значение со знаком или без знака. Целая константа не содержит десятичной точки. Тип целой константы определяется ее значением. Так, целая константа имеет тип integer, если ее значение лежит в диапазоне 4-байтного значения, или тип decimal, если ее значение выходит за диапазон значений целочисленного типа.

64 -15 +100 32767 720206 12345678901

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

25.5 (точность константы 3, масштаб 1) +37589.3333333333 1000. -15.

Если в записи двух последних констант точка не будет указана, тогда эти константы будут иметь тип INT.


Вещественная константа (или константа с плавающей запятой) определяет вещественное число, в записи которого используются два числа, разделенных буквой Е. В записи первого числа могут быть указаны знак и десятичная точка. Второе число представляется в виде целого числа, которому может предшествовать знак. Тип данных вещественной константы — вещественное число двойной точности. Значением константы является произведение первого числа на 10 в степени, равной второму числу в записи константы.

15Е1 (значение константы 15-10 1 = 150) 2 .Е5 2.2Е-1 +5Е+2

Строковые типы данных

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

Символьная строка — это последовательность символов, представляющих текстовые (символьные) данные. Длина строки представляет собой количество символов в последовательности. Если длина строки равна нулю, значение такой строки определяется как пустая строка. Пустая строка не эквивалентна строке, имеющей NULL-значение.

В зависимости от способа кодирования символов рассматривают обычные символы и Unicode-символы (или символы национальных алфавитов).

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

CHAR[(len)] — символьные строки фиксированной длины, заданной параметром len — количеством символов в строке. Значение len лежит в диапазоне 1 bit varying[(len)J — битовые строки переменной длины. Значение len задает максимально возможную длину строки и лежит в диапазоне 1 varbinary| (len) I — битовые строки переменной длины. Значение len задает максимально возможную длину строки и лежит в диапазоне 1 date, time, timestamp, interval. Однако в текущих реализациях синтаксис и семантика этих типов могут различаться, и каждая СУБД предоставляет свои средства для представления данных типа даты—время и обработки этих данных. Представление даты и времени:

date — представление даты; значение, состоящие из трех частей: год (YEAR), месяц (MONTH) И день (DAY);

time [(n)] — представление времени; значение, представленное также в виде трех частей: часы (HOUR), минуты (MINUTE) и секунды (SECOND). При задании секунд может быть указана дробная часть; п определяет количество цифр в дробной части; если не указано — предполагается значение 0;

timestamp [ (п) ] — представление даты и времени; содержит поля год (YEAR), месяц (MONTH), день (DAY), часы (HOUR), минуты (MINUTE) и секунды (SECOND). При задании секунд также может быть указана дробная часть: п определяет количество цифр в дробной части. Если п не указано, по умолчанию предполагается значение 6.

Расположение соответствующих частей в представлении даты и времени считается упорядоченным в соответствии со следующим перечислением: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND. Интервалы. Интервальный тип задается следующим образом:

INTERVAL квалификатор интервала.

Квалификатор_интервала представляется следующим образом: название_поля | начало_интервала ТО конеи,_интервала; название_поля, начало_интервала, конец_интервала это одно из слов из упорядоченной последовательности YEAR, MONTH, DAY, HOUR, MINUTE, SECOND; при этом значение начало_интервала должно обязательно предшествовать значению конец_интервала.

Стандарт SQL поддерживает два типа интервалов: интервалы год-месяц (year—month) и интервалы день—время (day-time). Интервал год—месяц содержит только указание года (YEAR) и месяца внутри года (MONTH; допустимые значения 0—11). Интервал день—время содержит указание дня (DAY), часа внутри дня (HOUR; допустимые значения 0—23), минуты внутри часа (MINUTE; допустимые значения 0—59) и секунды внутри минуты (SECOND); допускается задание дробной части секунд.

INTERVAL YEAR ТО MONTH INTERVAL TIME INTERVAL DAY TO MINUTE

Примечание. В СУБД MS SQL Server интервальный тип не поддерживается.

Для представления даты и времени используются типы данных date, time и следующие дополнительные типы данных.

DATETIME2 [ (п) ] — соответствует типу данных timestamp стандарта SQL-92.

datetime — совместное представление даты и времени, время представляется в 24-часовом формате; область хранения — 8 байтов. Диапазон представления даты — от 1 января 1753 года до 31 декабря 9999 года; диапазон представления времени — от 00:00:00 до 23:59:59.997; точность представления времени — дробная часть секунды представляется в виде 0.000, 0.003 или 0.007 сек. smalldatetime — совместное представление даты и времени, время представляется в 24-часовом формате; область хранения — 4 байта. Диапазон представления даты — от 1 января 1900 года до 6 июня 2079 года; диапазон представления времени — от 00:00:00 до 23:59:59; точность представления времени — 1 мин. Данный тип несовместим со стандартом ANSI или ISO 8601.

В СУБД Oracle поддерживаются интервальные типы данных и не поддерживается тип данных TIME. Представление даты и времени задается одним типом данных DATE, диапазон представления которого находится в пределах от 1 января 4712 года до н.э. до 31 декабря 4712 года нашей эры. Точность представления времени — 1 секунда.

Константы для представления даты и времени

Стандарт SQL определяет следующие правила задания констант типа даты—времени:

time ‘ часы ‘.минуты: секунды. дробная часть‘ ;

TIMESTAMP ‘ год -месяц -день пробел часы:минуты: секунды. дроб-ная_часть’ .

Дробная часть секунд при задании времени не обязательна и может отсутствовать.

DATE’2014-6-20 ‘ TIME’12:30:45 ‘ TIMESTAMP’2014-6-20 12:30:45’

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

CURRENTDATE CURRENT_TIME CURRENT_TIMESTAMP

Константы для задания интервала имеют следующий вид: а) задание константы для интервала типа год—месяц:

INTERVAL [знак] ’год-месяцквалификатор интервала год_месяц

где год—месяц задается в виде: год [год-]месяц б) задание константы для интервала типа день—время:

interval Iзнак]’ день—времяквалификатор интервала день_месяц

где день—время задается следующим образом:

Введение в использование типов данных и свойств полей

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

В этой статье

Общие сведения

Иногда типы данных могут показаться неочевидными, например в поле с типом данных «Текст» могут храниться данные, состоящие из текста и чисел. Но в поле с типом данных «Число» могут храниться только числовые данные. Поэтому вам нужно знать, какие свойства используются для каждого типа данных.

Тип данных поля определяет много других важных характеристик поля, в частности:

форматы, которые можно использовать в поле;

максимальный размер значения в поле;

способ использования поля в выражениях;

возможность индексирования поля.

В зависимости от способа создания нового поля тип данных поля может быть задан заранее или его можно выбрать. Например, если при создании поля в режиме таблицы вы:

используете существующее поле из другой таблицы, типы данных уже определены в ней или в шаблоне;

вводите данные в пустом столбце (или поле), Access назначает полю тип данных, исходя из вводимых значений, или вы можете назначить тип данных и формат для поля;

на вкладке Изменение полей в группе Поля и столбцы выбираете команду Добавить поля, Access отображает список типов данных для выбора.

Когда какой тип данных использовать?

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


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

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

Основные типы

Короткие буквенно-цифровые значения, например фамилия или почтовый адрес. Помните, что начиная с версии Access 2013, текстовый тип данных переименован в Краткий текст.

Числовой, Большое число

Числовые значения, например расстояния. Помните, что для денежных значений есть отдельный тип данных.

Значения «Да» и «Нет», а также поля, содержащие только одно из двух значений.

Значения даты и времени с 100 по 9999 годы.

Текст или сочетание текста и чисел, которые отформатированы с помощью элементов управления цветом и шрифтом.

Результаты вычисления. Вычисление может ссылаться на другие поля в той же таблице. Вычисления создаются с помощью построителя выражений. Вычисляемые поля впервые появились в Access 2010.

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

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

Длинные блоки текста. Типичный пример использования поля MEMO — подробное описание продукта. Помните, что начиная с версии Access 2013, тип данных MEMO переименован в «Длинный текст».

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

У полей подстановки есть дополнительный набор свойств, которые находятся на вкладке Подстановка в области Свойства поля.

Примечание: В файлах формата MDB недоступны вложения и вычисляемые данные.

Числовой

Числа без дополнительного форматирования (точно в том виде, в котором хранятся).

Обычные денежные значения.

Обычные денежные значения в формате ЕС.

Числовые данные с десятичными знаками.

Значения в процентах.

Дата и время

Краткий формат даты

Дата в кратком формате. Зависит от региональных параметров даты и времени. Например, 14.03.2001 для России.

Средний формат даты

Дата в среднем формате. Например, 03-апр-09 для России.

Длинный формат даты

Дата в длинном формате. Зависит от региональных параметров даты и времени. Например, 14 марта 2001 г. для России.

Время только в 12-часовом формате, который будет соответствовать изменениям в региональных параметрах даты и времени.

Средний формат времени

Время в 12-часовом формате, после которого указываются символы AM (до полудня) или PM (после полудня).

Время только в 24-часовом формате, который будет соответствовать изменениям в региональных параметрах даты и времени.

Логический

«Истина» или «Ложь».

Объект OLE Объекты OLE, например документы Word.

Свойство «Размер поля»

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

Для числовых и денежных полей свойство Размер поля особенно важно, поскольку определяет диапазон значений поля. Например, одноразрядное числовое поле может содержать только целые числа в диапазоне от 0 до 255.

Свойство Размер поля определяет также, сколько места на диске занимает каждое значение числового поля. В зависимости от размера поля число может занимать 1, 2, 4, 8, 12 или 16 байт.

Примечание: В полях MEMO и текстовых полях возможны значения переменных размеров. Для этих типов данных свойство Размер поля задает максимальный размер доступного пространства для одного значения.

Дополнительные сведения о свойствах полей и той роли, которую они выполняют для различных типов данных, см. в разделе Справочные сведения о типах данных. Ознакомьтесь также со статьей Задание размера поля.

Типы данных в связях и соединениях

Связь между таблицами — это связи между общими полями в двух таблицах. Связь может быть одного из следующих типов: один к одному, один ко многим, многие ко многим.

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

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

При использовании связи или соединения поля с типом данных «Счетчик» совместимы с полями числового типа, если для свойства Размер поля последних задано значение Длинное целое.

Для поля, участвующего в связи между таблицами, нельзя изменить тип данных или свойство Размер поля. Чтобы изменить свойство Размер поля, временно удалите связь. Но после изменения типа данных вы не сможете снова создать связь, пока не измените тип данных связанного поля. Дополнительные сведения о таблицах см. в статье Общие сведения о таблицах.

Справочные сведения о типах данных

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

Мастер Йода рекомендует:  Отдыхать — не работать как провести свободное время с пользой для профессионального развития
Добавить комментарий