русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

СПЕЦИАЛЬНЫЕ ТИПЫ ДАННЫХ


Дата добавления: 2013-12-23; просмотров: 1579; Нарушение авторских прав


ИНТЕРВАЛЫ

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

· (TIME '12:25:30', TIME '14:30:00') — интервал, заданный начальным и конечным моментами;

· (TIME 12:45:00', INTERVAL '5' HOUR) — Интервал, заданный начальным моментом и длительностью в часах.

Чтобы задать значение типа интервал, используется такой синтаксис:

 

INTERVAL 'длина'YEAR | MONTH | DAY | HOUR | MINUTE | SECOND

 

Здесь длина— длина интервала, после которой указывается единица измерения (возможные значения указаны через вертикальную черту):

· YEAR — год;

· MONTH — месяц;

· DAY — день;

· HOUR — час;

· MINUTE — минута;

· SECOND — секунда.

Например, для задания интервала длиной 15 дней следует использовать выражение INTERVAL ' 5 ' DAY.

Еще один пример использования интервалов (предикат OVERLAPS).

К специальным типам данных относятся следующие типы:

· ROWзапись;

· ARRAYмассив;

· MULTISETмультимножество.

Использование этих типов данных нарушает принцип, согласно которому таблицы реляционной базы данных должны находиться в первой нормальной форме. Любой столбец таблицы в первой нормальной форме не может содержать структурированные данные, например, набор полей: значения столбцов должны быть едиными и неделимыми. Тем не менее, жизнь неоднократно предлагает отступить от теории в пользу эффективности. Если вы не отступаете от первой нормальной формы, то возникающие недоразумения в поддержке реляционных баз данных вы можете объяснить нарушениями законов реляционнойтеории. В противном случае для получения объяснений требуются более тщательные расследования происшедшего. Рассмотрим специальные типы данных подробнее.



Тип ROW (запись) позволяет объявить набор полей (запись) в качестве значения столбца таблицы. Таким образом, строки таблиц могут содержать записи.

Во многих базах данных имеются таблицы, содержащие сведения об адресах. Адрес, как известно, состоит из нескольких элементов, таких как почтовый индекс, страна, город, улица и т. д. Если в таблице завести один символьный столбец Адрес, в котором поместить все элементы адреса просто как символьную строку, то дальнейшая работа с отдельными элементами адреса будет довольно хлопотным делом (вам придется использовать функции разбора строк). Поэтому на практике для адреса обычно заводят несколько столбцов, по одному на каждый элемент (например, столбцы Город, Улица и т. д.). Если же использовать тип ROW, то можно хранить все элементы адреса как значения одного столбца. В следующем примере сначала на основе типа ROW создается тип addr, а затем он назначается столбцу Адрес при создании таблицы Клиенты:

CREATE ROW TYPE addr

(

Postcode VARCHAR (9),

City VARCHAR (30),

Street VARCHAR (30),

House VARCHAR (10)

);

CREATE TABLE Клиенты

(

ID_клиента INTEGER PRIMARY KEY,

Имя VARCHAR (25),

Адрес addr,

Телефон VARCHAR (15)

);

 

Тип данных ROW(запись) появился впервые в SQL:1999, а раньше без него прекрасно обходились.

Тип ARRAY (массив) также впервые появился в SQL: 1999 и нарушает принцип первой нормальной формы, но несколько иначе, чем тип ROW. Тип ARRAY дает возможность одному из обычных типов иметь множество значений внутри значения одного табличного столбца. Например, клиент может иметь несколько номеров телефонов и вы можете пожелать хранить их все как одно многозначное значение единственного столбца Телефон, а не как обычные значения нескольких столбцов Телефон1, Телефон2 и т. п. Вот пример, в котором каждая ячейка столбца Телефон может содержать до трех номеров телефона:

 

CREATE TABLE Клиенты

(

ID_клиента INTEGER PRIMARY KEY,

Имя VARCHAR (25),

Адрес addr,

Телефон VARCHAR (15) ARRAY [3]

);

 

Следующее SQL-выражение добавляет в таблицу Клиенты новую запись и вводит в нее значения столбцов:

 

INSERT INTO Клиенты (Имя, Телефон)

VALUES ('Петров Петр Петрович', {'444-4444', '123-4567', '777-8899'});

 

Тип данных MULTISET (мультимножество) появился впервые в SQL:2003. Если массив — это упорядоченное множество элементов, однозначно связанных с их местом в массиве посредством индекса, то мультимножество — неупорядоченная совокупность элементов. Этот тип данных используется очень редко.



<== предыдущая лекция | следующая лекция ==>
ДАТА И ВРЕМЯ | Отдельные типы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.