SlideShare uma empresa Scribd logo
1 de 11
Спецкурс. Занятие 9

Базы данных (продолжение)
Соединения

Соединение таблиц –
получение декартова
произведения таблиц,
ограниченного условием
соединения
Соединения

Пример:
select *
from Group g, Department d
where g.department_id = d.id;

1, ММ-01, 1, ИМИТ
2, ФФ-01-О, 2, Физический
3, МП-01, 1, ИМИТ
Соединения

Алгоритмы соединения таблиц:
1. вложенными циклами (nested
loops) – самый универсальный
2. хэшированием
3. слиянием сортированных
списков
Соединения

Виды соединений:
1. внутреннее – inner join
2. внешнее – outer join
2.1 левое – left join
2.1 правое – right join
2.3 полное – full join
3. перекрестное – cross join (то же, что ‘,’ в
примере выше)
Соединения

Пример:
select c.name
from Student s right join Chair c
on s.chair_id = c.id
where s.chair_id is null;
При отсутствии нужной строки в таблице
«Студент», на ее месте будет кортеж из null
Подзапросы

Подзапрос:
вложенный запрос в другом
запросе, может быть внутри
любого DML-оператора
Подзапросы

Результат подзапроса в where
используется:
1. в операциях сравнения (скаляр)
2. принадлежность/не
принадлежность кортежа
множеству – in/not in
3. непустота/пустота множества –
exists/not exists
Подзапросы

Пример:
select c.name
from Chair c
where not exists (
select null
from Student s
where s.chair_id = c.id
);
Подзапросы

Операции с результатами
запросов:
1. distinct – исключение повторов
2. union [all] - объединение
3. intersect – пересечение
4. except – исключение строк 2-го
множества из 1-го
Подзапросы

Для дальнейшего изучения:
1. хорошие упражнения по SQL
2. хорошие лекции по БД

Mais conteúdo relacionado

Destaque

โครงงานคอมพิวเตอร์ใบงานที่ 9 16
โครงงานคอมพิวเตอร์ใบงานที่ 9 16โครงงานคอมพิวเตอร์ใบงานที่ 9 16
โครงงานคอมพิวเตอร์ใบงานที่ 9 16Thitaree Permthongchuchai
 
งานนำเสนอ9
งานนำเสนอ9งานนำเสนอ9
งานนำเสนอ9Yamyam Yam
 
9-16-13: Believe It or Not! press release
9-16-13: Believe It or Not! press release 9-16-13: Believe It or Not! press release
9-16-13: Believe It or Not! press release Adam Emery
 
ใบงานท 9-16 (2)
ใบงานท   9-16 (2)ใบงานท   9-16 (2)
ใบงานท 9-16 (2)noeiinoii
 
9 27-2012 -long
9 27-2012 -long9 27-2012 -long
9 27-2012 -longSky Lar
 
สื่อการสอน ใบงาน9 16 pdf
สื่อการสอน ใบงาน9 16 pdfสื่อการสอน ใบงาน9 16 pdf
สื่อการสอน ใบงาน9 16 pdfTanatchapan Jakmanee
 
งานคอม9-17
งานคอม9-17งานคอม9-17
งานคอม9-17Pim DukDui
 
сравнительная таблица 94 и 44 www.oryoldlc.org
сравнительная таблица 94 и 44 www.oryoldlc.orgсравнительная таблица 94 и 44 www.oryoldlc.org
сравнительная таблица 94 и 44 www.oryoldlc.orgslachinov
 
皮膚科の臨床9月号2011
皮膚科の臨床9月号2011皮膚科の臨床9月号2011
皮膚科の臨床9月号2011Sakata Masatoshi
 
9241547073 vie15
9241547073 vie159241547073 vie15
9241547073 vie15Phi Phi
 
世界報紙頭條909
世界報紙頭條909世界報紙頭條909
世界報紙頭條909中 央社
 
91 pdfsam unlock-buchauszug
91 pdfsam unlock-buchauszug91 pdfsam unlock-buchauszug
91 pdfsam unlock-buchauszugdavetsbass
 

Destaque (16)

โครงงานคอมพิวเตอร์ใบงานที่ 9 16
โครงงานคอมพิวเตอร์ใบงานที่ 9 16โครงงานคอมพิวเตอร์ใบงานที่ 9 16
โครงงานคอมพิวเตอร์ใบงานที่ 9 16
 
งานนำเสนอ9
งานนำเสนอ9งานนำเสนอ9
งานนำเสนอ9
 
9-16-13: Believe It or Not! press release
9-16-13: Believe It or Not! press release 9-16-13: Believe It or Not! press release
9-16-13: Believe It or Not! press release
 
ใบงานท 9-16 (2)
ใบงานท   9-16 (2)ใบงานท   9-16 (2)
ใบงานท 9-16 (2)
 
9 27-2012 -long
9 27-2012 -long9 27-2012 -long
9 27-2012 -long
 
9 27-13
9 27-139 27-13
9 27-13
 
9.2 Angles
9.2 Angles9.2 Angles
9.2 Angles
 
สื่อการสอน ใบงาน9 16 pdf
สื่อการสอน ใบงาน9 16 pdfสื่อการสอน ใบงาน9 16 pdf
สื่อการสอน ใบงาน9 16 pdf
 
งานคอม9-17
งานคอม9-17งานคอม9-17
งานคอม9-17
 
сравнительная таблица 94 и 44 www.oryoldlc.org
сравнительная таблица 94 и 44 www.oryoldlc.orgсравнительная таблица 94 и 44 www.oryoldlc.org
сравнительная таблица 94 и 44 www.oryoldlc.org
 
皮膚科の臨床9月号2011
皮膚科の臨床9月号2011皮膚科の臨床9月号2011
皮膚科の臨床9月号2011
 
9 16-13
9 16-139 16-13
9 16-13
 
9241547073 vie15
9241547073 vie159241547073 vie15
9241547073 vie15
 
αατ9
αατ9αατ9
αατ9
 
世界報紙頭條909
世界報紙頭條909世界報紙頭條909
世界報紙頭條909
 
91 pdfsam unlock-buchauszug
91 pdfsam unlock-buchauszug91 pdfsam unlock-buchauszug
91 pdfsam unlock-buchauszug
 

Mais de 7bits

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? 7bits
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта7bits
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать7bits
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи 7bits
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE 7bits
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT7bits
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring7bits
 
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBCКурс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBC7bits
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP7bits
 
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mockКурс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mock7bits
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web7bits
 
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточностьКурс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточность7bits
 
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекцииКурс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции7bits
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод7bits
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java7bits
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub7bits
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics7bits
 
курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения7bits
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven7bits
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию7bits
 

Mais de 7bits (20)

Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап? Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
Гудбай, ИТ-лофт! Тарасенко Анна: Стартап = факап?
 
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофтаГудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
Гудбай, ИТ-лофт! Денис Нелюбин: Новейшая история ИТ-лофта
 
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакатьГудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
Гудбай, ИТ-лофт! Лопатюк Саша: Договоримся не плакать
 
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
Гудбай, ИТ-лофт! Гончаровский Игорь: IT-Loft без связи
 
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
Гудбай, ИТ-лофт! Мячин Сергей: LUDUM DARE + IT-LOFT = LOVE
 
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в ITGoodbye, IT-loft! Тараканов Алексей: Идеология в IT
Goodbye, IT-loft! Тараканов Алексей: Идеология в IT
 
Курс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. SpringКурс Java-2016. Занятие 13. Spring
Курс Java-2016. Занятие 13. Spring
 
Курс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBCКурс Java-2016. Занятие 12. DBMS, JDBC
Курс Java-2016. Занятие 12. DBMS, JDBC
 
Курс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSPКурс Java-2016. Занятие 11. Servlets, JSP
Курс Java-2016. Занятие 11. Servlets, JSP
 
Курс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mockКурс Java-2016. Занятие 10. Reflection, mock
Курс Java-2016. Занятие 10. Reflection, mock
 
Курс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. WebКурс Java-2016. Занятие 09. Web
Курс Java-2016. Занятие 09. Web
 
Курс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточностьКурс Java-2016. Занятие 08. Итераторы, многопоточность
Курс Java-2016. Занятие 08. Итераторы, многопоточность
 
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекцииКурс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
Курс Java-2016. Занятие 07. Логи, фасады, библиотеки и коллекции
 
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-выводКурс Java-2016. Занятие 06. Файлы и ввод-вывод
Курс Java-2016. Занятие 06. Файлы и ввод-вывод
 
Курс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и JavaКурс Java-2016. Занятие 05. Тестирование и Java
Курс Java-2016. Занятие 05. Тестирование и Java
 
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHubКурс Java-2016. Занятие 04 (часть 2). Git и GitHub
Курс Java-2016. Занятие 04 (часть 2). Git и GitHub
 
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про GenericsКурс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
Курс Java-2016. Занятие 04 (часть 1). Еще немного про Generics
 
курс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключениякурс Java 2016. занятие 03. интерфейсы, generic, исключения
курс Java 2016. занятие 03. интерфейсы, generic, исключения
 
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с MavenКурс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
Курс Java-2016. Занятие 02. Пакеты, сборка проекта с Maven
 
Курс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологиюКурс Java-2016. Занятие 01. Введение в Java как технологию
Курс Java-2016. Занятие 01. Введение в Java как технологию
 

Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 09