1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Определение SQL</a><ul><li><a>Особенности - что умеет язык</a></li>
1
<ul><li><a>Определение SQL</a><ul><li><a>Особенности - что умеет язык</a></li>
2
</ul></li>
2
</ul></li>
3
<li><a>Что представляет собой JOIN</a><ul><li><a>Типы</a></li>
3
<li><a>Что представляет собой JOIN</a><ul><li><a>Типы</a></li>
4
</ul></li>
4
</ul></li>
5
<li><a>Проще простого - Inner</a><ul><li><a>Запись</a></li>
5
<li><a>Проще простого - Inner</a><ul><li><a>Запись</a></li>
6
<li><a>Наглядный пример</a></li>
6
<li><a>Наглядный пример</a></li>
7
</ul></li>
7
</ul></li>
8
<li><a>Left Join</a><ul><li><a>Запись и пример</a></li>
8
<li><a>Left Join</a><ul><li><a>Запись и пример</a></li>
9
</ul></li>
9
</ul></li>
10
<li><a>Right Join</a><ul><li><a>О синтаксической записи и примерах</a></li>
10
<li><a>Right Join</a><ul><li><a>О синтаксической записи и примерах</a></li>
11
</ul></li>
11
</ul></li>
12
<li><a>По полной программе</a><ul><li><a>Как записывать и применять</a></li>
12
<li><a>По полной программе</a><ul><li><a>Как записывать и применять</a></li>
13
</ul></li>
13
</ul></li>
14
<li><a>Перекрестным типом</a></li>
14
<li><a>Перекрестным типом</a></li>
15
<li><a>Комбинации</a></li>
15
<li><a>Комбинации</a></li>
16
<li><a>Исключение</a></li>
16
<li><a>Исключение</a></li>
17
<li><a>Планы исполнения</a></li>
17
<li><a>Планы исполнения</a></li>
18
</ul><p>Базы данных - то, что помогает бизнесу, а также государственным органам и предприятиям. Это - хранилища информации. Работать с ними должен уметь каждый, особенно когда речь заходит о программировании.</p>
18
</ul><p>Базы данных - то, что помогает бизнесу, а также государственным органам и предприятиям. Это - хранилища информации. Работать с ними должен уметь каждый, особенно когда речь заходит о программировании.</p>
19
<p>В основном БД представлены таблицами. С ними совершают разнообразные действия:</p>
19
<p>В основном БД представлены таблицами. С ними совершают разнообразные действия:</p>
20
<ul><li>объединяют тем или иным способом;</li>
20
<ul><li>объединяют тем или иным способом;</li>
21
<li>удаляют;</li>
21
<li>удаляют;</li>
22
<li>корректируют;</li>
22
<li>корректируют;</li>
23
<li>сохраняют;</li>
23
<li>сохраняют;</li>
24
<li>выводят на экран.</li>
24
<li>выводят на экран.</li>
25
</ul><p>Делается это или посредством пользовательского интерфейса и специализированных утилит, или через специальные языки "программирования". С ними должен быть знаком каждый программер.</p>
25
</ul><p>Делается это или посредством пользовательского интерфейса и специализированных утилит, или через специальные языки "программирования". С ними должен быть знаком каждый программер.</p>
26
<h2>Определение SQL</h2>
26
<h2>Определение SQL</h2>
27
<p>Чтобы задействовать таблицы в приложениях, играх и прочем контенте, можно использовать SQL. Это - самый распространенный вариант развития событий.</p>
27
<p>Чтобы задействовать таблицы в приложениях, играх и прочем контенте, можно использовать SQL. Это - самый распространенный вариант развития событий.</p>
28
<p>Так называют язык структурированных запросов. Он дает возможность сохранять, управлять и извлекать информацию из реляционных баз данных.</p>
28
<p>Так называют язык структурированных запросов. Он дает возможность сохранять, управлять и извлекать информацию из реляционных баз данных.</p>
29
<h3>Особенности - что умеет язык</h3>
29
<h3>Особенности - что умеет язык</h3>
30
<p>При помощи SQL пользователь/разработчик сможет:</p>
30
<p>При помощи SQL пользователь/разработчик сможет:</p>
31
<ul><li>заполучать доступ к информации в системах управления БД;</li>
31
<ul><li>заполучать доступ к информации в системах управления БД;</li>
32
<li>производить описание данных, их структур;</li>
32
<li>производить описание данных, их структур;</li>
33
<li>определять электронные материалы в "табличном хранилище", управляя оными;</li>
33
<li>определять электронные материалы в "табличном хранилище", управляя оными;</li>
34
<li>проводить взаимодействие с иными языками при помощи модулей, библиотек и компиляторов SQL;</li>
34
<li>проводить взаимодействие с иными языками при помощи модулей, библиотек и компиляторов SQL;</li>
35
<li>создавать новые таблички, удалять старые;</li>
35
<li>создавать новые таблички, удалять старые;</li>
36
<li>заниматься созданием представлений, хранимых процедур и функций.</li>
36
<li>заниматься созданием представлений, хранимых процедур и функций.</li>
37
</ul><p>Также при работе с таблицами БД за счет SQL можно настраивать доступ к представлениям, таблицам и процедурам. Главное знать, каким именно образом действовать.</p>
37
</ul><p>Также при работе с таблицами БД за счет SQL можно настраивать доступ к представлениям, таблицам и процедурам. Главное знать, каким именно образом действовать.</p>
38
<p>В SQL существуют всевозможные команды, использованием которых удается производить те или иные манипуляции. Далее будет рассказано всего об одном достаточно важном моменте. А именно - как использовать оператор Join. Он пригодится и новичкам, и тем, кто долгое время работает с таблицами и БД.</p>
38
<p>В SQL существуют всевозможные команды, использованием которых удается производить те или иные манипуляции. Далее будет рассказано всего об одном достаточно важном моменте. А именно - как использовать оператор Join. Он пригодится и новичкам, и тем, кто долгое время работает с таблицами и БД.</p>
39
<h2>Что представляет собой JOIN</h2>
39
<h2>Что представляет собой JOIN</h2>
40
<p>JOIN - команда/оператор, который используется, когда нужно произвести объединение нескольких таблиц в базах данных. Вследствие нее происходит преобразование двух строк в одну. И не обязательно оные окажутся в разных табличках. JOIN может работать в пределах одного "хранилища" информации.</p>
40
<p>JOIN - команда/оператор, который используется, когда нужно произвести объединение нескольких таблиц в базах данных. Вследствие нее происходит преобразование двух строк в одну. И не обязательно оные окажутся в разных табличках. JOIN может работать в пределах одного "хранилища" информации.</p>
41
<p>Команда выполняется при перечислении двух и более таблиц в операторе SQL. Определение JOIN - соединение. Синтаксис здесь довольно простой. Но стоит обратить внимание на то, что вариантов объединения несколько. У каждого - своя запись.</p>
41
<p>Команда выполняется при перечислении двух и более таблиц в операторе SQL. Определение JOIN - соединение. Синтаксис здесь довольно простой. Но стоит обратить внимание на то, что вариантов объединения несколько. У каждого - своя запись.</p>
42
<h3>Типы</h3>
42
<h3>Типы</h3>
43
<p>Возможные слияния зависят от того, что именно хочет получить пользователь в конечном итоге. Существуют следующие типы соединений таблиц и иных материалов в рассматриваемом языке запросов:</p>
43
<p>Возможные слияния зависят от того, что именно хочет получить пользователь в конечном итоге. Существуют следующие типы соединений таблиц и иных материалов в рассматриваемом языке запросов:</p>
44
<ul><li>простое;</li>
44
<ul><li>простое;</li>
45
<li>left outer join;</li>
45
<li>left outer join;</li>
46
<li>right outer join;</li>
46
<li>right outer join;</li>
47
<li>full outer join.</li>
47
<li>full outer join.</li>
48
</ul><p>Каждый join запрос в SQL имеет собственные нюансы. О них будет рассказано далее. Разобраться, какой вариант подойдет в том или ином случае поможет простая математика. Там тоже есть объединение. Если разобрать соответствующий вопрос там, в программировании добиться успеха удастся в считанные минуты.</p>
48
</ul><p>Каждый join запрос в SQL имеет собственные нюансы. О них будет рассказано далее. Разобраться, какой вариант подойдет в том или ином случае поможет простая математика. Там тоже есть объединение. Если разобрать соответствующий вопрос там, в программировании добиться успеха удастся в считанные минуты.</p>
49
<p>Важно: есть еще один вариант - cross join. Встречается на практике не слишком часто, но помнить о подобном раскладе тоже нужно.</p>
49
<p>Важно: есть еще один вариант - cross join. Встречается на практике не слишком часто, но помнить о подобном раскладе тоже нужно.</p>
50
<h2>Проще простого - Inner</h2>
50
<h2>Проще простого - Inner</h2>
51
<p>Первый вариант - это использование простого объединения. Встречается на практике чаще всего. Возвращает пересечение нескольких (обычно двух) множеств. В табличной терминологии - происходит возврат записи, которая имеется в обоих таблицах. Оная должна соответствовать выставленному заранее критерию.</p>
51
<p>Первый вариант - это использование простого объединения. Встречается на практике чаще всего. Возвращает пересечение нескольких (обычно двух) множеств. В табличной терминологии - происходит возврат записи, которая имеется в обоих таблицах. Оная должна соответствовать выставленному заранее критерию.</p>
52
<p>Для реализации поставленной задачи применяется INNER JOIN. Чтобы лучше понимать данный процесс, стоит составить диаграмму Венна:</p>
52
<p>Для реализации поставленной задачи применяется INNER JOIN. Чтобы лучше понимать данный процесс, стоит составить диаграмму Венна:</p>
53
<ul><li>нарисовать круг - пусть это будет "таблица 1";</li>
53
<ul><li>нарисовать круг - пусть это будет "таблица 1";</li>
54
<li>рядом, задевая область первой фигуры, изобразить второй круг - это "таблица 2";</li>
54
<li>рядом, задевая область первой фигуры, изобразить второй круг - это "таблица 2";</li>
55
<li>закрасить область пересечения - это и есть результат операции inner join.</li>
55
<li>закрасить область пересечения - это и есть результат операции inner join.</li>
56
</ul><p>Рисунок выше - наглядный пример диаграммы Венна. С его помощью удастся разобраться в принципах "простого" объединения нескольких табличек.</p>
56
</ul><p>Рисунок выше - наглядный пример диаграммы Венна. С его помощью удастся разобраться в принципах "простого" объединения нескольких табличек.</p>
57
<h3>Запись</h3>
57
<h3>Запись</h3>
58
<p>Для того, чтобы выполнять те или иные операции в запросовом языке, стоит уточнить синтаксис желаемой команды. В случае с обычным (простым) объединением необходимо использовать следующий шаблон:</p>
58
<p>Для того, чтобы выполнять те или иные операции в запросовом языке, стоит уточнить синтаксис желаемой команды. В случае с обычным (простым) объединением необходимо использовать следующий шаблон:</p>
59
<p>Здесь никаких проблем возникнуть не должно. Код легко читается:</p>
59
<p>Здесь никаких проблем возникнуть не должно. Код легко читается:</p>
60
<ul><li>выбрать колонки;</li>
60
<ul><li>выбрать колонки;</li>
61
<li>from table1 - из первой таблицы;</li>
61
<li>from table1 - из первой таблицы;</li>
62
<li>объединить с таблицей 2.</li>
62
<li>объединить с таблицей 2.</li>
63
</ul><p>Для наглядного примера стоит рассмотреть несколько таблиц с информацией, а также принцип joins типа inner.</p>
63
</ul><p>Для наглядного примера стоит рассмотреть несколько таблиц с информацией, а также принцип joins типа inner.</p>
64
<h3>Наглядный пример</h3>
64
<h3>Наглядный пример</h3>
65
<p>Пусть будет дана таблица под названием customer. В ней такая информация:</p>
65
<p>Пусть будет дана таблица под названием customer. В ней такая информация:</p>
66
<p>Далее - создается таблица orders:</p>
66
<p>Далее - создается таблица orders:</p>
67
<p>Теперь нужно joining поля в этих хранилищах информации простым объединением. Для реализации поставленной задачи составляется команда типа:</p>
67
<p>Теперь нужно joining поля в этих хранилищах информации простым объединением. Для реализации поставленной задачи составляется команда типа:</p>
68
SELECT customers.customer_id,orders.order_id,orders.order_dateFROM customersINNER JOIN ordersON customers.customer_id = orders.customer_idORDER BY customers.customer_id;<p>В конечном итоге при обработке запроса на экран будет выведен следующий результат:</p>
68
SELECT customers.customer_id,orders.order_id,orders.order_dateFROM customersINNER JOIN ordersON customers.customer_id = orders.customer_idORDER BY customers.customer_id;<p>В конечном итоге при обработке запроса на экран будет выведен следующий результат:</p>
69
<p>Здесь выбираются поля в таблице, которые имеют одинаковые значения customer_id в обоих хранилищах. Поэтому другие поля будут пропущены. А строчка, где order_id = 5 в orders опускается, так как customer_id идут со значениями null. То есть, их нет в customers.</p>
69
<p>Здесь выбираются поля в таблице, которые имеют одинаковые значения customer_id в обоих хранилищах. Поэтому другие поля будут пропущены. А строчка, где order_id = 5 в orders опускается, так как customer_id идут со значениями null. То есть, их нет в customers.</p>
70
<h2>Left Join</h2>
70
<h2>Left Join</h2>
71
<p>В отличие от предыдущего объединения, left join - это возврат всех строк из левой таблицы по установленным принципам. Это - левостороннее соединение, осуществляемое через условие ON. Вследствие обработки операции:</p>
71
<p>В отличие от предыдущего объединения, left join - это возврат всех строк из левой таблицы по установленным принципам. Это - левостороннее соединение, осуществляемое через условие ON. Вследствие обработки операции:</p>
72
<ul><li>проводится проверка на соответствие условия соединения;</li>
72
<ul><li>проводится проверка на соответствие условия соединения;</li>
73
<li>если оно выполняется - строчка из второй прибавляется к первой таблице.</li>
73
<li>если оно выполняется - строчка из второй прибавляется к первой таблице.</li>
74
</ul><p>Именно такое описание можно дать команде left join. Представив его в виде диаграмм, необходимо запомнить следующее представление:</p>
74
</ul><p>Именно такое описание можно дать команде left join. Представив его в виде диаграмм, необходимо запомнить следующее представление:</p>
75
<p>Вся закрашенная область - это результат обработки команды left join в языке SQL.</p>
75
<p>Вся закрашенная область - это результат обработки команды left join в языке SQL.</p>
76
<h3>Запись и пример</h3>
76
<h3>Запись и пример</h3>
77
<p>Указанным ранее вариантом соединения пользуются чаще всего. Но иногда, особенно при работе с большим количеством информации, может потребоваться левостороннее "слияние". Оно обладает такой формой записи:</p>
77
<p>Указанным ранее вариантом соединения пользуются чаще всего. Но иногда, особенно при работе с большим количеством информации, может потребоваться левостороннее "слияние". Оно обладает такой формой записи:</p>
78
<p>Ключевое слово OUTER может быть пропущено. Это нормальное явление, допускаемое некоторыми языками запросов. Помогает значительно сократить исходный код при его написании.</p>
78
<p>Ключевое слово OUTER может быть пропущено. Это нормальное явление, допускаемое некоторыми языками запросов. Помогает значительно сократить исходный код при его написании.</p>
79
<p>Для примера необходимо взять таблицу с информацией:</p>
79
<p>Для примера необходимо взять таблицу с информацией:</p>
80
<p>Вторая база данных:</p>
80
<p>Вторая база данных:</p>
81
<p>Названия тут будут такими же, как и в прошлом случае. Теперь составляется запрос выполнения левостороннего слияния:</p>
81
<p>Названия тут будут такими же, как и в прошлом случае. Теперь составляется запрос выполнения левостороннего слияния:</p>
82
<p>После обработки оного на экране появятся всего 6 записей:</p>
82
<p>После обработки оного на экране появятся всего 6 записей:</p>
83
<p>Так произошло, потому что left join произвел внутреннее объединение только строки customers и те строчки из orders, где объединенные поля обладают равными значениями. Также стоит запомнить следующие важные сведения:</p>
83
<p>Так произошло, потому что left join произвел внутреннее объединение только строки customers и те строчки из orders, где объединенные поля обладают равными значениями. Также стоит запомнить следующие важные сведения:</p>
84
<ul><li>когда значение в customer_id из customers отсутствует в orders, поля "ордерс" отображаются в виде null;</li>
84
<ul><li>когда значение в customer_id из customers отсутствует в orders, поля "ордерс" отображаются в виде null;</li>
85
<li>если выставленный параметр слияния не выполняется, поля/строчки "отбрасываются".</li>
85
<li>если выставленный параметр слияния не выполняется, поля/строчки "отбрасываются".</li>
86
</ul><p>Ничего трудного. Такой тип объединения табличек в программировании и базах данных тоже встречается не слишком редко.</p>
86
</ul><p>Ничего трудного. Такой тип объединения табличек в программировании и базах данных тоже встречается не слишком редко.</p>
87
<h2>Right Join</h2>
87
<h2>Right Join</h2>
88
<p>Описание right join предельно простое - правостороннее соединение. Результатом будут служить строчки из второй таблицы, соответствующие выставленному условию слияния. Наглядно это выглядит так:</p>
88
<p>Описание right join предельно простое - правостороннее соединение. Результатом будут служить строчки из второй таблицы, соответствующие выставленному условию слияния. Наглядно это выглядит так:</p>
89
<p>Результат запроса исключает поля левой таблицы, не соответствующие выставленным при составлении команды критериям.</p>
89
<p>Результат запроса исключает поля левой таблицы, не соответствующие выставленным при составлении команды критериям.</p>
90
<h3>О синтаксической записи и примерах</h3>
90
<h3>О синтаксической записи и примерах</h3>
91
<p>Синтаксис в команды будет иметь вид:</p>
91
<p>Синтаксис в команды будет иметь вид:</p>
92
-
<p>Чтобы понять, как работает right join в языке SQL, рекомендуется обратить внимание на наглядный пример. Он опять осуществляется с табличками customer и orders. Пример будет прописан в операторе SELECT.</p>
92
+
<p>Чтобы понять, ка�� работает right join в языке SQL, рекомендуется обратить внимание на наглядный пример. Он опять осуществляется с табличками customer и orders. Пример будет прописан в операторе SELECT.</p>
93
<p>Даны две таблицы с информацией:</p>
93
<p>Даны две таблицы с информацией:</p>
94
<p>Далее, чтобы joined две таблички по правостороннему принципу, требуется отправить соответствующий запрос. Он обладает такой формой записи:</p>
94
<p>Далее, чтобы joined две таблички по правостороннему принципу, требуется отправить соответствующий запрос. Он обладает такой формой записи:</p>
95
<p>Как только операция пройдет обработку, на экране устройства появится результат. Он будет состоять из пяти элементов:</p>
95
<p>Как только операция пройдет обработку, на экране устройства появится результат. Он будет состоять из пяти элементов:</p>
96
<p>Здесь:</p>
96
<p>Здесь:</p>
97
<ul><li>возвращаются строки из orders - все;</li>
97
<ul><li>возвращаются строки из orders - все;</li>
98
<li>на экран дополнительно выводятся строчки из customers, которые имеют с "ордерс" одинаковые значения;</li>
98
<li>на экран дополнительно выводятся строчки из customers, которые имеют с "ордерс" одинаковые значения;</li>
99
<li>если customers_id в orders отсутствует в "кастомерс", соответствующие поля имеют значение null.</li>
99
<li>если customers_id в orders отсутствует в "кастомерс", соответствующие поля имеют значение null.</li>
100
</ul><p>Но и это еще не все. Для полного осознания запросов слияния электронных материалов, требуется в первую очередь изучить все доступные расклады. Их осталось еще 2. Встречаются на практике не слишком часто, из-за чего доставляют немалые хлопоты. Особенно тем, кто занимается запросовым языком относительно недавно.</p>
100
</ul><p>Но и это еще не все. Для полного осознания запросов слияния электронных материалов, требуется в первую очередь изучить все доступные расклады. Их осталось еще 2. Встречаются на практике не слишком часто, из-за чего доставляют немалые хлопоты. Особенно тем, кто занимается запросовым языком относительно недавно.</p>
101
<h2>По полной программе</h2>
101
<h2>По полной программе</h2>
102
<p>Предпоследний вариант, который предусматривает join в языке SQL - это full. Можно назвать данный процесс созданием единой таблицы. Информациях из обеих БД будет выведена на экран. Здесь не важно, где именно осуществляется непосредственное пересечение полей.</p>
102
<p>Предпоследний вариант, который предусматривает join в языке SQL - это full. Можно назвать данный процесс созданием единой таблицы. Информациях из обеих БД будет выведена на экран. Здесь не важно, где именно осуществляется непосредственное пересечение полей.</p>
103
<p>При full join происходит:</p>
103
<p>При full join происходит:</p>
104
<ul><li>проверка на невыполнение условия;</li>
104
<ul><li>проверка на невыполнение условия;</li>
105
<li>вывод на экран всех строчек из левой и правой таблиц со значениями null, когда условие не выполнено.</li>
105
<li>вывод на экран всех строчек из левой и правой таблиц со значениями null, когда условие не выполнено.</li>
106
</ul><p>Выглядит это так:</p>
106
</ul><p>Выглядит это так:</p>
107
<p>Если говорить математическим языком, вследствие обработки запроса произойдет слияние двух множеств. На диаграмме виден результат - это закрашенная область.</p>
107
<p>Если говорить математическим языком, вследствие обработки запроса произойдет слияние двух множеств. На диаграмме виден результат - это закрашенная область.</p>
108
<h3>Как записывать и применять</h3>
108
<h3>Как записывать и применять</h3>
109
<p>Форма записи окажется такого типа:</p>
109
<p>Форма записи окажется такого типа:</p>
110
<p>Full - это внутреннее соединение всех полей в табличках предоставленных баз данных. Для того, чтобы намного лучше разобраться в этом вопросе, составляются таблички:</p>
110
<p>Full - это внутреннее соединение всех полей в табличках предоставленных баз данных. Для того, чтобы намного лучше разобраться в этом вопросе, составляются таблички:</p>
111
<p>Они называются так же, как и предлагал последний наглядный пример. Запрос обладает следующим видом:</p>
111
<p>Они называются так же, как и предлагал последний наглядный пример. Запрос обладает следующим видом:</p>
112
<p>Итог:</p>
112
<p>Итог:</p>
113
<h2>Перекрестным типом</h2>
113
<h2>Перекрестным типом</h2>
114
<p>Еще один довольно интересный подход, который относится к основным - это cross. Называется перекрестным. Ин6огда - декартово. При его использовании происходит генерация того же результата, что и при вызове двух таблиц без рассматриваемой команды. Это значит, что:</p>
114
<p>Еще один довольно интересный подход, который относится к основным - это cross. Называется перекрестным. Ин6огда - декартово. При его использовании происходит генерация того же результата, что и при вызове двух таблиц без рассматриваемой команды. Это значит, что:</p>
115
<ul><li>на экране появится итог слияния первой таблицы и второй;</li>
115
<ul><li>на экране появится итог слияния первой таблицы и второй;</li>
116
<li>каждая запись одной таблицы будет дублироваться для каждого поля из другой.</li>
116
<li>каждая запись одной таблицы будет дублироваться для каждого поля из другой.</li>
117
</ul><p>Так, если в таблице1 a записей, а в таблице2 b, результирующей окажется таблица a x b полей. В виде диаграммы представить подобный процесс проблематично. Она только запутает разработчиков.</p>
117
</ul><p>Так, если в таблице1 a записей, а в таблице2 b, результирующей окажется таблица a x b полей. В виде диаграммы представить подобный процесс проблематично. Она только запутает разработчиков.</p>
118
<p>Обладает запрос следующим синтаксисом:</p>
118
<p>Обладает запрос следующим синтаксисом:</p>
119
<p>Внимание: cross join - это декартово произведение. Так будет проще понять, о чем идет речь.</p>
119
<p>Внимание: cross join - это декартово произведение. Так будет проще понять, о чем идет речь.</p>
120
<h2>Комбинации</h2>
120
<h2>Комбинации</h2>
121
<p>Для того, чтобы объединять пары табличек, можно воспользоваться self join. Чтобы разобраться в принципах работы запроса, необходимо рассмотреть пример. Сам запрос выглядит так:</p>
121
<p>Для того, чтобы объединять пары табличек, можно воспользоваться self join. Чтобы разобраться в принципах работы запроса, необходимо рассмотреть пример. Сам запрос выглядит так:</p>
122
<p>А итог:</p>
122
<p>А итог:</p>
123
<p>Представить такое произведение множеств наглядно тоже проблематично. Зато на примере - нет. Тут показано, что у Гарри нет начальника.</p>
123
<p>Представить такое произведение множеств наглядно тоже проблематично. Зато на примере - нет. Тут показано, что у Гарри нет начальника.</p>
124
<h2>Исключение</h2>
124
<h2>Исключение</h2>
125
<p>После рассмотрения внешнего соединения и другого объединения в языке SQL, важно не забывать об исключении. Результатом будут данные из первой таблицы, но исключая поля, совпадающие со второй табличкой. Наглядно это выглядит так:</p>
125
<p>После рассмотрения внешнего соединения и другого объединения в языке SQL, важно не забывать об исключении. Результатом будут данные из первой таблицы, но исключая поля, совпадающие со второй табличкой. Наглядно это выглядит так:</p>
126
<p>Чтобы воспользоваться подобным приемом, не нужно знать ни декартово произведение, ни какие-то другие сложные понятия. В запрос добавляется оператор Where.</p>
126
<p>Чтобы воспользоваться подобным приемом, не нужно знать ни декартово произведение, ни какие-то другие сложные понятия. В запрос добавляется оператор Where.</p>
127
<p>А вот пример записи команды:</p>
127
<p>А вот пример записи команды:</p>
128
<h2>Планы исполнения</h2>
128
<h2>Планы исполнения</h2>
129
<p>Для того, чтобы грамотно использовать join в SQL, нужно учитывать планы исполнения запросов. То, как именно (в какой последовательности) будет происходить обработка операторов и необходимые вычисления.</p>
129
<p>Для того, чтобы грамотно использовать join в SQL, нужно учитывать планы исполнения запросов. То, как именно (в какой последовательности) будет происходить обработка операторов и необходимые вычисления.</p>
130
<p>Очередность такая:</p>
130
<p>Очередность такая:</p>
131
<ul><li>from;</li>
131
<ul><li>from;</li>
132
<li>join;</li>
132
<li>join;</li>
133
<li>where.</li>
133
<li>where.</li>
134
</ul><p>Данный принцип актуален для всех СУБД. Если не принимать его во внимание, можно в конечном итоге получить таблички с неверной информацией.</p>
134
</ul><p>Данный принцип актуален для всех СУБД. Если не принимать его во внимание, можно в конечном итоге получить таблички с неверной информацией.</p>
135
<p>Важно: для того, чтобы ускорить обработку команд, важно использовать кластерные индексы. Они применяются Server Query Optimizer для обеих таблиц. Автоматическое создание кластерных индексов производится для первичных ключей. С остальными придется производить соответствующую настройку.</p>
135
<p>Важно: для того, чтобы ускорить обработку команд, важно использовать кластерные индексы. Они применяются Server Query Optimizer для обеих таблиц. Автоматическое создание кластерных индексов производится для первичных ключей. С остальными придется производить соответствующую настройку.</p>
136
<p>Описание join в языке SQL не должно вызывать вопросов. А если хочется лучше понять, что это такое, а также разобраться в принципах работы queries, стоит посетить дистанционные специализированные курсы. По окончанию обучения выдается сертификат, подтверждающий знания и навыки в выбранном направлении.</p>
136
<p>Описание join в языке SQL не должно вызывать вопросов. А если хочется лучше понять, что это такое, а также разобраться в принципах работы queries, стоит посетить дистанционные специализированные курсы. По окончанию обучения выдается сертификат, подтверждающий знания и навыки в выбранном направлении.</p>
137
<a></a>
137
<a></a>