- •Множества и операции над множествами.
- •Основная операция над множествами. Мощность множества.
- •Кортежи. Декартово произведение.
- •Транзитивные замыкания отношений.
- •Типы данных в бд
- •Декартово произведение множеств
- •Объединение новой записи (union)
- •Пересечение наборов записей (intersect)
- •Условное соединение
Условное соединение
(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