Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

19.3. Реляционные языки манипулирования данными

735

Пример 19.67.

SELECT Студент.*, Оценка.* FROM Студенты INNER JOIN Оценка ON Студент.[№ зач.книжки] = Оценка.[№ зач.книжки];

SELECT Студент.*, Оценка.* FROM Студенты LEFT JOIN Оценка ON Студент.[№ зач.книжки] = Оценка.[№ зач.книжки];

SELECT Студент.*, Оценка.* FROM Студенты RIGHT JOIN Оценка ON Студент.[№ зач.книжки] = Оценка.[№ зач.книжки];

В первом случае создается симметричное соединение двух таблиц по полю [№ зач.книжки]. Не выводятся записи, если значение их ключей связи (указанное поле) не представлено в двух таблицах. Во втором случае будут выведены все записи таблицы СТУДЕНТ и соответствующие им записи таблицы ОЦЕНКА. В третьем случае — нао­борот, все записи таблицы ОЦЕНКА и соответствующие им записи таблицы СТУДЕНТ.

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

Пример 19.68.

SELECT Студент., .Оценка. Дисциплина.[Наименование дисциплины]

FROM (Студент INNER JOIN (Оценка INNER JOIN

(Дисциплина ON Оценка. [Код дисциплины] =

Дисциплина. [Код дисциплины])

ON Студент.[№ зач.книжки]=Оценка. [№ зач.книжки])

Сначала происходит соединение таблиц ОЦЕНКА и ДИСЦИПЛИНА по ключу связи [Код дисциплины]. Соединение симметричное, то есть если коды дисциплины не совпа­дают, записи этих таблиц не соединяются. Затем происходит соединение таблиц СТУДЕНТ и ОЦЕНКА по ключу связи [№ зач.книжки].

Таким образом, на выходе запроса — результат соединения трех таблиц, но при ус­ловии совпадения ключей связи.

6. Удаление записей в таблице. В исходной таблице можно удалять отдельные или все записи, сохраняя при этом структуру и индексы таблицы. При удалении записей в ин­дексированной таблице автоматически корректируются ее индексы:

DELETE [таблица.*] FROM выражение WHERE условияотбора Полная чистка таблицы от записей и очистка индексов выполняется операцией: DELETE * FROM таблица

Пример 19.69.

DELETE * FROM Студент Все ранее загруженные записи будут удалены.

DELETE * FROM Студент WHERE [Дата рождения]>#1.1.81#

Удаляются только те записи, в которых поле Щата рождения] больше указанной даты.

Данная операция удаляет записи в таблице, связанные с другой таблицей: условия удаления записей могут относиться к полям связанных таблиц:

DELETE таблица.* FROM таблица INNER JOIN др._таблица ON таблица.[полeN] = др._таблица.[полеМ] WHERE условие

736 Глава 19. Инструментальные средства пользователя в среде microsoft office

Пример 19.70.

DELETE Студент.* From Студент INner JoIN [Студент заочник]

ON Студент.[Группа]= [Студент заочник]. [Группа]

Удаляются записи в таблице Студент , для которых имеются связанные записи в таблице [Студент заочник].

Примечание. Средствами Microsoft ACCESS невозможно восстановить записи, удаленные с помощью запроса на удаление записей.

7. Обновление (замена) значений полей записи. Можно изменить значения нес­кольких полей одной или группы записей таблицы, удовлетворяющих условиям отбора:

UPDATE таблица SET новое^значение WHEREусловия_отбора новое_значение указывается как имя_поля=новое значение

Пример 19.71.

UPDATE Студент SET [Группа] = "1212"

WHERE [Фамилия] LIKE 'В*' AND [Дата рождения] < = #01/01/81#

Студентов, чьи фамилии начинаются на букву В и дата рождения не превышает указанной, перевести в группу 1212.

UPDATE Студент INner JoIN [Студент заочник] ON Студент. [Группа]=

[Студент заочник]. [Группа] SET [Группа]= [Группа]&"а"

В таблице Студент изменить номера групп, если они встречаются в таблице [Студент заочник], добавив букву а.

ОРГАНИЗАЦИЯ ЗАПРОСОВ К БАЗЕ ДАННЫХ НА ЯЗЫКЕ SQL

Синтаксис оператора SELECT

Выборка с помощью оператора SELECT — наиболее частая команда при работе с реля­ционной базой данных. Этот оператор обладает большими возможностями по заданию структуры выходной информации, указанию источников входной информации, способа упорядочения выходной информации, формированию новых значений и т.п. (табл. 19.9).

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

Универсальный оператор SELECT имеет следующую конструкцию:

SELECT [предикат] { * | таблица* \ [таблица.]поле! [, [таблица.]поле2.[,...]]} [AS псевдоним! [, псевдоним2 [,...]]] FROM выражение [,...] [IN внешняя_база_данных] [WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] [WITH OWNERACCESS OPTION]