Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Экзаменационный билет n 8




 

1. Даталогическое моделирование.

2. SQL. Понятие курсора. Использование курсоров.

 

Курсоры обычно используются в рамках SQL, встроенного в про­граммы, написанные на языке процедурного типа. Использование курсоров вызвано необходимостью стыковать позаписные включаю­щие языки и теоретико-множественный язык SQL. Курсор определяется посредством оператора объявления курсора (DECLARE CURSOR). Этот оператор определяет имя курсора, а так же содержит в своем составе запрос, выходные данные которого сохраняются для последующей обработки включающей программой:

 

DECLARE <имя_курсора > [INSENSITIVE] [SCROLL] CURSOR

FOR <подзапрос> [<предложение для обновления>]

 

Курсор находится либо в открытом состоянии, либо в закрытом. Начальное состояние курсора - закрытое. Для открытия курсора ис­пользуется оператор OPEN CURSOR <имя курсора>. Запрос, описанный при определении курсора, выполняется именно при откры­тии курсора. При первом открытии курсор устанавливается перед первой строкой. Позиция курсора в открытом состоянии может быть перед определенной строкой, на определенной строке или после пос­ледней строки. Если курсор установлен на строку, то эта строка явля­ется текущей строкой курсора.

Для построчного извлечения данных из курсора используется опе­ратор FETCH. Этот оператор продвигает позицию открытого курсора на следующую строку в порядке этого курсора, извлекает значения полей этой строки в переменные и имеет следующий синтаксис:

 

FETCH [[orientation] FROM] имя курсора

INTO целевая спецификация.,..;

 

orientation::=

NEXT | PRIOR | FIRST | LAST | {ABSOLUTE | RELATIVE

спецификация значения}

 

Значения NEXT, PRIOR, FIRST, LAST понятны без дополнитель­ного пояснения. Значение ABSOLUTE N вызывает перемещение на N-ю строку, а значение RELATIVE N - перемещение на N строк впе­ред, если N - положительное число, и на N строк назад, если N -отрицательное число.

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

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

Если задано предложение SCROLL, то не обязательно извлекать строки в том порядке, который задан при открытии.

Курсоры могут быть двух типов: обновляемые и только для чте­ния. Чтобы курсор был обновляемым, он должен базироваться на од­ной и только одной таблице, не содержать предложения ORDER BY, не объявляться как INSENSITIVE или SCROLL.

Курсор возвращается в закрытое состояние посредством исполь­зования оператора закрытия курсора CLOSE <имя курсора.>

 




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 430; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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