- •1)Базы данных. История развития.
- •2)Определение бд
- •3)Архитектура базы данных. Иерархическая модель данных.
- •4) Архитектура базы данных. Сетевая модель данных.
- •5)Архитектура базы данных. Реляционная модель данных.
- •6)Система управления базами данных. Функции субд.
- •7)Жизненный цикл бд
- •8)Этапы проектирования базы данных.
- •9)Трехуровневая архитектура базы данных.
- •10)Проектирование базы данных.
- •11) Модель сущность-связь. Правила отношений между сущностями. Формирование связей для отношений 1:1.
- •12)Модель сущность-связь. Правила отношений между сущностями. Формирование связей для отношений 1:м.
- •13)Модель сущность-связь. Правила отношений между сущностями. Формирование связей для отношений м:n.
- •Нормализация бд.
- •15.Транзакция.
- •17.Oltp-системы
- •18.Хранилища данных (Data Warehouse)
- •19.Администрирование бд.
- •20.Защита инф. В бд
- •21. Команды sql защите инф-ии.
- •22.Резервное коп-ие бд.
- •23.Восстановление бд.
- •Структурированный язык создания sql.
- •Удаление избыточных данных.
- •26.Выбор при использование предложений. Примеры простых предикат.
- •33. Явные операции соединения таблиц.
- •34.Традиционные операции над множествами. Декартово произведение, объединение.
- •35.Традиционные операции над множествами. Пересечение и разность.
- •36.Команды описания данных ddl.
- •37) Изменение свойств в таблице Alter table
- •38. Команды модификации языка dml (ввод значений).
- •40. Изменение значение Update.
33. Явные операции соединения таблиц.
В предложении from может быть указана явная операция соединения 2-х или более таблиц.
Внутреннее соединение( INNER JOIN)
Служебное слово INNER можно пропустить. просто слово join будет означать внутреннее соединение. INNER JOIN означает, что в результирующий набор попадут только те соединения строк таблиц, для которых значение предиката = истина.
From <табл.1> inner join <табл.2> on <предикат>
Пример. Найти производителей, номер модели и цену каждого компьютера, имеющегося в БД.
Select maker, pc.model, price from pc join product on pc.model=product.model
В данном примере в результирующем наборе будут соединятся только те строки из таблиц pc и product, у которых совпадают номера моделей.
Внешнее соединение LEFT JOIN означает, что помимо строк для которых выполняется условие предиката в результирующий набор попадут все остальные строки из 1-ой таблицы(левой). При этом отсутствующие значения полей из 1-ой таблицы будут заполнены NULL значениями.
Пример. Вывести все модели pc, их производителей и цену. Поле model указать 2 раза.
Select maker, product.model, pc.model, price from product left join pc on product.model=pc.model where type=’pc’
maker |
model |
model |
Price |
A |
1232 |
1232 |
600 |
A |
1232 |
1232 |
400 |
… |
… |
… |
… |
E |
2113 |
NULL |
NULL |
Внешнее соединение RIGHT JOIN. Данное соединение обратно соединению LEFT JOIN. Т.е. в результирующий набор попадут все записи из 2-ой(правой) таблицы, которые соединяются только с теми строками из 1-ой табл, для которых вып-ся условие. Пример. см предыдущий пример Select maker, product.model, pc.model, price from pc right join product on pc.model= product.model where type=’pc’
Полное соединение FULL JOIN
При таком соединении в результирующую табл попадут не только те строки, которые имеют одинаковое значение в сопоставляемых столбцах, но и все остальные строки исходных таблиц, не имеющих соответствующих значений в другой таблице. В этих строках все столбцы той таблицы, в которой не было найдено соответствия заполняются null значениями. Полное соединение – это комбинация левого и правого внешних соединений. Пример. сделаем полное соединение табл А и В по предикату. select *.A, *.B from A full join B on A.a=B.c
a |
b |
c |
d |
1 |
2 |
null |
null |
2 |
1 |
2 |
4 |
null |
null |
3 |
3 |
34.Традиционные операции над множествами. Декартово произведение, объединение.
Трад .операции над мн-ми – это объединение, пересечение, разность и декартово произведение. Декартово произведение. При дек.произведении каждая строка из одной таблицы соединяется с кажд строкой из др таблицы. В рез-те кол-во строк результирующего набора равно произведению кол-ва строк 1-го набора на кол-во строк 2-ого набора.
Ранее уже рассмотрели реализацию декартового произведения, когда в предложении from перечисляли через запятую имена таблиц.
Декартово произведение – cross join
Пример. рассмотрим декартово прoизведение табл laptop и product (выведем модель). I) select laptop.model, product.model from laptop cross join product on laprop.model=product.model
l.model |
p.model |
1298 |
1232 |
1298 |
1233 |
… |
… |
1298 |
2113 |
1321 |
1232 |
… |
… |
1321 |
2113 |
… |
… |
Кол-во строк= 6*16=96 или дек произ можно записать так: II) select laptop.model, product.model from laptop, product В чистом виде дек.произ-ие практически не используется, оно яв-ся промежуточным значением горизонтальной проекции. Объединение. Для объединения запросов исп-ют служ слово union. общий вид: <запрoc 1> union <запрос 2>
Оператор union объединяет выходные строки каждого из запросов в один результирующий набор. Можно связать любое число запросов. При объединении запросов должны выполнятся след условия: 1) кол-во выходных столбцов кажд из запросов должны быть одинаковыми; 2) выходные столбцы кажд из запросов должны быть сравнимыми между собой( в порядке их следования) по типам данных; 3) в результирующем наборе исп-ся имена столбцов заданные в 1-ом запросе. пример. найти номера моделей и цены ПК и ПК-блокнотов. select model, price
from pc union select model, price
from laptop
