Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (960530), страница 66
Текст из файла (страница 66)
В режим S Q L можно попасть из других режимовпо команде основного меню В и д | Р е ж и м S Q L ( V i e w | S Q L ) .Приведем пример состояний для одного и того же запроса. Предположим,мы открыли Б Д «Борей», в которой нас интересует запрос под названием«Десять самых дорогих товаров» (рис. 10.22).-iPlxlБорей : база данных (формат Access 2000)j§j ОткрытьОбъектыЩТаблицы(|[р ЗапросыЭФормытОтчетыDСтраницыаМакросыМодулиГруппыКонструкторфСоздать ; XЩ Создание запроса в режиме конструктораt J Создание запроса с помощью мастераifi Выбор счетае№ •Десять самых дороги тоЕ.ариЕ.еР Запрос Заказыт Итоги продаж по объемуоР Квартальные оборотыш Квартальные обороты по товарамGD Клиенты и поставщики по городамоР Продажи по годамоР Продажи по сотрудникам и странамl L1|РПродажи по типам|!РПродажи по типам в 1997(jРПродажи товаров в 1997РПромежуточная сумма заказа|ijРСведения о заказах(jjРСписок имеющихся товаров0РСписок товаровЦРСумма продаж по кварталам[1РСуммы продаж по годам(j РСчетаЦРТовары по типамРис.
10.22. Окно примера БД «Борей»Часть 3. Современные СУБД и их применение314П о с л е о т к р ы т и я запроса м о ж н о увидеть результат его в ы п о л н е н и я(рис.10.23).gjp Д е с я т ь самых дорогих т о в а р о в : запрос на выбо... И р й Ц ЗС а и ы еД о р о г и е Т о в а р ыЦена1 185 750,00р.•Thuringer Rostbratwurst557 055,00р.Mishi Kobe Niku436 500 00pSir Rodney's M a r m a l a d eCarnarvon Tigers364 500,00р.Г2 8 1 2 5 0 .OOp 1Raclette Courdavault247 500,00р.M a n j i m u p Dried A p p l e s238 500,00р.Tarte au sucre221 8 5 0 Д ) р 1Ipoh Coffee207 000,00р.Rossle Sauerkraut205200,00р.*Запись: J i J i l l1• 1 и .
| > * | Всего: 10Р и с . 10.23. Р е з у л ь т а т в ы п о л н е н и я з а п р о с а « Д е с я т ь с а м ы х д о р о г и х т о в а р о в »Перейдя в режим Конструктора, видим структуру запроса в виде бланкаQ B E (рис. 10.24).gjj-В Десять самых дорогих товаров : запрос на выборкуП Т о ШКодТовараМаркаКодПоставщКодТипа^J«IIПоле: |СамыеДорогиеТ о | Н ЦенаИмя таблицы: ТоварыТоварыСортировка:по убываниюВывод на экран:мМУсловие отбора:или:.1.1 1Р и с . 10.24. З а п р о с на я з ы к е Q B E—жU•п10. СУБД Access 2002315В режиме S Q L в окне отображается формулировка запроса в виде инструкций на языке S Q L (рис. 10.25).gjp Десять самых дорогих товаров : запрос на выборку•-InlxlSELECT DISTINCTROW ТОР 10 Товары.Марка ASСамыеДорогиеТовары, Товары.ЦенаFROM ТоварыORDER BV Товары.Цена DESC;Рис. 10.25. Запрос на языке SQLSQL в формахиотчетахОсновными источниками записей в экранных формах и отчетах являютсятаблицы и запросы.
Во втором случае запросом может быть готовый запрос кБ Д или создаваемый при разработке формы или отчета. Описать новый запрос как источник записей при разработке формы или отчета в режиме Конструктора можно следующим образом.1. Открыть окно базы данных и на вкладке Ф о р м ы ( F o r m s ) или О т ч е т ы(Reports) нажать кнопку Создать (New).2.
В очередном окне выбрать режим создания объекта с помощью Конструктора и нажать ОК.3. В окне создания новой ф о р м ы или отчета подвести курсор мыши к заголовку окна и в контекстном меню выбрать пункт С в о й с т в а(Properties).4. В появившемся окне Ф о р м а ( F o r m ) или О т ч е т ( R e p o r t ) на вкладке Д а н н ы е ( D a t a ) определить источник записей с помощью SQL-выражения,вводимого в поле ввода свойства «Источник записей», или с помощьюПостроителя запросов, вызываемого нажатием кнопки напротив поляввода SQL-выражения. При вызове Построителя запросов появляетсяокно добавления таблиц и запросов в модель запроса (рис.
10.26).5. Ввести нужные таблицы/запросы в схему запроса-источника записей,получив тем самым формируемый запрос, возможный вид которого показан на рис. 10.27.Часть 3. Современные СУБД и их применение316ИШДобавление таблицыШТаблицы I цР Запросы j |р) Таблицы и запросы |ДобавитьЗакрытьЗаказаноЗаказыКлиентыПоставщикиСотрудникиТипыТоварыРис.
10.26. Окно добавления таблиц и / и л и запросовgjp Инструкция SQL : построт"ель запросовBSDТоварыПоставщикиКоаТовараМаркаКодПоставщКодТипаjiJКодПосганцНазваниеОбращаться!ДолжностьПоле; КодТовараИмя таблицы: ТоварыСортировка:Вывод наэкрай:мУсловие отбора;МаркаТоварыНазваниеПоставщикиимТелефонПоставщики—и•ГШРис. 10.27.
Вид формируемого запросаОт этого запроса легко перейти к SQL-выражению одним из описанныхспособов, например, по команде В и д | Р е ж и м S Q L ( V i e w | S Q L ) .10. СУБД Access 2002317SQL вмакрокомандахМакрокоманды входят в состав макросов, которые используются для автоматизации в ы п о л н е н и я часто повторяющихся действий в работе с БД.Макрос представляет собой одну или несколько макрокоманд с аргументами.М а к р о с ы в ы з ы в а ю т с я из окна Б Д или автоматически при н а с т у п л е н и иопределенных событий. В последнем случае требуется связать макрос сн у ж н ы м с о б ы т и е м . С о б ы т и е м , по к о т о р о м у в ы з ы в а е т с я макрос, м о ж е тбыть, например, н а ж а т и е кнопки в области экранной ф о р м ы или открытие окна Б Д .Наряду с выполнением некоторых действий над объектами Б Д макросымогут вызывать другие макросы, программы на Visual Basic и внешние приложения.И з множества макрокоманд (около 50) с S Q L непосредственно связаныдве макрокоманды: 3 a n y c i < 3 a n p o c a S Q L ( R u n S Q L ) и О т к р ы т ь З а п р о с(OpenQuery).Макрокоманда 3anycK3anpocaSQLзапускает запрос на изменение или управляющий запрос Access с помощью соответствующей инструкции SQL.
Этамакрокоманда делает возможным выполнение действий в макросе без предварительного создания сохраненных запросов. С помощью макрокомандыможно выполнять и сохраненные запросы.Запросами на изменение я в л я ю т с я и н с т р у к ц и и S Q L (подраздел 3.9), реализующие следующие функции: добавление ( I N S E R T I N T O ) , удаление( D E L E T E ) , создание т а б л и ц ы ( S E L E C T . . . I N T O ) и обновление ( U P D A T E ) .Управляющими запросами являются инструкции SQL, выполняющие следующие функции: создание таблицы (CREATE TABLE), изменение таблицы( A L T E R T A B L E ) , удаление таблицы ( D R O P T A B L E ) , создание индекса( C R E A T E I N D E X ) и удаление индекса ( D R O P I N D E X ) .Единственнымиобязательнымаргументоммакрокоманды3anycx3anpocaSQLявляется инструкция SQL.
Максимальная длина инструкции S Q L составляет 255 символов. Д л я выполнения инструкции S Q L длиной более 255 символов следует вызвать метод R u n S Q L объекта DoCmd впрограмме VBA. В программах VBA допускается использование инструкцийS Q L длиной до 32768 символов.Аргумент м а к р о к о м а н д ы в виде текста S Q L - и н с т р у к ц и и вводится вручную в окне ввода м а к р о к о м а н д ы и л и копируется из окна SQL, что частоудобнее. Д л я в ы п о л н е н и я последней м а н и п у л я ц и и можно поступить так:войти в режим Конструктора запросов, создать запрос, получить эквивал е н т н ы й оператор SQL, в ы д е л и т ь его и поместить в б у ф е р обмена. Пример готовой к в ы п о л н е н и ю м а к р о к о м а н д ы с оператором S Q L приведен нарис. 10.28.Часть 3.
Современные318СУБД и ихприменениетшшШ. Макрос! : макросМакрокоманда3anycK3anpocaSQL1Примечание'L|——Аргументы макрокомандыИнструкция SQLSELECT DISTINCTROW TOFСтолбец для ввода примечаний.Рис. 10.28. Макрокоманда с оператором SQLМакрокоманда ОткрытьЗапрос позволяет открывать запрос на выборкуили перекрестный запрос (в режимах Таблицы, Конструктора и Предварительного просмотра), запускать запрос на изменение или ввод данных.
Вызов ее эквивалентен нажатию кнопки О т к р ы т ь ( O p e n ) или К о н с т р у к т о р( D e s i g n ) в окне базы данных после выбора запроса на вкладке З а п р о с ы(Queries).В макрокоманде задаются три аргумента: имя запроса, режим и режим данных. Первый аргумент задает имя открываемого запроса и является обязательным. Второй аргумент задает режим открытия запроса. Допустимымизначениями являются: «Таблица» (используется по умолчанию), «Конструктор» и «Просмотр».Третий аргумент описывает режим ввода данных в запрос. Аргумент можно применять к запросам, открываемым в режиме таблицы. Допустимые значения: «Добавление» (можно вводить новые записи, нельзя изменять существующие), «Изменение» (можно вводить новые и изменять существующиезаписи; действует по умолчанию) и «Только чтение» (разрешается просматривать записи).Для ускоренного создания макроса с этой макрокомандой можно воспользоваться следующим приемом.
Выбрать запрос в окне базы данных и переместить с помощью мыши в строку макрокоманды в макросе. При этом в макросавтоматически добавляется макрокоманда О т к р ы т ь З а п р о с , открывающаязапрос в режиме таблицы.Для вызова макрокоманды О т к р ы т ь З а п р о с в программе VBA используют метод O p e n Q u e r y объекта D o C m d .10. СУБД Access 2002319SQL в программахна VBAНапомним, что программы на VBA, как и макросы, предназначены для автоматизации выполнения повторяющихся операций над объектами БД Access.Д л я выполнения программы следует запустить содержащую ее процедуру Subи л и ф у н к ц и ю F u n c t i o n .