Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ.docx
Скачиваний:
11
Добавлен:
16.11.2018
Размер:
41.16 Кб
Скачать

Операции соединения таблиц

Inner join – можно использовать в любом приложение from она создает симметричное объединение наиболее частого разновидность частного объединения. Записи двух таблиц объединяются если связующие их поля содержат одинаковые значения.

From таблица1 inner join таблица2 on таблица1.none=таблица2.none2

Данный оператор описывает симметричное объединение таблиц по ключам поля1 и поля2 новая запись формируется в том случае если содержатся одинаковое значение ключей связи.

Select студент.*, оценка.* from студенты inner join оценка on студент. [№ зачетки] =

оценка .[№ зачетки]

возможны следующие варианты операторов соединения таблиц

left join (левостороннее) – когда выбираются только записи левой таблице и только те записи правой которые содержат соответствующие ключи связи.

Right join (правостороннее) – когда выбираются все записи правой и только те записи левой которые содержат соответствующие ключи связи.

Select студент.*, оценка.* from студент left join оценка on студент. [№ зачетки] =

Оценка.[№ зачетки]

Select студент.*, оценка.* from студент right join оценка on студент. [№ зачетки] =

Оценка.[№ заетки]

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

Выводятся все записи таблицы оценка и соответствующие записи таблицы студент.

Select студент.*, оценка.*, дисциплина. [наименование дисциплины]

From (студент inner join(оценка inner join(дисциплина on оценка.

[код дисциплины]=дисциплина.[код дисциплины] )) on студент.[№ зачетки]=оценка.[№ зачетки])

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

Удаление записей в таблицы.

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

Полная чистка таблицы от записей и очистка индексов:

Delete [таблица.*] from выражение where условие отбора

Delete * from таблица

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

Delete таблица.* from таблица inner join др. таблица on таблица.[none N]=[другая таблица].[none M] where условие.

Оновление замена значений полей записей.

Изменение значений нескольких полей одной записей или группы записей таблицы удовлетворяющим условиям отбора производиться следующей фразой:

Update таблица set новое значение where условие отбора = значение

Отбор студентов фамилии с В

Update студент set [группа]=”1212”

Where [фамилия ] like ‘B*’ and [дата рождения ]<=#01/01/81#

Изменение в таблцы студент номеров групп обучения путем добавления к ним буквы А если эти группы встречаются в группе студент заочник

Update студент inner join [студент_заочник] on студент.[группа]=

[студент_заочник].[группа] set студент.[группа]=[группа]& “a”