Объясните, что MySQL Участвует в простом языке

Объясните мне, участвует в простом языке. Не отправляйте ссылку на сайт, поскольку я должен читать, как разработчик понимает это, не автор.

5
задан halfer 1 January 2019 в 20:51
поделиться

3 ответа

Лучшее, на что я могу вам указать, это Визуальное объяснение SQL-соединений .

Диаграммы мне очень помогли.


Добавление основных диаграмм из связанного сообщения сюда.

Внутреннее объединение

inner join diagram

Внутреннее объединение создает только набор записей, которые совпадают как в Таблице A, так и в Таблице B.

Полное внешнее соединение

full outer join diagram

Полное внешнее соединение создает набор всех записей в Таблице A и Таблице B , с совпадающими записями с обеих сторон, если таковые имеются. Если совпадений нет, отсутствующая сторона будет содержать ноль.

Левое внешнее соединение

left outer join diagram

Левое внешнее объединение создает полный набор записей из таблицы A с соответствующими записями (если они есть) в таблице B. Если совпадений нет, правая часть будет содержать ноль.

15
ответ дан 18 December 2019 в 07:53
поделиться

Данный идентификатор и информация

SELECT *
FROM Person INNER JOIN
Information ON Person.ID = Information.ID

Будет возвращать только строки из обеих таблиц, где обе таблицы имеют одинаковые идентификаторы. Таким образом, только если идентификатор существует как в Person, так и в Information, строка будет возвращена.

SELECT *
FROM Person LEFT JOIN
Information ON Person.ID = Information.ID

Вернет все строки из Person, и только те, которые совпадают из Information, если он не совпадает, он вернет NULLs

SELECT *
FROM Person LEFT JOIN
Information ON Person.ID = Information.ID
WHERE Information.ID IS NULL

Вернет все строки от Person, у которого НЕТ записи в Information. Это покажет вам список лиц, у которых еще нет обновленной информации.

3
ответ дан 18 December 2019 в 07:53
поделиться

Я интерпретирую ваш вопрос как означающий объединения в очень общем смысле, а не каждый тип соединения, поэтому, если это не соответствует действительности, я прошу прощения:

В основном объединения позволяют получать данные из нескольких таблиц в один запрос, добавив столбцы в ваш набор результатов. Итак, если бы у вас были следующие таблицы:

Books   (ID, Title, AuthorID)
Authors (ID, Name)

Вы могли бы получить набор результатов, который выглядел бы следующим образом:

  Book                    |   Author
'The Sirens of Titan'     | 'Kurt Vonnegut'
'The Old Man and the Sea' | 'Earnest Hemingway'

Объединив две таблицы вместе следующим образом:

select Books.Title as Book, Authors.Name as Author
from Books
inner join Authors on Authors.ID = Books.AuthorID

Внутреннее соединение - это простейший тип соединения; может быть трудно понять суть внешних соединений, не имея вначале сильного понимания внутренних соединений и их использования.

2
ответ дан 18 December 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: