Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №20.doc
Скачиваний:
4
Добавлен:
24.10.2022
Размер:
61.44 Кб
Скачать

Лабораторная работа №20. Конструирование sql запросов

Цель работы:

Освоить технологии конструирования SQL запросов к базе данных. Освоить приёмы использования SQL запросов.

Теоретическая часть

Запросэто средство Microsoft Access для выборки данных из базы данных в форме таблицы, выполняемой по заданному условию, а также для выполнения определённых действий над табличными данными.

Запросы делятся на:

  • QBE-запросы (Query By Example – запрос по образцу), которые строятся с помощью конструктора в окне конструктора запросов;

  • SQL-запросы, написанные на языке SQL. SQL (Structured Query Language) – структурированный язык запросов. Это язык программирования, который очень напоминает английский, но предназначен для программ управления базами данных. Каждый выполняемый запрос на самом деле основан на SQL.

Все запросы можно разделить на 2 группы:

  • запросы-выборки;

  • запросы-действия.

Запросы-выборки извлекают данные из таблиц в соответствии с заданными условиями.

Запросы-действия предназначены для выполнения требуемых действий над данными таблиц. Они позволяют добавлять, изменять или удалять данные.

SQL-запросы на выборку.

SQL-запросы на выборку создаются инструкцией SELECT. При выполнении этой операции ядро базы данных Microsoft Jet находит указанную таблицу или таблицы, извлекает заданные столбцы, выделяет строки, соответствующие условию отбора, и сортирует или группирует результирующие строки в указанном порядке. Инструкция SELECT не изменяет данные в базе данных.

Команда имеет синтаксис:

SELECT [предикат] список_полей

FROM имена_таблиц

[WHERE критерий_поиска]

[GROUP BY критерий_группировки]

[HAVING групповой_критерий]

[ORDER BY критерий_столбца]

Аргументы инструкции SELECT имеют следующий смысл.

Список_полей служит для задания имён полей, значения которых следует включить в выборку. Список может быть задан одним из следующих способов:

  • символом *, что означает выбрать все поля;

  • таблица.*, что означает все поля из таблицы с именем таблица;

  • [таблица.] поле_1 [AS псевдоним_1] [, [таблица.] поле_2 [AS псевдоним_2] [,...]]

В этом случае таблица указывает имя таблицы, из которой должны быть отобраны записи. Поле_1, поле_2 указывают имена полей, из которых должны быть отобраны данные. Если включить несколько полей, они будут извлекаться в указанном порядке. Поля в списке разделяются запятой. Псевдоним_1, псевдоним_2 задают имена, которые станут заголовками столбцов вместо исходных названий полей (столбцов) в таблице.

Предложение FROM имена_таблиц определяет имена одной или нескольких таблиц, которые содержат отбираемые данные. Если имена полей, таблиц, псевдонимы содержат пробелы или знаки разделители, то они должны заключаться в квадратные скобки (например, Студенты. [Номер зачетной книжки]).

Предложение WHERE критерий_поиска определяет, какие записи из таблиц, перечисленных в предложении FROM, следует включить в результат выполнения инструкции SELECT.

Критерий_поиска задается выражением.

Элементы выражений.

Элементами выражения могут быть операторы, идентификаторы, функции, литералы и константы.

Операторы (=, <, >, <> (не равно), &, And, Or, Like, In, Between) определяют операцию, выполняемую над одним или несколькими элементами.

Предложение WHERE может содержать до 40 выражений, связанных логическими операторами, такими как And и Or.

Оператор Like используется для сравнения строкового выражения с образцом в выражении SQL.

Синтаксис оператора: выражение Like "образец". Образец может содержать следующие подстановочные знаки:

* произвольное количество символов (например, оператор Студенты.Фамилия Like "С*" в запросе возвратит все фамилии, начинающиеся на С);

? один символ;

# одна цифра.

Оператор In проверяет, совпадает ли значение выражения с одним из элементов указанного списка.

Синтаксис оператора: выражение [Not] In (значение_1, значение_2, ...).

Например, оператор Студенты.Фамилия In ("Иванов", "Петров", "Смирнов") определяет совпадает ли значение поля Фамилия со значением одного из элементов списка.

Оператор Between определяет принадлежность значения выражения указанному диапазону.

Синтаксис оператора: выражение [Not] Between значение_1 And значение_2

Например, оператор Студенты. ДатаРождения Between #01/01/87# And #31/12/87# определяет принадлежность значения поля ДатаРождения интервалу дат 1987 года.

Если один из аргументов оператора Between...And, выражение, значение_1 или значение_2, имеет значение Null, то оператор Between...And возвращает значение Null.

Поскольку подстановочные знаки, такие как символ «*» считаются текстовыми символами, их нельзя использовать в операторе Between...And.

Идентификаторы (Формы! [Заказы]! [Заказ] или Отчеты! [Счет]. ВыводНаЭкран) задают ссылку на значение поля и заключаются в квадратные скобки, если содержат пробелы или знака препинания.

Функции (Date, Sum, DLookup) возвращают значение, найденное в результате расчета или другой операции. Access Basic предоставляет пользователю возможность создавать собственные функции.

Литералы (100, #1-янв-94#, "New York") представляют значение, например, число, строку или дату, которое используется в Microsoft Access, именно в том виде, как оно записано. Даты заключаются в символы номера (#), а строки в прямые кавычки (").

Константы (True, False, Да, Нет, Null) представляют значение, остающееся неизменным.