Вътрешното и външното свързване са два полезни начина за свързване на таблици на база данни и заявка на данни от множество таблици. В тази статия ще разгледаме разликата между вътрешно и външно присъединяване в SQL.
Вътрешно присъединяване
Вътрешното съединение връща редове от две или повече таблици, където поне една колона има еднаква стойност във всички таблици. Ако няма общи стойности, не се връщат редове.
Ето синтаксиса на вътрешното присъединяване:
select * from table1 INNER JOIN table2 on table1.column_name = table2.column_name; OR select * from table1 JOIN table2 on table1.column_name = table2.column_name;
Външно присъединяване
Външното свързване връща редове от две или повече таблици, където поне една колона има обща стойност, както и редове, при които условието за свързване е неуспешно. Има 3 вида външни съединения:
Ляво външно присъединяване
В този случай всички редове от лявата таблица се запазват в резултата, в случай че условията за присъединяване съвпадат с други таблици, се връщат стойностите на колоните им, в противен случай се връщат нулеви стойности за тези колони. Ето синтаксиса на лявото външно присъединяване.
select * from table1 LEFT OUTER JOIN table2 on table1.column_name = table2.column_name;
Дясно външно съединение
В този случай всички редове от дясната таблица се запазват в резултата, в случай че условията й за присъединяване съвпадат с други таблици, се връщат стойностите на колоните им, в противен случай за тези колони се връщат нулеви стойности.
Ето синтаксиса на дясното външно присъединяване
select * from table1 RIGHT OUTER JOIN table2 on table1.column_name = table2.column_name;
Пълно външно присъединяване
В този случай се връщат всички редове от двете таблици. Ако условието за присъединяване е изпълнено, колоните се попълват със стойности на двете таблици. Ако условието за присъединяване е неуспешно, тогава стойностите на една от таблиците се попълват в колони, а останалите се попълват като нулеви стойности.
Разлика между вътрешно и външно свързване в SQL
Ето основните разлики между вътрешното и външното съединение.
Вътрешно присъединяване
- Връща само редове с общи стойности на колони.
- Можете да използвате клауза INNER JOIN или JOIN. И двете имат същия ефект
- Връща null, когато няма съответстващи стойности на колони между две (или повече) таблици
- Inner Join е по-бърз от Outer Join
- Полезно е да правите справки в множество таблици
- От математически казано, той връща пресечната точка на два набора (таблици)
Външно присъединяване
- Връща стойности от една или повече таблици, дори ако няма съответстващи стойности на колони
- За редове без съответстващи атрибути, той връща null за останалите колони
- Пълното външно присъединяване и пълното присъединяване имат същия ефект.
- По-бавно е от вътрешното свързване
- Използва се за получаване на пълна информация в две или повече таблици
- Пълното външно свързване не се поддържа в MySQL. Предлага се в PostgreSQL, SQL Server, Oracle и други популярни бази данни.
Нуждаете се от инструмент за отчитане за MySQL? Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!