HTML Diff
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>