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



         

Язык манипулирования данными в иерархических базах данных - часть 2


Получить следующий для того же исходного.

Пример:

Получить перечень винчестеров, имеющихся на складе номер 1, в количестве не менее 10 с объемом 10 Гбайт.

GET UNIQUE СКЛАД WHERE Склад.Номер = 1

GET NEXT ИЗДЕЛИЕ WITHIN PARENT

WHERE Изделие.Наименование = "Винчестер"

GET NEXT ХАРАКТЕРИСТИКИ WITHIN PARENT

WHERE ХАРАКТЕРИСТИКИ.Параметр = 10 AND

ХАРАКТЕРИСТИКИ.Единицы Измерения = Гб AND

ХАРАКТЕРИСТИКИ.Величина > 10

While Not Fail (пока поиск не завершен) DO

Get Next Within Parent

end

Операторы поиска данных с возможностью модификации

  • Найти и удержать единственный экземпляр сегмента. Эта операция подобна первой операции поиска GET UNIQUE, единственным отличием этой операции является то, что после выполнения этой операции пал найденным экземпляром сегмента допустимы операции модификации (изменения) данных.

    Синтаксис:

    GET HOLD UNIQUE <имя сегмента> WHERE <список поиска>

  • Найти и удержать следующий с теми же условиями поиска. Аналогично операции 4 эта операция дублирует вторую операции поиска GET NEXT с возможностью выполнения последующей модификации данных.

    Синтаксис:

    GET HOLD NEXT [WHERE <дополнительные условия>]

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

    Синтаксис:

    GET HOLD NEXT WITHIN PARENT [ where <дополн.условия>]

    Операторы модификации данных

  • Удалить : Это первая из трех операций модификации.
  • Синтаксис:

    DELETE

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

  • Обновить
  • Синтаксис:

    UPDATE

    Как же происходит обновление, если мы и в этой команде не задаем никаких параметров.


    Содержание  Назад  Вперед