- •Базы данных
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архигсюура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •Сотоудники
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •1996 1994 Петров Смирнов Яковлев
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •I аспределенное Удаленное Распределен- Удаленн! 1йдо- Распределен- предстаеление представление ная функция ступ к данным наяЬд
- •4.5. Информационные системы в Интернете и интранете
- •Часть 2. I Ъоектиросанн ? и использование бд
- •7. Средства автоматизации проектирования
- •7.1. Основные определения
- •7.8. Рекомендации по применению case-систем
- •9. Дополнительные вопросы применения баз данных
- •9.1. Программно-аппаратные платформы
- •9.2. Перспективы развития субд
- •9.3. Стандартизация баз данных
- •9.4. Характеристика технологии ado.Net
- •10.1. Общая характеристика
- •10.2. Новые возможности Microsoft Access 2002
- •10.3.Средства поддержки проектирования
- •10.4. Создание основных элементов бд
- •IQdbl mdb
- •Option Compare Database Public Function funl() beep End Function
- •10.5. Работа с гиперссылками
- •10.6. Использование языка sql
- •Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
- •10.7. Защита баз данных
- •10.9. Обслуживание баз данный
- •10.10. Репликация баз данных
- •Реплицируемые объекты
- •Реплицируемые объекты
- •10.11. Работа с мультимедиа-данными
- •Тип объекта
- •Comic Chat Boom Microsoft Graph so Music Prop pry Page 2 1 Option f ropery Page21 Ры-ndox FableВидео-клип
- •10.12. Создание файлов приложений
- •10.13. Страницы доступа к данным
- •Краткая характеристика отличий сДд от форм и отчетом
- •10.14. Разработка проекта
- •Распределение атрибутов по вариантам
- •11.1. Пользовательский интерфейс
- •11.2. Характеристика проекта
- •11.3. Компиляция и выполнение проекта
- •11.4. Разработка приложения
- •11.5. Средства интегрированной среды разработки
- •Управление параметрами среды
- •11.6. Базы данных и средства работы с ними
- •Компоненты приложений для баз данных
- •11.7. Создание таблиц базы данных
- •11.8. Создание приложения bde
- •Значения свойств компонентов
- •11.9. Работа с отчетами
- •12. Субд Visual FoxPro 8.0
- •12.1. Общая характеристика
- •12.2. Новые возможности Visual FoxPro 8.0
- •12.3. Элементы проекта
- •12.4. Интерфейс Visual FoxPro
- •12.5. Средства автоматизации разработки
- •12.6. Создание баз данных
- •12.7. Таблицы и индексы
- •12.8. Организация межтабличных связей
- •12.9. Обеспечение ссылочной целостности
- •12.10. Создание запросов
- •Variables:
- •13. Microsoft sql Server 2000
- •13.1. Характеристика sql Server
- •13.2. Язык запросов Transact-sql
- •13.3. Системные базы данных и таблицы
- •13.4. Создание баз данных
- •13.5. Работа с таблицами
- •15.1. Принципы функционирования Web-приложений
- •15.2. Архитектура Web-приложений, публикующих бд
- •15.3. Обзор Web-серверов
- •15.4. Использование Personal Web-server
- •15.5. Использование Microsoft Internet Information Server
- •15.6. Использование Apache дляMicrosoft Windows 9х/2000
- •Вы видите это вместо ожидаемой страницы?
- •15.7. Варианты создания Web-узла
- •16. Интерфейсы программирования Web-приложений
- •16.1. Общий интерфейс взаимодействия cgi
- •18. Публикация бд средствами Microsoft Access
- •18.1. Характеристика вариантов публикации
10.6. Использование языка sql
Для построения и выполнения произвольной запросной функции в Access очень удобным и доступным яв 1яется язык запросов по образцу QBE, поддержанный мощным интерфейсом пользователя. Язык SQL в некотором роде скрыт от пользователя, хотя весьма важен при составлении VBA-npoiрамм в приложениях Access. В этом подразделе опишем, как используется язык SQL в различных объектах БД Access. Краткая справочная информация по реализованному в Access диалекту SQL приводится в Приложении 2.
Особенности применения запросов SQL
Напомним, что запросом SQL называют запрос, создаваемый с помощью инструкции SQL. Примерами запросов SQL являются запросы на объединение, запросы к серверу, управляющие и подчиненные запросы.
Запрос на об единение — это такой запрос, в котором объединяв тс я поля (сто. (бцы) одной или нескольких таблиц или запросов в одно поле или столбец в результирующем наборе записей. ] 1апример, шесть продавцов каждый месяц представляют руководству описи имеющихся товаров. Создав запрос на объединение, можно объединить эти описи в результирующем наборе записей, а затем разработал ^ запрос на создание таблицы, основанный иг запросе на объединение.
Запрос к i ерверу выполняет передачу через ODBC команд SQL-серверу, например, Microsoft SQL Server. Запросы к серверу позв эляют непосредственно работать с таблицами на сервере вместо их присоединения. Результатом выполнения запроса к серверу может быть загрузка записей или изменение данных
Управляющий запрос создает или изменяет объекты ба.лы данных, такие как таблицы Access или SQL Server.
Подчиненна ш запрос состоит из инструкции SQL SELECT находящейся внутри другого запроса на выборку или запроса на изменение. Эти инст рукции вводятся в строку «Поле» бланка запроса для определения нового поля или в строку «Условие отбора» для определения условия отбора по ля. Подчиненные запросы используются для выполнения следующих действий:
поогерка в подчиненном запросе сущес твования некоторых результатов с помощью зарезервированных с лов EXISTS или NOT EXISTS;
поиск в главном запросе любых значений, которые равны, больше или меньше значений, возвпащаемых в подчиненном запросе (с помощью зарезервированных слов ANY, IN или ALL);
создание подчиненных запросов вну три подчиненных запросов (вложенных подчиненных запросов).
f
Связь языков QBE и SQL
В Access между языками QBE и SQL имеется тесная t вязь. Запросные таблицы (бланки, формы) на языке QBE, заполняемые пользователем, перед непосредственным вычолш нием преобразуются в выражения (или сообщения) SQL. То есть язык SQL является внутренним стандартом на выполнение запросов. Такой механизм имеет преимущество, поскольку позволяет внутри системы Access унифицировать под^товку запросов к выполнению на локальном и удаленном компьютерах. В последнем случае SQL-сообщение реально передает» я к компьютеру-серверу запроса.
В Access запрос может находиться в одном из трех режимов (состояний): Конструктора, SQL и таблицы. Режим Конструктора применяют для разработки нового запрос? с чистого листа (без использования Мастеров иди других средств) или д ля изменения макета существующего запроса. Режим SQL применяют для ввода или просмотра инструкций SQL. Режим таблицы применяют для работы с результат ами выполнения запроса.
В режим таблицы запрос переходит при выборе нужного запроси во вкладке Запросы (Queries) окна БД и нажатии кнопки Открыть (Open). Нажатие кнопки Конструктор (Design) или Создать (New) в окне БД пер< водит зап pot в режим Конструктора. В режим SQL можно попасть из других режимов по команд.3 основного меню Вид | Режим SQL (View | SQL).
Приведем пример состояний для одного и того же запроса. Предположим, мы открыли БД «Борей», в которой нас интересует запрос под названием «Деся гь самых дорогих товаров» (рис. 10.22).
Рис.
10.22. Окно примера БД «Борей:
Писле
открытия запроса можно увидеть результат
его выполнения (рис. 10.23).
gp
Десять
самых дорогих товаров запрос на
выбо... Hill1
[Й
ьаиыеДомогиеТовары
Цена
►
v
t ^^H^^I^H^H
1
185 750 .OOp
Thuringer
Rostbratwurst
557
055,0011
Mishi
Kobe Niku
43d
500 ,00P
Sir
Rodney's Marmalade
364
500,00p
Carnarvon
Tigers.
281
250,00^
Raciette
Courdavault
247
500.OOp
Mannmup
Dried Apjales
i3B500.ОПр
Tarte
du sucre
221
850,00р.
Ipoh
Coffee
207
000.OOp
Rossle
Sauerkraut
205
200,00p
Запись.
н| < || 1 ► 1м1>*| Всего: 1Р
Рис.
10.23. Результат выполнения запроса
«Десять самых дорогих товаров»
Перейдя ь режим Конструктора, видим структуру запроса в виде бланка QBE фис 10.24).
sip® Десять самыг дорогих товаров : запрос на выборку
КцаТавара
Марка КодПоставщ КодТипа т j
wm
|
Цена |
|
~ л. |
Товары |
Товары |
|
|
|
по убыванию |
|
|
M |
м |
и |
|
|
| ||
ILL |
±Г |
Поле.
Имя таблицы. Сортировка. Вывш на экран:
Услстие отборь.
или.
Рис. 10.24. Запрос на языке QBE
В режиме SQL в окне отображается формулировка запроса в виде инструкций на языке SQL (рис. 10.25).
!
jp
Десять
самых дорогих товаров : запрос на
выборку
MJnte, SELECT
DISTINCTROW ТОР 10 Товары.МаркаAS
а СамыеДорогиеТовары,
Товары.Цена
FROM
Товары
ORDER
BY Товары.ЦенаDESC;
-J
Рис.
10.25. Запрос на языке SQL
SQL в формах и отчетах
Основными источниками записей в игранных Формах и отчетах являются таблицы и запросы. Во втором случае запросом может быть готовый запрос к БД или создаваемый при разработке формы или отчета. Описать ноьый запрос как источник записей при разработке формы или отчета в режиме Конструктора можно следующим образом.
Открыть окно базы данных и на вкладк^ Формы (Forms) или Отчеты (Reports) нажать кнопку Создать (Mew).
В очередном окне выбрать режим создания объекта с помощью Конструктора и нажать ОК.
В окне создания новой формы или отчета подвести курсор мыши к заголовку окна и в контекстном меню выбрать пункт Свойства (Properties).
В появившемся окне Форма (Form) или Отчет (Report) на вкладке Данные (Data; определи гь источник записей с помощью SQL-зыpaж( ния. вводимого в поле ввода свойства «Источник записей», или с помощью Построителя запросов, вызываемого нажатием кнопки напротив поля ивода SQL-выражения. При вызове Построителя запросов появляется окно добавления таблиц и запросов в модель запроса (рис. 10.26).
Ввести нужные таблицы/запросы в схему запроса-источника записей, получив тем < амым формируемый запро<, возможный вид которого показан на рис. 10.27.
Добавление таблицы
Щ Т эблицы ' dp Запросы ] |Ц| Таблицы и запросы |
оставкз
Заказано
Наказы
клиенты
Поставщики
Сотрудники
Типы
?|
XI
Добавить
Закрыть
Рис. 10.26. Окно добавления таблиц и/или запоосов
Инструкция
SQL
:
построитель запросов
Постсзшики
КццПосгавщ
Название
Обращаться! Должность jrj
1
ж
L
13
КадТс
-ipa
Марка
КодПоставш КодТипа
tJ
Kqi Товара |
Марка |
Название |
Телефон | |
Товары |
Товары |
Поставщики |
Поставщик^— | |
|
|
|
| |
И |
м |
м |
м | |
* 1 1 |
чг ■1Г |
Поле
Имя таблицы: Сортировк Вывод нэ экран.
Условие отбора или:
Рис. 10.27. Вид формируемого запроса
От этого запроса легко перейти к SQL-выражению одним из описанных способов, например, по команде Вид | Режим SQL (View | SQL).
SQL в макрокомандах
Макрокоманды входят в состав макросов, которые используются для автоматизации выполнения часто повторяющихся действий в работе с БД. Макрос представляет собой одну или несколько макрокоманд с аргумент а ми.
Макросы вызываются из окна БД или автоматически при наступлении определенных событий. В последнем случае требуется связать макрос с нужным событием. Событием, по которому вызывается макрос, может быть, например, нажатие кнопки в области экранной формы или открытие окна БД.
Наряду с выполнением некоторых действий над обьектами БД макросы могут вызывать другие макросы, программы на Visual Basic и внешние приложения.
Из множества макрокоманд (около 50) с SQL непосредственно связаны две макрокоманды: 3anycK3anpocaSQL (RunSQL) и ОткрытиЗаприс (OpenQuery).
Макрокомандп 3anycK3anpocaSQL запускает запрос на изменение или уп равляющий запрос Access с помощью соотьетствующей инструкции SQL. Эта макрокоманда делает возможным ьыполнение действий в макросе без предварительного создания сохраненных запросов. С помощью макрокоманды можно выполнять и сохраненные запросы.
Запросами на изменение являются инструкции SQL (подраздел 3.9), реализующие следующие функции: добавление (INSERT INTO), удаление (DELETE), создание таблицы (SELECT...INTO) и обновление (UPDATE).
Управляющими запросами являются инструкции SQL, выполняющие следующие функции: создание таблицы (CREATE TABLE), изменение таблицы (ALTER TABLE), удаление таблицы (DROP TABLE), создание индекса (CREATE INDEX) и удаление индекса (DROP INDEX).
Единственным и обязательным аргументом макрокоманды 3anycK3anpocaSQL являет ся инструкция SQL. Максимальная длина инструкции SQL составляет 255 символов. Для выполнения инструкции SQL длиной более 255 символов следует вызвать метод RunSQL объекта DoCmd в программе VBA. В программах VBA допускается использование инструкций SQI. длиной до 32768 символов.
Аргумент макрокоманды в виде текста SQL-инструкции вводится вручную в окне ввода макрокоманды или копируется из окна SQL, что часто удобнее. Для выполнения последней манипуляции можно поступить так: войти в режим Конструктора запросов, создать запрос, получить эквива лентный оператор SQL, выделить его и поместить в буфер обмена. Пример готовой к выполнению макрокоманды с оператором SQL приведен на рис. 10.28.