Соединение по именам столбцов (JOIN …USING)
Соединение по именам столбцов похоже на естественное соединение. Отличие состоит в том, что можно указать, какие именно одноименные столбцы должны проверяться, а при естественном проверяются все одноименные столбцы.
Вывести в каком городе какие улицы.
SELECT * FROM GOROD JOIN ULICA USING (KOD_GOROD)
Данные таблицы содержат более одного идентичного поля, поэтому естественное соединение вернет пустой результат.
Запрос можно сформулировать иначе:
SELECT * FROM GOROD INNER JOIN ULICA ON (GOROD.KOD_GOROD= ULICA. KOD_GOROD)
Внешние соединения таблиц
Из таблицы, получаемой при внутреннем соединении, отбраковываются все записи, для которых нет соответствующей записи одновременно в обеих таблицах. При внешнем соединении такие несоответствующие записи сохраняются.
Левое соединение (LEFT OUTER JOIN)
При левом внешнем соединении несоответствующие записи, имеющиеся в левой таблице, сохраняются в результативной, а имеющиеся в правой – удаляются.
Рассмотренный в Примере 1 запрос выводит не все записи, тот же самый запрос при внешнем левом объединении выглядит так:
SELECT T1.*, T2.OCENKA FROM DANNIE T1 LEFT OUTER JOIN USPEV T2 ON T1.KOD_STUDENT=T2.KOD_STUDENT
Правое соединение (RIGHT OUTER JOIN)
При правом внешнем соединении несоответствующие записи, имеющиеся в правой таблице, сохраняются в результативной, а имеющиеся в левой – удаляются.
Рассмотренный в Примере 1 запрос выводит не все записи, тот же самый запрос при внешнем правом объединении выглядит так:
SELECT T1.*, T2.OCENKA FROM DANNIE T1 RIGHT OUTER JOIN USPEV T2 ON T1.KOD_STUDENT=T2.KOD_STUDENT
Полное соединение (FULL JOIN)
Полное соединение выполняет и левое, и правое внешние соединения.
SELECT * FROM DANNIE FULL JOIN USPEV
Задания:
Вывести названия регионов и соответствующие названия городов.
Вывести перечень специальностей и название групп.
Вывести названия дисциплин, по которым студенты получили 5.
Вывести фамилии преподавателей, поставивших 3.
Вывести фамилии студентов и названия соответствующих улиц.
Вывести фамилии студентов и названия соответствующих городов.
Вывести фамилии студентов и названия соответствующих регионов.
Вывести информацию о студентах и их родителях.
Достарыңызбен бөлісу: |