Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабРаб2.doc
Скачиваний:
6
Добавлен:
21.09.2019
Размер:
93.7 Кб
Скачать

Создание запросов средствами языка sql

MS Access содержит встроенный непроцедурный структурированный язык запросов SQL (Structure Query Language). С помощью этого языка системе управления сообщается, что необходимо сделать. Язык обладает всеми логическими возможностями реляционного исчисления д–ра Кодда, дает возможность управлять данными и состоит из предложений, позволяющих выполнить нужное действие.

Рассмотрим команду SELECT – одну из главных конструкций языка, предназначенную для формирования запроса.

В простейшей форме команда SELECT дает инструкцию базе данных для поиска информации в таблице. Например, можно увидеть всю таблицу Сотрудники, введя следующий запрос:

SELECT *

FROM Сотрудники;

Здесь символ "*" используется для вывода всех полей таблицы. Если понадобятся лишь определенные поля таблицы, то вместо "*" следует перечислить имена требуемых полей, разделенных запятыми. Например, команда

SELECT Фамилия, ДатаРожд

FROM Сотрудники;

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

Примечание. Если в Access в именах таблиц и/или полей используются пробелы или другие символы, допускающие неоднозначное толкование, то такие имена следует заключать в квадратные скобки (“[“ и “]”). Итак

SELECT

Ключевое слово, которое сообщает базе данных, что команда является запросом. Все запросы начинаются с этого ключевого слова, за которым следует пробел.

Фамилия, ДатаРожд

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

FROM Сотрудники

FROM, как и SELECT, является ключевым словом, которое должно быть представлено в каждом запросе (не может быть запроса без источника данных). Затем, после пробела, указывается таблица, которая используется как источник информации для запроса.

Примечание. Можно выбирать данные из нескольких таблиц. Кроме того, могут быть также использованы имена запросов, т.е. источником данных для запроса может служить другой запрос.

;

"Точка с запятой" используется во всех командах SQL для сообщения базе данных, что команда сформулирована и готова к выполнению.

Поля запроса будут следовать в том порядке, в котором они указаны в предложении SELECT. Чтобы переставить поля следует изменить порядок их следования в предложении SELECT, например,

SELECT ДатаРожд, Фамилия

FROM Сотрудники;

Условие отбора записей – использование предложения WHERE. Как правило, число строк в таблицах баз данных велико. Поэтому работать с такими объемами информации, во-первых, неудобно, а, во-вторых, тратится много времени как на выполнение самого запроса, так и на поиск нужной информации. Предложение WHERE позволяет сформулировать критерий для отбора строк в запросе. То есть, предложение WHERE позволяет определить условие, которое может быть либо истинным, либо ложным для каждой строки из таблицы. Команда извлекает только те строки из таблицы, для которых условие имеет значение истина. Если необходимо узнать имена тех сотрудников, стаж работы которых превышает 10 лет, то в этом случае следует ввести следующую команду:

SELECT ФИО_сотрудника, Стаж

FROM Сотрудник

WHERE Стаж>10;

Результатом выполнения этого запроса будет таблица, содержащая ФИО сотрудников и стаж их работы; при этом строки этой таблицы будут содержать данные только о лицах, проработавших более 10 лет (Стаж>10). Столбец Стаж будет включен в результат не потому, что он указан в предложении WHERE, а потому, что имя этого поля указано в предложении SELECT. Совершенно необязательно, чтобы столбец, используемый в предложении WHERE, был представлен в числе тех столбцов, которые необходимо видеть среди выходных данных.

При использовании текстовых констант в предложении WHERE применяются кавычки. Например, если нас интересуют цены на печенье, можно дать следующую команду:

SELECT Наименование, Цена_розн

FROM Товары

WHERE Наименование='Печенье';

Явные операции соединения. В предложении FROM может быть указана явная операция соединения двух и более таблиц. Среди ряда операций соединения, описанных в стандарте языка SQL, многими серверами баз данных поддерживается только операция соединения по предикату. Синтаксис соединения по предикату имеет вид:

FROM <таблица 1>

[INNER]

| {{LEFT | RIGHT | FULL} [OUTER]} JOIN <таблица 2>

[ON <предикат>]

Соединение может быть либо внутренним (INNER), либо одним из внешних (OUTER). Служебные слова INNER и OUTER можно опускать, поскольку внешнее соединение однозначно определяется его типом – LEFT (левое), RIGHT (правое) или FULL (полное), а просто JOIN будет означать внутренне соединение.

Предикат определяет условие соединения строк из разных таблиц. При этом INNER JOIN означает, что в результирующий набор попадут только те соединения строк двух таблиц, для которых значение предиката равно TRUE. Как правило, предикат определяет эквисоединение по внешнему и первичному ключам соединенных таблиц.

Пример. Найти производителя, номер модели и цену каждого компьютера, имеющегося в базе данных, больше 25 000 руб.

SELECT maker, product. model AS model_1, pc. model_2, price

FROM product INNER JOIN pc ON pc. model = product. model

WHERE price>25000

ORDER BY maker, pc. model;

В данном примере в результирующем наборе будут соединяться только те строки из таблиц PC и Product, у которых совпадают номера моделей.

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]