Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 14
Текст из файла (страница 14)
В инструкцию SELECT может быть вложена другая инструкция SELECT, SELECT...INTO, INSERT...INTO, DELETE или UPDATE.Различают основной и подчиненные запросы, которые являются вложенными в основной запрос.Подчиненный запрос можно использовать вместо выраженияв списке полей инструкции SELECT или в предложениях WHEREи HAVING. Существуют три типа подчиненных запросов:• сравнение (ANY|ALL|SOME) (инструкция);• выражение [NOT] IN (инструкция);• [NOT] EXISTS (инструкция).Запрос первого типа служит для сравнения выражения с результатом подчиненного запроса.Ключевые слова: ANY — каждый; ALL — все; SOME — некоторые.Пример 2.18.
Использование подчиненного запроса:SELECT * FROM Оценка WHERE [Результат] > ANY (SELECT[результат] FROM Оценка WHERE Результат. [№ зач.книжки]="123124")В этом случае отбираются только те записи из таблицы ОЦЕНКА, вкоторых значение результата больше каждой оценки студента с номеромзачетной книжки 123124.Запрос второго типа представляет собой выражение, котороедолжно быть найдено в наборе записей, являющихся результатомвыполнения подчиненного запроса.Пример 2.19. Использование подчиненных запросов:1.
SELECT * FROM Студент WHERE [№ зач. книжки] IN(SELECT [№ зач.книжки] FROM Оценка WHERE [Результат]>=4)2. SELECT * FROM Дисциплина WHERE [Код дисциплины]NOT IN (SELECT [Код дисциплины] FROM Оценка)В первом случае отбираются студенты, которые в таблице ОЦЕНКАимеют результат 4 или выше.Во втором случае отбираются дисциплины, которые не встречаютсяв таблице ОЦЕНКА.70Запросом третьего типа является инструкция SELECT , заключенная в круглые скобки, с предикатом EXISTS в логическомвыражении для определения, должен ли подчиненный запрос возвращать какие-либо записи.Пример 2.20. Использование подчиненного запроса:SELECT * FROM Студент WHERE EXISTS (SELECT * FROMОценка WHERE Сотрудник. [№ зач.книжки] = Оценка.
[№ зач.книжки])В этом случае отбираются студенты, которые имеют хотя бы однуоценку.2.9. Формы — диалоговый графический интерфейс дамработы пользователя с базой данныхФормы предназначены для ввода и просмотра взаимосвязанныхданных БД на экране в удобном для пользователя виде. Формыможно распечатывать, а также применять для создания панелейуправления в приложении.Любая форма, с помощью которой хотят просматривать, вводить или редактировать записи таблиц БД, должна быть предварительно сконструирована.
В процессе подготовительной работыпо разработке формы необходимо определить, из каких таблицнужно отображать данные, какие именно поля должны быть представлены в форме, нужны ли вычисляемые поля, какие графические элементы (линии, полегающие текст рисунки) будут использоваться для оформления.2.9.1.
Основы создания формыОднотабличная форма может быть создана пользователем врежиме конструктора форм или с помощью мастера. В первом случае создание начинается с пустой формы и конструирование полностью возлагается на пользователя. Для создания однотабличнойформы целесообразно использовать мастер форм или командыавтоформы.Чтобы начать создание формы, надо в окне базы данных выбрать закладку Формы и нажать кнопку [Создать].
Открывшееся диалоговое окно Новая форма (рис. 2.6) предоставляет возможностьвыбрать один из режимов создания формы: Конструктор, Мастерформ, Автоформа: в столбец, Автоформа: ленточная, Автоформа:табличная, Диаграмма, Сводная таблица.71Н овая ф о р м аМастер формАвтоформа: в столбецАвтоформа: ленточнаяАвтоформа: табличнаяДиаграммаСводная таблицаРис. 2.6. Создание новой формыФормы, которые удовлетворяют любому, даже самому требовательному вкусу, можно создать с помощью конструктора. Эффективно быстрое создание форм с помощью мастера и дальнейшее их совершенствование с помощью конструктора.Мастер форм может создать форму для одной таблицы или длянескольких взаимосвязанных таблиц.
При выборе только однойтаблицы могут быть созданы формы: В один столбец, Ленточнаяили Табличная.Форма В один столбец выводит в виде колонок для просмотраданные только одной записи, поля которой расположены в нужном порядке (рис. 2.7).Ленточная форма выводит одну и более записей в зависимостиот того, сколько можно уместить их на экране (рис. 2.8).Табличная форма выводит данные обычным табличным способом, но в отличие от таблиц может выбирать поля для вывода(рис.
2.9).Мастер форм позволяет пользователю определить, какие полятаблицы включаются в форму, и выбрать стиль ее оформления.Выбор таблицы для создания формы может быть произведен как вК а т е го р и я об о р уд о ва н и яІ'ои катог іі^ЛИИиЪ Ору Л/1И в сіг-. -у!!’••!;Я1'.............................Запись: Н І < I IРис. 2.7. Форма В один столбец721К а те го р и я оборудования?>_‘\ !^1Ь'________'''H i < l |''. '3.2 ;Sky системы3 VR.V системы4 iHRV системы5Id a c m s6 Packaged системы7 Fan coils8: Chillers9: AccessoriesИ........... 1...........111 » 1К1МЙМ|* •Рис. 2.9.
Табличная формаокне Новая форма, так и в первом диалоговом окне мастера Создание форм.С помощью команд Автоформа: в столбец, Автоформа: ленточная и Автоформа: табличная для заданной таблицы создаютсяформы, которые отличаются от форм, создаваемых мастером, тем,что включают в себя все поля таблицы и не предоставляют возможности выбора стиля оформления.
Эти команды, не вступая вдиалог с пользователем и не отображая формы в режиме конструктора, выводят ее на экран в режиме формы, т. е. заполненнуюзначениями из таблицы. Заметим, что таблица, для которой строится форма, выбирается в окне Новая форма. Форма, созданная73Рис. 2.10. Редактирование формы в режиме конструкторамастером, так же, как и форма, созданная любой командой Автоформа, может быть отредактирована в соответствии с требованиями пользователя.
Редактирование выполняется в режиме конструктора форм (рис. 2.10).Последние опции — Диаграмма и Сводная таблица — позволяют создавать достаточно специализированные по своим задачамформы и активно используют ОЬЕ-технологии.2.9.2. Элементы управленияВсе сведения в форме или отчете содержатся в элементах управления.Элементы управления — это объекты формы или отчета, которые служат для вывода данных на экран, выполнения макрокоманд или оформления формы или отчета.
Например, поле можноиспользовать для вывода данных на экран в форме или отчете,кнопку — для открытия другой формы или отчета, а линию илипрямоугольник — для разделения и группировки элементов управления с тем, чтобы они лучше воспринимались пользователем.В Microsoft Access на панели элементов в режимах конструктора формы и конструктора запроса имеются следующие типы элементов управления (см.
рис. 2.10): надпись, поле, группа, выключатель, переключатель, флажок, поле со списком, список, кнопка, рисунок, свободная рамка объекта, присоединенная рамкаобъекта, разрыв страницы, набор вкладок, подчиненная форма/отчет, линия, прямоугольник и дополнительные элементы HTMLи ActiveX.74Элементы управления могут быть связанными, свободными иливычисляемыми. Связанные элементы управления присоединены кполю базовой таблицы или полю запроса и используются для отображения, ввода или обновления значений из полей базы данных.Для вычисляемого элемента управления в качестве источника данных используется выражение, в котором могут быть данные изполя базовой таблицы или поля запроса для формы или отчета, атакже данные другого элемента управления формы или отчета.
Длясвободных элементов управления источников данных не существует.Используются они для вывода на экран данных, линий, прямоугольников и рисунков.Надписи предназначены для отображения в форме или отчетеописательных текстов: заголовков, подписей или кратких инструкций. В надписях не выводятся значения полей или выражений;они всегда являются свободными и не меняются при переходе отзаписи к записи.Надпись может быть присоединена к другому элементу управления (такую надпись называют подписью).
Например, если полесоздается с присоединенной надписью, которая содержит подпись этого поля, эта надпись появляется как заголовок столбца вформе в режиме таблицы.Надпись, созданная с помощью инструмента «Надпись», размещается отдельно и не присоединяется ни к какому элементууправления. Такие надписи используются для отображения разных сведений (например, заголовков формы или отчета), а такжедля вывода поясняющего текста. Надписи, не присоединенные кэлементам управления, не отображаются в режиме таблицы.Поля, используемые в форме или отчете для отображения данных из таблицы, запроса или инструкции 5 0 Ь, называют присоединенными, потому что они связаны с данными в поле в источнике данных.