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

Условное соединение

(join…on)

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

Пусть в БД имеются 2 таблицы

Продажи (ID_товара, Кол-во, ID_клиента);

Клиенты (ID_клиента, Имя, Телефон) Тогда эти таблицы можно соединить используя следующие запросы: select *from Продажи JOIN Клиенты

On (продажи.ID_клиента)=Клиенты.ID_клиента)

And (продажи.колличество>50);

СОЕДИНЕНИЕ ПО ИМЕНАМ СТОЛБЦОВ

(join…using)

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

Эквивалентный запрос можно выполнить иначе: select* from Болты, Гайки

Where (болты.Тип=Гайки.Тип) and (Болты.Кол-во=гайки.Кол-во);

Примечание! В access оператора join…using нет, вместо него используется оператор inner join…on. Тогда запрос в access записывается так : select* from болты inner join гайки

On (болты.Тип=Гайки. Тип) and (Болты.Кол-во=Гайки.Кол=во);

Внешние соединения

Все соединения таблиц рассмотрены до сих пор являлись внутренними. Во всех примерах можно было вместо ключевого слова join использовать ключевые слова inner join . Из таблицы, получаемой при внутреннем соединении, отбрасываются все записи, для которых нет соответствующих записей одновременно в обеих соединяемых таблицах.

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

Левое внешнее соединение

(left outer join)

При левом внешних соединений не соответствующей записи, имеющийся в левой таблице, сохраняется в результирующей таблице, а имеющийся в правой – удаляется.

Пример: пусть в БД имеются свои таблицы

Предложения(ID_товара,Цена,Описание);

Склад (ID_товара, Кол-во);

Примечание! Ключевое слово outer отсутствует, вместо него используются слова left join.

ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Right outer join –тоже что и левое, только наоборот

ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Full join. Полное соединение выполняет одновременно левое и правое внешнее соединение.

В общем случае в этой БД могут быть:

- представительство без отделов;

- отделы, не входящие не в одно представительство

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

Select*

From представительство full join отделы

On (представительство.ID_пр=Отделы.ID_пр)

Full join Сотрудники

On (отделы.ID_отд=Сотрудники.ID_отд)

Транзакция

Транзакция – единый блок операции, который должен выполняться полностью. В транзакции либо все операторы выполняются успешно, либо не один из них не выполняется. Другими словами, если какой то оператор в транзакции не выполнился, то отменяются все операторы ранее выполненные, и тем более не выполняются операторы еще не выполненные после сбойного оператора.

Транзакция состоит из любых операторов SQL, которые могут изменить БД.

Commit – завершение выполнение транзакции. Выполнение всех операторов транзакции проходит последовательно в едином блоке.

Rollback – откат. Происходит отмена действия всех операторов транзакции, и БД возвращается в исходное состояние, в котором БД находилась до начала транзакции.

Savepoint – контрольная точка. Контрольные промежуточные точки, сохраняющие состояние БД в них.

i

в 201 аудитории

5.04

12.04

26.04

Кренке Базы данных

БД

r1, r2, r3 – три таблицы

r1

ФИО

Дисциплина

Оценка

Петров

БД

5

Сидоров

БД

4

Миронов

БД

2

Степанова

БД

2

Крылова

БД

5

Сидоров

Теория информации

4

Степанова

Теория информации

2

Крылова

Теория информации

5

Миронов

Теория информации

0

Владимиров

БД

5

Трофимов

Сети

4

Иванова

Сети

5

Уткина

Сети

5

Владимиров

Английский

4

Трофимов

Английский

5

Иванова

Английский

3

Петров

Английский

5

r2

ФИО

Группа

Петров

4906

Сидоров

4906

Миронов

4906

Крылова

4906

Степанова

4906

Владимиров

4906

Трофимов

4807

Иванова

4807

Уткина

4807

r3

Группа

Дисциплина

4906

БД

4906

Теория информации

4906

Английский

4807

Английский

4807

Сети

Добавить код в access

Сервис Схема

i

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