|
Программирование >> Проектирование интерфейса пользователя
Различные диалекты и реализации SQL далеко не равнозначны. Хотя многие из них целиком или частично поддерживают стандарты SQL, разработанные ANSI (American National Standards Institute - Американским институтом национальных стандартов, неправительственной организацией, которая создает промышленные стандарты, не обязательные в применении. - Прим ев.), существуют и более принципиальные отклонения. На этом занятии вы научитесь создавать код SQL, поддерживаемый Access 2002. Перенести его в среду другой системы управления базами данных сопряжено с внесением в текст программы некоторых изменений. Если, тестируя такой код, вы столкнетесь с проблемами, обратитесь к фирменной документации, поставляемой в комплекте с программным обеспечением сервера базы данных. Итак, этот урок посвящен вопросам программирования на SQL в среде Access 2002. Основные темы занятия. Различные формы команды SELECT. Изменение содержимого базы данных с помощью команд UPDATE, INSERT и DELETE. Объекты ADODB и хранимые процедуры Access. Использование выражения SELECT Команда SELECT - одно из самых популярных, многогранных и гибких выражений языка SQL. SELECT возвращает набор данных, отобранных на основании указанных критериев фильтрации и упорядоченных в соответствии с заданными условиями. Выражение SELECT способно принимать как простую, так и чрезвычайно сложную форму, реализовать точную и исчерпывающую логику отбора данных. В пределах команды SELECT может одновременно выполняться несколько операций - фильтрация, группировка, сортировка данных и вычисления. Ниже мы рассмотрим некоторые формы команды разной степени сложности. И начнем мы с нескольких достаточно простых примеров. Простые формы SELECT Команда SELECT в своей самой простой форме состоит из служебного слова SELECT. За ним следуют список необходимых полей и предложение FROM, которое указывает на таблицу, содержащую названные поля: SELECT СписокПолей FROM ИмяТаблицы В соответствии с общепринятым соглашением служебные слова SQL вводятся в верхнем регистре (как это сделано в тексте синтаксической формулы, приведенной выше). Стоит соблюдать это правило или нет -решать вам; главное - будьте последовательны в своих действиях. Интересно, что в практике виртуального общения в Internet слова, набранные прописными буквами, служат для обозначения повышенной громкости речи. Впрочем, SQL был придуман задолго до появления электронной почты, программы NetMeeting и переговоров в режиме chat. SELECT и FROM - это служебные слова SQL: SELECT обозначает название команды, а FROM - предложение вл5пошее источник данных. В качестве параметра СписокПолей допускается применять либо символ звездочки (*), указывающий на то, что в результат выборки должны быть включены все поля таблицы, либо наименований полей, разделенных символом запятой. Вы можете отобрать любое число полей таблицы. Далее мы будем обращаться к той же базе даннтх, которая использовалась нами на прошлом занятии. Предполагается, что база содержит две таблицы. Первая носит название MUSIC, состоит из следующих полей: ID AutoNumber, ARTIST Text(50), TITLE Text(50), EORMAT Text(50), PUBLISHER Text(50) - и предназначена для хранения сведений о музыкальных альбомах. Структура второй таблицы, TRACKS, содержащей информацию об отдельных композициях альбомов, описывается таким перечнем нолей: ID AutoNumber, MUSIC ID Number, TRACK T1TLE Text(50) и TRACK LENGTH Date/rime. Например, чтобы получить полное содержимое таблицы MUSIC (т.е. все ее записи со всеми полями), достаточно выполнить команду SELECT * FROM Music Чтобы протестировать указанную команду, вы должны предварительно создать таблицу с перечисленными выше полями и заполнить ее информацией о любимых звукозаписях. Затем выполните следующие действия. Откройте базу данных, содержащую таблицу 2. В окне базы данных выберите элемент Запросы (Queries) списка Объекты (Objects). 3. Щелкните на кнопке Создать (New) панели инструментов. 4. В диалоговом окне Новый запрос (New Query) выберите режим Конструктор (Design View) и щелкните на кнопке ОК. 5. Откроется диалоговое окно Добавление таблицы (Show Table). Щелкните на кнопке Закрыть (Close). Па экране останется открытым окно Запрос на выборку (Query Designer) . 6. Выберите в строке меню главного окна Access команду SQL SQL View). 7. Введите текст команды SELECT * FROM Music. 8. Чтобы выполнить команду SQL, выберите в строке меню Run). Далее в ходе этого занятия вы сможете, если не будет дополнительных указаний, использовать данную инструкцию для тестирования всех примеров кода на языке SQL. В некоторых случаях будут демонстрироваться и другие способы создания SQL-кода, не требующие ввода текста в окне базы данных. Не забывайте почаще сохранять результаты своей работы. Работая над текстом запроса, можно сохранить его в любой момент - достаточно выбрать команду меню Файл=Сохранить (File=Save) (или Файл=>Сохранить как (File=> Save As), если операция выполняется впервые). Фильтрация данных с помощью предложения WHERE Предложение WHERE команды SELECT используется в тех случаях, когда необходимо ограничить множество записей, возвращаемых запросом. Предложение WHERE, помимо выражения SELECT, употребляется и в других конструкциях SQL. Сведения, которые приведены в этом разделе, в равной степени применимы к командам SELECT, UPDATE И DELETE. В конструкции SELECT предложение WHERE занимает место после FROM. Синтаксис WHERE в контексте выражения SELECT таков: ▲ SELECT СписокПолей FROM ИмяТаблицы WHFRF ИмяПоля Оператор ратор Значение . . . ] Значение [OR AND ИмяПоля One- Предложение WHERE располагается после предложения FROM. За служебным словом WHERE следует набор предикатов в формате ИмяПоля Оператор Значение. Количество предикатов (выражений сравнения) не ограничено. В качестве аргумента Оператор используется любой из обычных операторов сравнения. ИмяПоля - это наименование одного из полей таблиц, имеющих отношение к запросу, а Значение - величина соответствующего типа (символьные литералы заключаются в одинарные кавычки). Предикату может предшествовать служебное слово NOT, обозначающее унарный оператор отрицания. Предикаты склеиваются посредством логических операторов конъюнкции (AND) и дизъюнкции (OR) (реже - других). Листинг 16.1 содержит несколько примеров запросов, каждый из которых легко протестировать в окне Запрос на выборку. Все они предназначены для получения данных из таблицы MUSIC. Листинг. 1. Примеры использования команды SELECT
FROM Music FROM Music WHERE Artist = Elvis Presley FROM Music WHERE Publisher = Elektra AND Artist о Natalie Merchant FROM Music WHERE Artist DIKE Natalie* FROM Music WHERE Artist о Elvis Presley AND Artist DIKE Elvis* FROM Music WHERE NOT (Artist DIKE Natalie*) Каждая строка листинга - это отдельный запрос. Строка 1 возвратит все записи таблицы music Запрос строки 2 предполагает отбор только тех записей, которые имеют отношение к Элвису Пресли (Elvis Presley). В строке 3 выполняется поиск строк данных о музыкальных альбомах (выпущенных звукозаписывающей компанией Elektra) всех исполнителей, кроме Натали Мэтчент (Natalie Merchant). Строка 5 содержит пример операции поиска по маске. Символ звездочки (*) в тексте искомого аргумента обозначает любую последовательность символов (в том числе и нулевой длины). Так, запрос строки 4 возвратит информацию о звукозаписях всех исполнительниц по имени Natalie (может быть, даже Наташи Королевой). Следующая команда предполагает поиск записей всех Элвисов, кроме знаменитого Элвиса Нресли (вероятно, собранный урожай сведений окажется не слишком богатым, если только вы не ярый поклонник Элвиса Костелло (Elvis Costello)). Наконец, запрос последней, 6-й, строки возвратит все записи таблицы MUSIC, кроме тех, в которых упоминается любая из Natalie. Операторы применяемые в предложении WHERE SQL - довольно выразительный язык программирования. Реализация SQL, поддерживаемая Access 2002, совместима со стандартом ANSI-89. Чтобы изменить версию ANSI-89 на ANSI-92, выберите команду СервисПараметры (ToolsOptions), перей-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |