Содержание
- 2. Табличный язык запросов QBE В современных СУБД широко используются табличные языки запросов. Наиболее распространенным среди них
- 3. Табличный язык запросов QBE Во второй зоне («скелете» запроса табличной формы) пользователь задает условия запроса. В
- 4. Табличный язык запросов QBE Требуется выдать информацию обо всех сотрудниках в возрасте 40 лет. В соответствующем
- 5. Задание сложных запросов. Допускается задание и простых запросов, включающих только один аргумент поиска, и сложных запросов,
- 6. Табличный язык запросов QBE Если компоненты запроса должны быть связаны операторами OR, то они записываются на
- 7. Табличный язык запросов QBE Как указывалось выше, при задании запроса в QBE экран обычно делится на
- 8. Табличный язык запросов QBE Переменные для примера. В некоторых случаях при формулировке запроса необходимо использовать так
- 9. Табличный язык запросов QBE Совместная обработка нескольких таблиц. В некоторых запросах могут потребоваться данные из нескольких
- 10. Табличный язык запросов QBE «Скелеты» всех таблиц, которые нужны для реализации запроса (в нашем примере -
- 11. Табличный язык запросов QBE В более поздних версиях СУБД используются визуальные способы установления связей между таблицами:
- 12. Табличный язык запросов QBE В настоящее время широко используются такие понятия, как «левое» и «правое» соединение,
- 13. Табличный язык запросов QBE Работа с несколькими таблицами в конкретных СУБД различается не только тем, каким
- 14. Описание ответа. Кроме задания условия отбора данных, при описании запроса должна быть возможность указать, какие атрибуты
- 15. Табличный язык запросов QBE Набор агрегирующих функций может быть различным в разных системах. Обычно во всех
- 16. Табличный язык запросов QBE Для удобства восприятия ответа часто требуется определить упорядоченность данных в ответе. Язык
- 17. Дополнительные возможности. Кроме собственно поисковых запросов язык QBE позволяет выполнять и другие операции, например корректировку данных.
- 18. Понятие, классификация и роль экранных форм Ввод и просмотр данных в режиме таблицы имеет много очевидных
- 19. Понятие, классификация и роль экранных форм
- 20. Понятие, классификация и роль экранных форм 1. По характеру связи с таблицами различают связанные и не
- 21. Но наиболее естественной для многотабличных форм все-таки является ситуация, когда ведущая таблица находится на стороне «1».
- 22. 2. По выполняемым функциям различают формы ввода, вывода, управляющие, смешанные. Назначение каждого вида этих форм ясно
- 23. Понятие, классификация и роль экранных форм 4. По способу реализации экранные формы могут быть: всплывающими; невсплывающими.
- 24. Понятие, классификация и роль экранных форм 5. По форме представления информации экранные формы могут содержать символьную
- 25. Рекомендации по созданию экранных форм Рассмотрим основные рекомендации по созданию форм. 1. Порядок размещения элементов в
- 26. Рекомендации по созданию экранных форм 2. Если форма предназначена для ввода данных, то из нее могут
- 27. Возможности задания ограничений целостности при описании таблицы могут при «несистемном» проектировании привести к нежелательным последствиям. Предположим,
- 28. Общая характеристика отчетов Термин «отчет» понимается в ИС шире, чем это традиционно принято. Под отчетом здесь
- 29. Общая характеристика отчетов Источниками для получения отчетов могут быть не только таблицы баз данных, но и
- 30. Общая характеристика отчетов Отчеты имеют много общего с формами. Однако отчеты в отличие от форм не
- 31. Общая характеристика отчетов
- 32. Общая характеристика отчетов Различают отчеты анкетной и табличной формы. При анкетной форме данные об одном объекте
- 33. Общая характеристика отчетов
- 34. Для каждой страницы отчета выделяют верхний и нижний колонтитулы (заголовок и «подножие» страницы). Ну и, естественно,
- 35. Общая характеристика отчетов Источниками информации для отчетов могут быть либо реальные таблицы базы данных, либо предварительно
- 36. Понятие курсора. Работа с курсорами. Курсор – используемая в рамках SQL, встроенного в процедурный язык, возможность
- 37. Понятие курсора. Работа с курсорами. Курсоры создаются с помощью оператора DECLARE, синтаксис которого различен для разных
- 38. Понятие курсора. Работа с курсорами. Теперь, после того как курсор определен, его можно открыть. Курсоры открываются
- 39. В первом примере используется синтаксис Oracle для выборки одной строки курсора (первой). DECLARE TYPE CustCursor IS
- 40. В следующем примере (в нем вновь используется синтаксис Oracle) выбранные данные подвергаются циклической обработке от первой
- 42. Скачать презентацию
Табличный язык запросов QBE
В современных СУБД широко используются табличные языки запросов.
Табличный язык запросов QBE
В современных СУБД широко используются табличные языки запросов.
Язык QBE предназначен для работы в интерактивном режиме и ориентирован на конечного пользователя. Язык QBE реализован во многих современных СУБД, например в dBase IV и более старших версиях этой системы, Paradox, Access и др. Конкретные реализации этого языка несколько отличаются друг от друга, но все они построены по единому принципу.
Суть подхода, воплощенного в языке QBE, заключается в следующем. В окне формирования запроса выделяются две зоны. В первой из них высвечивается «скелет» (образ, форма, структура) одной или нескольких таблиц, данные из которых будут участвовать в запросе. В качестве исходных для запроса могут указываться не только базовые таблицы, но и другие запросы.
Табличный язык запросов QBE
Во второй зоне («скелете» запроса табличной формы) пользователь
Табличный язык запросов QBE
Во второй зоне («скелете» запроса табличной формы) пользователь
Например, если пользователю необходимо получить все записи с заданным значением конкретного атрибута, то в соответствующем столбце «скелета» указывается это значение.
На рис. (следующий слайд) представлен запрос к таблице, содержащей сведения о сотрудниках (Kadr) и включающей следующие атрибуты:
· FAM - фамилия;
· IMIA - имя;
· TABN - табельный номер;
· VOZR - возраст;
· POL - пол;
· ADR - адрес.
Табличный язык запросов QBE
Требуется выдать информацию обо всех сотрудниках в возрасте
Табличный язык запросов QBE
Требуется выдать информацию обо всех сотрудниках в возрасте
В соответствующем столбце таблицы (VOZR) указывается цифра 40.
В столбце можно записывать не только значение атрибута, но и знак
операции сравнения; по умолчанию принимается знак равенства («=»).
Задание сложных запросов. Допускается задание и простых запросов, включающих только один
Задание сложных запросов. Допускается задание и простых запросов, включающих только один
На рис. 6.2 изображен запрос: «Выдать информацию о сотруднике с фамилией Диго и именем Светлана»
Табличный язык запросов QBE
Табличный язык запросов QBE
Если компоненты запроса должны быть связаны операторами OR,
Табличный язык запросов QBE
Если компоненты запроса должны быть связаны операторами OR,
На рис. 6.3 изображен запрос - «Выдать информацию о сотрудниках, имеющих либо фамилию Диго, либо имя Светлана».
В связи с тем, что интерпретация запроса зависит от взаимного расположения элементов сложного запроса на строках экрана, такого рода языки запросов называются табличными двухмерными.
Табличный язык запросов QBE
Как указывалось выше, при задании запроса в QBE
Табличный язык запросов QBE
Как указывалось выше, при задании запроса в QBE
Вид, в котором представляются структуры исходных таблиц, а также то, где фиксируются условия поиска, могут различаться в конкретных системах.
Так, в dBase IV таблицы как в зоне «запроса», так в зоне «ответа» представляются в табличном виде, а условия отбора записей указываются в таблицах зоны «запроса». В Access, FoxPro исходные таблицы представлены в анкетной форме (поля таблицы перечисляются один под другим), а в зоне «ответа» в табличной форме отображаются те атрибуты (поля), которые будут выдаваться в ответе. Условия отбора записей задаются в зоне «ответа».
Табличный язык запросов QBE
Переменные для примера. В некоторых случаях при формулировке
Табличный язык запросов QBE
Переменные для примера. В некоторых случаях при формулировке
Переменные для примера (example variables) также записываются в определенных графах таблицы, но они обозначают не какое-либо определенное значение, а любое. Конкретное значение наполнителя несущественно. Переменные для примера используются для установления связей между атрибутами в одной или нескольких таблицах.
Переменные, применяемые для задания значений ключей поиска, и переменные, указываемые для примера, должны при записи запроса отличаться друг от друга.
В разных СУБД «наполнители» и обычные значения атрибутов поиска различаются по-разному: в некоторых системах «наполнители» подчеркиваются, в других - используются специальные ограничители при указании переменных в запросе, в третьих - такое понятие вообще не вводится и т.п.
Табличный язык запросов QBE
Совместная обработка нескольких таблиц. В некоторых запросах могут
Табличный язык запросов QBE
Совместная обработка нескольких таблиц. В некоторых запросах могут
· FAM - фамилия;
· IMIA - имя;
· TABN - табельный номер;
· VOZR - возраст;
· POL - пол;
· ADR - адрес.
имеется таблица «Выработка» (VRBT) с полями:
· TABN - табельный номер;
· DAT - дата;
· KODDET - код детали;
· KOLV - количество.
В запросе «Выдать информацию о выработке рабочего Евгения Петрова» необходима совместная обработка таблиц VRBT и KADR, так как в таблице «Выработка» нет сведений о фамилиях и именах рабочих.
Табличный язык запросов QBE
«Скелеты» всех таблиц, которые нужны для реализации запроса
Табличный язык запросов QBE
«Скелеты» всех таблиц, которые нужны для реализации запроса
Дальнейшие действия, которые необходимо выполнить, чтобы осуществить связывание таблиц, будут зависеть от используемой СУБД. Так, в некоторых системах для связывания таблиц используются «наполнители». Их значения могут быть любыми, но они должны быть одинаковыми в обеих связываемых таблицах.
В примере, представленном на рис. 6.4, в качестве наполнителя используется буква А, и она подчеркивается.
подчеркивается.
Табличный язык запросов QBE
В более поздних версиях СУБД используются визуальные способы
Табличный язык запросов QBE
В более поздних версиях СУБД используются визуальные способы
Существуют и другие способы установления связей.
Теоретически возможны разные типы соединений таблиц. Наиболее распространенным является соединение, при котором в результатную таблицу помещаются те соединенные записи, для которых значение поля связи основной таблицы совпадает с соответствующим полем в зависимой таблице. В описанных выше случаях устанавливается именно такое соединение.
Табличный язык запросов QBE
В настоящее время широко используются такие понятия, как
Табличный язык запросов QBE
В настоящее время широко используются такие понятия, как
Но не все системы позволяют в QBE реализовывать такие соединения.
В случаях, когда возможно задание разных типов соединений, конкретный способ реализации отличается в разных СУБД. Так, в Access «левое» и «правое» соединения можно определить, задав для связи «параметры объединения» или перейдя в SQL.
В dBase IV никаких специфических терминов для обозначения такого типа соединений нет, но включение слова Every в запрос на QBE выполняет ту же роль.
Табличный язык запросов QBE
Работа с несколькими таблицами в конкретных СУБД различается
Табличный язык запросов QBE
Работа с несколькими таблицами в конкретных СУБД различается
Так, например, некоторые системы обязывают пользователя связать те таблицы/файлы, которые указываются как исходные для запроса; другие автоматически связывают открытые файлы по тем полям, которые система воспринимает как поля связи (чаще всего это поля, имеющие одинаковые имена, тип и длину); третьи - оставляют эти таблицы изолированными, если пользователь не указал, как они должны быть связаны, четвертые - выполняют декартово произведение открытых таблиц.
Например, в dBase IV вызвать несколько файлов БД на панель запросов и не связать их было нельзя.
В MS Query, Access если таблицы не связаны, то при выполнении запроса это приводит к связыванию каждой записи одной таблицы с каждой записью другой (декартово произведение).
Описание ответа. Кроме задания условия отбора данных, при описании запроса должна
Описание ответа. Кроме задания условия отбора данных, при описании запроса должна
Можно выделить два вида вычислений, которые могут выполняться в запросах, формах, отчетах: это агрегирующие операторы, которые выполняют операции над группой записей, и обычные вычисления, затрагивающие отдельные поля одной или нескольких связанных записей.
Агрегирующие показатели могут быть включены не только в «Запросы», но и в «Отчеты». Возможности включения агрегирующих показателей в запросы и отчеты различаются между собой.
Результатом запроса всегда является плоская таблица. Поэтому в запросах могут быть получены только одноуровневые итоги. В отчетах же может быть получено несколько степеней итогов.
Табличный язык запросов QBE
Табличный язык запросов QBE
Набор агрегирующих функций может быть различным в разных
Табличный язык запросов QBE
Набор агрегирующих функций может быть различным в разных
Некоторые системы включают дополнительные статистические функции, такие, как отклонение, стандартное отклонение, дисперсия и др.
Результаты вычислений, выводящиеся в поле, не запоминаются в базовой таблице. Вместо этого вычисления снова проводятся всякий раз, когда выполняется запрос, поэтому результаты всегда представляют текущее содержимое базы данных. Обновить вычисленные результаты вручную невозможно (таблица, содержащая вычисляемое поле, имеет статус «только для чтения»).
Табличный язык запросов QBE
Для удобства восприятия ответа часто требуется определить упорядоченность
Табличный язык запросов QBE
Для удобства восприятия ответа часто требуется определить упорядоченность
Опять-таки возможности задания упорядочения ответа различаются в разных СУБД:
некоторые системы разрешают проводить упорядочение по произвольным полям,
другие требуют, чтобы поле упорядочения стояло в ответе обязательно первым, а если упорядочение ведется по нескольким полям, то чтобы эти поля следовали в ответе друг за другом в порядке их старшинства;
некоторые СУБД различают обычное и словарное упорядочение (когда учитывается и не учитывается регистр соответственно), другие - нет;
в некоторых системах, даже если не задано никакое упорядочение, ответ всегда выдается упорядоченным по первому полю таблицы ответа и т.п.
Дополнительные возможности. Кроме собственно поисковых запросов язык QBE позволяет выполнять и
Дополнительные возможности. Кроме собственно поисковых запросов язык QBE позволяет выполнять и
Кроме того, некоторые СУБД позволяют формировать запросы специальных видов: параметрические, перекрестные и некоторые другие (не все из них, наверное, могут быть отнесены к QBE, но они реализованы одними и теми же компонентами СУБД).
Запросы, сформулированные на QBE, могут быть запомнены для их последующего многократного использования.
Табличный язык запросов QBE
Понятие, классификация и роль экранных форм
Ввод и просмотр данных в режиме
Понятие, классификация и роль экранных форм
Ввод и просмотр данных в режиме
Генераторы экранных форм являются компонентом языков 4-го поколения.
Использование генераторов экранных форм позволяет практически без программирования создавать довольно сложные системы обработки данных с хорошим пользовательским интерфейсом.
Если первоначально формы определялись только как способ отображения одной записи из БД, то сейчас в формах допускается наличие табличной (многострочной) части; более того, допускается наличие множества «динамических» частей, возможно, из разных БД.
Понятие, классификация и роль экранных форм
Понятие, классификация и роль экранных форм
Понятие, классификация и роль экранных форм
1. По характеру связи с таблицами
Понятие, классификация и роль экранных форм
1. По характеру связи с таблицами
По числу используемых таблиц выделяют однотабличные и многотабличные формы.
По характеру соподчинения отдельных частей многотабличные формы классифицируются как простые, иерархические и синхронизированные.
Простые многотабличные формы хотя и содержат данные из разных таблиц, но не имеют в своем составе соподчиненных частей.
Такие формы могут возникнуть, например, когда они базируются на таблицах, связанных друг с другом отношением 1:1, или когда в форму выводятся данные из таблиц, связанных друг с другом отношением 1 :М, но в форму в основном выводятся данные, находящиеся со стороны «М», а из таблицы, находящейся со стороны «1», берутся какие-то, обычно справочные, данные, т.е. ведущим здесь как бы является таблица, находящаяся со стороны «М».
Но наиболее естественной для многотабличных форм все-таки является ситуация, когда ведущая
Но наиболее естественной для многотабличных форм все-таки является ситуация, когда ведущая
В этом случае создаются иерархические формы, когда в форму в ее общей части выводятся данные из одной записи ведущей таблицы, а в табличной части - множество связанных с ней записей ведомого (зависимого) файла.
Иногда (по разным причинам) бывает нецелесообразно выводить в одну иерархическую форму данные и из основного, и из зависимого файла, и данные из зависимого файла выводятся в отдельной «зоне», которая открывается «при нажатии» соответствующей управляющей кнопки.
Такие формы называются синхронизированными.
Понятие, классификация и роль экранных форм
2. По выполняемым функциям различают формы ввода, вывода, управляющие, смешанные. Назначение
2. По выполняемым функциям различают формы ввода, вывода, управляющие, смешанные. Назначение
3. По распределению данных по экранам (страницам) формы делятся на одностраничные и многостраничные; одной из разновидностей многостраничных форм можно считать формы с вкладками.
Понятие, классификация и роль экранных форм
Понятие, классификация и роль экранных форм
4. По способу реализации экранные формы
Понятие, классификация и роль экранных форм
4. По способу реализации экранные формы
всплывающими;
невсплывающими.
Всплывающая форма располагается поверх других открытых форм, даже если активной является другая форма.
Всплывающая форма может быть:
немодальной;
модальной.
Если всплывающая форма - модальная, пользователь имеет возможность получить доступ к другим объектам и командам меню, пока форма открыта. Если всплывающая форма является немодальной, нельзя получить доступ к любым другим объектам или командам меню, пока форма открыта. Пользователь должен выполнить какое-либо действие, чтобы фокус был переключен на другую форму (или окно).
Понятие, классификация и роль экранных форм
5. По форме представления информации экранные
Понятие, классификация и роль экранных форм
5. По форме представления информации экранные
Например, в БД, хранящей информацию о животных, наряду с описанием каждого вида может выводиться его изображение.
Несмотря на такое широкое применение экранных форм для реализации разных целей, основное внимание далее уделим их использованию для организации ввода данных в БД, потому что, во-первых, это является одним из основных назначений экранных форм; во-вторых, именно этот аспект наиболее значим для процессов создания и ведения БД; в-третьих, такие функции, как создание меню, вывод информации из БД и т.п., могут выполняться с использованием и других средств СУБД.
Рекомендации по созданию экранных форм
Рассмотрим основные рекомендации по созданию форм.
1.
Рекомендации по созданию экранных форм
Рассмотрим основные рекомендации по созданию форм.
1.
Порядок расположения полей на экране для форм, использующихся для вывода информации, определяется в основном смысловой группировкой информации, удобством для восприятия. Так как информационные потребности разных пользователей могут различаться, то в принципе на основе одного и того же источника (таблицы, запроса) может быть создано несколько разных экранных форм, ориентированных на разные запросы пользователей, с соответствующим составом и порядком следования полей.
Лучше, чтобы для форм, использующихся для ввода данных, порядок расположения полей в форме совпадал с порядком их расположения во входном документе.
Рекомендации по созданию экранных форм
2. Если форма предназначена для ввода данных,
Рекомендации по созданию экранных форм
2. Если форма предназначена для ввода данных,
3. Средства современных СУБД обладают разнообразными возможностями по оформлению экрана. При выборе стиля оформления экрана желательно выполнять следующие рекомендации:
а. не стоит злоупотреблять использованием цветов, шрифтов и других оформительских эффектов; оформление экрана не должно отвлекать от выполнения основных функций;
б. яркие цвета (например, красный) лучше использовать только для целей привлечения внимания (например, при сигнале о существенной ошибке);
Возможности задания ограничений целостности при описании таблицы могут при «несистемном» проектировании
Возможности задания ограничений целостности при описании таблицы могут при «несистемном» проектировании
В силу имеющихся ограничений целостности часть полей является обязательной для ввода, другая - нет. Для полей, обязательных для заполнения, можно использовать специальное цветовое выделение.
Рекомендации по созданию экранных форм
Общая характеристика отчетов
Термин «отчет» понимается в ИС шире, чем это традиционно
Общая характеристика отчетов
Термин «отчет» понимается в ИС шире, чем это традиционно
Для создания отчетов используются высокоуровневые средства автоматизации - генераторы отчетов. Генераторы отчетов, так же как и генераторы форм ввода-вывода, являются компонентами языков 4-го поколения. Они включены в состав большинства СУБД. Кроме того, генераторы отчетов представлены и как самостоятельный класс программного обеспечения. Существует даже англоязычный термин «reporting», объединяющий все вопросы, относящиеся к процессу получения отчетов.
Общая характеристика отчетов
Источниками для получения отчетов могут быть не только таблицы
Общая характеристика отчетов
Источниками для получения отчетов могут быть не только таблицы
Отчеты позволяют выполнять следующие действия:
· проводить группировку данных;
· вычислять многоуровневые промежуточные и общие итоги по отдельным полям;
· вводить в отчеты вычисляемые поля;
· выводить в отчеты данные из разных источников;
· включать в отчеты данные, отобранные по заданным критериям;
· использовать различные формы представления информации;
· качественно оформлять выводимые данные.
Общая характеристика отчетов
Отчеты имеют много общего с формами. Однако отчеты в
Общая характеристика отчетов
Отчеты имеют много общего с формами. Однако отчеты в
Чаще всего отчеты используются для вывода информации на печать (т.е. для получения так называемых твердых копий). Для документов, даже одинаковых по содержанию, могут использоваться разные приемы их оформления в зависимости от того, куда осуществляется вывод информации. Например, при выдаче информации на экран могут использоваться специальные эффекты (мигание, динамические изображения, полосы прокрутки и т. п.).
Общая характеристика отчетов
Общая характеристика отчетов
Общая характеристика отчетов
Различают отчеты анкетной и табличной формы. При анкетной форме
Общая характеристика отчетов
Различают отчеты анкетной и табличной формы. При анкетной форме
Документы табличной формы включают в себя привычные таблицы с названиями атрибутов в заголовках столбцов; данные о каждом объекте представляются в одной строке (рис. 9.3).
Табличные документы могут включать либо одну таблицу - однотабличные документы, либо несколько таблиц (обычно разной структуры) - многотабличные документы.
Общая характеристика отчетов
Общая характеристика отчетов
Для каждой страницы отчета выделяют верхний и нижний колонтитулы (заголовок и
Кроме того, в документе может быть обеспечена группировка данных, причем в отличие от запросов группировка может быть одноуровневой и многоуровневой (иерархической). В последнем случае для каждого уровня группировки могут быть созданы зоны заголовка.
Группировка обычно используется в целях подсчета каких-либо итоговых показателей для каждой группы (суммы, количества элементов в группе и т.п.). При этом возможно получение итоговых документов, включающих только итоговые значения, детальных документов, имеющих только детальные строки, и смешанных, содержащих как детальные строки, так и итоговые.
Общая характеристика отчетов
Общая характеристика отчетов
Источниками информации для отчетов могут быть либо реальные таблицы
Общая характеристика отчетов
Источниками информации для отчетов могут быть либо реальные таблицы
В последнее время в отчеты, наряду с символьной информацией, часто включается деловая графика.
Кроме документов, содержащих главным образом фактографическую информацию из баз данных, можно создавать и документы, которые в основном, напротив, включают какой-то текст (документографические), в который вкраплены данные из БД (документы типа письма).
В документах фактографического типа можно различать просто какой-то текст, не имеющий жесткой связи с элементами БД (например, название документа, поясняющий текст), названия элементов из БД (например, «Фамилия») и значения этих элементов (например, Иванов, Петров), элементы оформления (линия, рисунки).
Понятие курсора. Работа с курсорами.
Курсор – используемая в рамках SQL, встроенного
Понятие курсора. Работа с курсорами.
Курсор – используемая в рамках SQL, встроенного
Работу с курсором можно разделить на несколько четко выраженных стадий.
• Прежде чем курсор может быть использован, его следует объявить (определить). В ходе этого процесса выборка данных не производится, просто определяется оператор SELECT, который будет использован, и некоторые опции курсора.
• После объявления курсор может быть открыт для использования. В ходе этого процесса уже производится выборка данных согласно предварительно определенному оператору SELECT.
• После того как курсор заполнен данными, могут быть извлечены (выбраны) отдельные необходимые строки. • После того как это сделано, курсор должен быть закрыт и, возможно, должны быть освобождены ресурсы, которые он занимал (в зависимости от СУБД).
После того как курсор объявлен, его можно открывать и закрывать столь часто, сколько необходимо. Если курсор открыт, операция выборки может выполняться так часто, как необходимо.
Понятие курсора. Работа с курсорами.
Курсоры создаются с помощью оператора DECLARE, синтаксис
Понятие курсора. Работа с курсорами.
Курсоры создаются с помощью оператора DECLARE, синтаксис
Оператор DECLARE дает курсору имя и принимает оператор SELECT, дополненный при необходимости предложением WHERE и другими.
Чтобы показать, как это работает, мы создадим курсор, который будет делать выборку всех клиентов, не имеющих адресов электронной почты, в виде части приложения, позволяющего служащему вводить недостающие адреса.
Версия для Oracle:
DECLARE CURSOR CustCursor IS SELECT * FROM Customers WHERE cust_email IS NULL;
Понятие курсора. Работа с курсорами.
Теперь, после того как курсор определен, его
Понятие курсора. Работа с курсорами.
Теперь, после того как курсор определен, его
Курсоры открываются с помощью оператора OPEN CURSOR, синтаксис которого настолько прост, что его поддерживают большинство СУБД:
OPEN CURSOR CustCursor
При обработке оператора OPEN CURSOR выполняется запрос, и выборка данных сохраняется для последующих просмотра и прокрутки.
Теперь доступ к данным этого курсора может быть получен с помощью оператора FETCH.
Оператор FETCH указывает строки, которые должны быть выбраны, откуда они должны быть выбраны и где их следует сохранить (имя переменной, например).
В первом примере используется синтаксис Oracle для выборки одной строки курсора
В первом примере используется синтаксис Oracle для выборки одной строки курсора
DECLARE TYPE CustCursor IS
REF CURSOR RETURN Customers%ROWTYPE;
DECLARE CustRecord Customers%ROWTYPE;
BEGIN; OPEN CustCursor;
FETCH CustCursor INTO CustRecord; CLOSE CustCursor;
END;
В данном примере оператор FETCH используется для выборки текущей строки (автоматически он начнет с первой строки) в переменную, объявленную с именем CustRecord. С выбранными данными ничего не делается.
Понятие курсора. Работа с курсорами.
В следующем примере (в нем вновь используется синтаксис Oracle) выбранные данные
В следующем примере (в нем вновь используется синтаксис Oracle) выбранные данные
DECLARE TYPE CustCursor IS
REF CURSOR RETURN Customers%ROWTYPE;
DECLARE CustRecord Customers%ROWTYPE;
BEGIN; OPEN CustCursor; LOOP FETCH CustCursor INTO CustRecord; EXIT WHEN CustCursor%NOTFOUND; END LOOP;
CLOSE CustCursor;
END;
Аналогично предыдущему примеру, здесь используется оператор FETCH для выборки текущей строки в переменную, объявленную с именем CustRecord. Однако в отличие от предыдущего примера, здесь оператор FETCH находится внутри цикла LOOP, так что он выполняется снова и снова.
Понятие курсора. Работа с курсорами.