Полное объединение (FULL JOIN)

Сортировка

Для упорядочения данных по какому-то полю необходимо выполнить команду

ORDERBY<имя поля>

 

Записи можно упорядочивать в восходящем (параметр сортировки ASC) или в нисходящем (параметр сортировки DESC) порядке. Параметр сортировки ASC используется по умолчанию.

Задание: Выбрать все сведения о книгах из таблицы Books и отсортировать результат по коду книги (поле Code_book).

 

SELECT*

FROM Books

ORDERBYCode_book

Самостоятельно:

· Выбрать из таблицы Books коды книг, названия и количество страниц (поля Code_book, Title_book и Pages), отсортировать результат по названиям книг (поле Title_book по возрастанию) и по полю Pages (по убыванию).

· Выбрать из таблицы Deliveries список поставщиков (поля Name_delivery, Phone и INN), отсортировать результат по полю INN (по убыванию).

 

Изменение порядка следования полей

Задание: Выбрать все поля из таблицы Deliveries таким образом, чтобы в результате порядок столбцов был следующим: Name_delivery, INN, Phone, Address, Code_delivery.

 

SELECT Name_delivery, Phone, INN, Address_del, Code_delivery

FROM Deliveries

ORDERBY INN DESC

 

Самостоятельно:

· Выбрать все поля из таблицы Publishing_house таким образом, чтобы в результате порядок столбцов был следующим: Publish, City, Code_publish.

 

Часть 2. Выбор некоторых полей из двух таблиц

Когда нужно выбрать данные, находящиеся в разных таблицах, применяют объединение таблиц. Пусть, например, необходимо выбрать данные, находящиеся в таблицах Books и Authors.

Простейший шаблон объединения двух таблиц выглядит следующим образом:

SELECT*

FROM<таблица1><тип объединения><таблица2>

ON<таблица1>.<столбец1>=<таблица2>.<столбец2>

 

Есть 4 типа объединения:

Внутреннее объединение (INNER JOIN)

При внутреннем объединении в таблицах А и В соединяются только те строки, для которых найдено совпадение, указанное в критерии объединения (после ключевого слова ON). Это наиболее подходящий в нашем случае вариант. Следующий запрос объединяет две таблицы Books и Authors, связанные по полю Code_author.

SELECT*

FROM Books INNERJOIN Authors

ON Books.Code_author = Authors.Code_author

Левое внешнее объединение (LEFT OUTER JOIN)

Левое внешнее объединение таблиц А и В включает в себя все строки из левой таблицы А и те строки из правой таблицы В, для которых обнаружено совпадение, указанное в критерии объединения (после ключевого слова ON). Для строк из таблицы А, для которых не найдено соответствия в таблице В, в столбцы, извлекаемые из таблицы В, заносятся значения NULL.

Примерзапроса: (ВЫПОЛНИТЬ)

SELECT*

FROM Books LEFTOUTERJOIN Authors

ON Books.Code_author = Authors.Code_author

Правое внешнее объединение (RIGHT OUTER JOIN)

Правое внешнее объединение таблиц А и В включает в себя все строки из правой таблицы В и те строки из левой таблицы А, для которых обнаружено совпадение, указанное в критерии объединения (после ключевого слова ON). Для строк из таблицы В, для которых не найдено соответствия в таблице А, в столбцы, извлекаемые из таблицы А заносятся значения NULL.

Примерзапроса: (ВЫПОЛНИТЬ)

SELECT*

FROM Books RIGHTOUTERJOIN Authors

ON Books.Code_author = Authors.Code_author

Полное объединение (FULL JOIN)

Это комбинация левого и правого объединений. В полное объединение таблиц включаются все строки из обеих таблиц. Для совпадающих строк поля заполняются реальными значениями, для несовпадающих строк поля заполняются в соответствии с правилами левого и правого соединений.

Примерзапроса: (ВЫПОЛНИТЬ)

SELECT*

FROM Books FULLJOIN Authors

ON Books.Code_author = Authors.Code_author

 

Если необходимо вывести не все столбцы, например, два столбца из таблицы Books (Title_book и Authors) и один столбец из таблицы Authors. Для этого нужные столбцы надо явно указать (с учетом идентификатора таблицы, к которой они принадлежат): (ВЫПОЛНИТЬ)

SELECT Books.Title_book, Books.Pages, Authors.Name_author

FROM Books INNERJOIN Authors

ON Books.Code_author = Authors.Code_author

 

Самостоятельно:

· Выбрать из таблицы Books названия книг и количество страниц (поля Title_book и Pages), а из таблицы Deliveries выбрать имя соответствующего поставщика книги (поле Name_delivery).

· Выбрать из таблицы Books названия книг и количество страниц (поля Title_book и Pages), а из таблицы Publishing_house выбрать название соответствующего издательства и места издания (поля Publish и City).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: