Введение в SQL объединяет вопросы и ответы на интервью

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

Ниже приведен важный набор вопросов для интервью по SQL-соединениям, которые задаются в ходе интервью.

1. Что такое SQL-соединение и зачем оно нам?

Ответ:
Соединения SQL используются для объединения записей из двух или более двух таблиц в системе базы данных. Объединение относится к объединению полей из двух или более двух таблиц с использованием значения, общего для каждой из таблиц, которое помогает уменьшить количество повторяющихся столбцов и данных, хранящихся в столбцах одной и той же таблицы. Нам нужны объединения, чтобы получить подробную информацию о ссылочных данных, и это создает логическую связь между двумя или более таблицами. Необходимо эффективно получать данные из нескольких таблиц, поэтому нам нужны объединения SQL.

2. Каковы различные типы соединений SQL? Дать краткое представление о них?

Ответ:
Всего в SQL 5 объединений:

a.Inner Присоединиться ИЛИ Присоединиться

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

Внешнее соединение

Существует три типа внешних соединений:
1. ЛЕВНОЕ Соединение или ЛЕВОЕ Внешнее Соединение
Этот тип объединения вернет все строки из левой таблицы в сочетании с соответствующими записями или строками из правой таблицы.
Если соответствующих столбцов нет, он вернет значения NULL.

2.Правое или правое внешнее соединение
Этот тип объединения вернет все строки из правой таблицы в сочетании с соответствующими записями или строками из левой таблицы.
Если соответствующих столбцов нет, он вернет значения NULL.

3.Полное или полное внешнее соединение
Этот тип соединения объединяет правое внешнее соединение в дополнение к левому внешнему соединению. Он отображает записи из таблиц, когда выполняются условия, и отображает значение NULL, когда нет совпадений.

естественное соединение
Этот тип объединения имеет два условия: во-первых, он удаляет дубликаты записей из результата, а во-вторых, это объединение будет выполняться для всех столбцов с одинаковыми именами для равенства.

d.Cross Join
Этот тип соединения дает декартово произведение двух или более двух задействованных таблиц.

e.Self-Join
Это почти то же самое, что и внутреннее соединение, а скорее соединение таблицы с самим собой.

3. Что такое вложенные объединения в SLQ?

Ответ:
Этот тип объединения работает для каждого кортежа в отношении внешнего соединения, затем он сканирует все отношение внутреннего соединения и добавляет любой кортеж, который соответствует условию соединения, и результат будет отображаться.

4. Что такое объединение слиянием в SQL?

Ответ:
Объединение слиянием (также известное как сортировка с объединением) - это процесс объединения, который используется в приложении Реляционной системы управления базами данных. Основная хитрость процесса объединения заключается в поиске каждого уникального значения атрибута объединения, набора кортежей в каждом отношении, которое выводит это значение.

5. Что такое хеш-соединение в SQL? как это использовать?

Ответ:
Этот тип объединения имеет два входа, как и все алгоритмы соединения, первый - вход для построения, т.е. внешняя таблица, а второй - вход пробного сигнала, т.е. внутренняя таблица. Оптимизатор запросов распределяет роли таким образом, чтобы меньший из двух вышеупомянутых входных данных был входом для построения. Вариант хеш-соединения может выполнять дедупликацию, то есть удаление и группировку, например Sum (col1) Group-By Id. Эти обновления используются только для одного входа и для частей сборки и зонда.
Приведенный ниже запрос является примером хеш-соединения:

Выберите. Имя как имя, б. Имя как BName
ОТ П.Продукт Продукт р
ПРИСОЕДИНИТЬСЯ P.ProductSub ps
ON p.ID = ps.ID
ЗАКАЗАТЬ по p.Name, ps. имя

6. Как должны быть структурированы данные для выполнения операций соединения в отношении один-ко-многим, а как насчет отношения многие-ко-многим?

Ответ:
Это немного сложнее и интереснее, вопрос дизайна базы данных.
Как правило, отношения один-ко-многим структурированы с использованием одного FOREIGNKEY. Рассмотрим наш пример клиентов и заказов выше:

CREATE TABLE customers (
customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
);

CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
order_placed_date DATE NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);

Это отношение один ко многим, потому что один клиент может разместить несколько заказов, но один заказ не может быть назначен более чем одному клиенту. Таким образом, мы определили его с помощью простого внешнего ключа в таблице заказов, указывающего на заданный customer_id, и мы можем довольно легко использовать предложения JOIN в наших запросах SELECT.
Отношения многие ко многим немного сложнее. Например, что если бы у нас была таблица заказов и таблица продуктов с отношением «многие ко многим»: любой заказ может содержать несколько продуктов, а любой продукт может быть назначен нескольким заказам. Как бы мы структурировали нашу базу данных?
Ответ: мы используем промежуточную таблицу сопоставления с двумя внешними ключами. Учтите следующее:

CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
order_placed_date DATE NOT NULL,
);

CREATE TABLE products (
product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price INT NOT NULL
);

CREATE TABLE products_to_orders (
product_to_order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
order_id INT NOT NULL,
product_id INT NOT NULL,
FOREIGN KEY (order_id) REFERENCES orders(order_id),
FOREIGN KEY (product_id) REFERENCES products(product_id)
);

Выше мы создали отдельную таблицу с именем products_to_orders, которая отображает элементы таблицы продуктов на элементы таблицы заказов. Каждая строка в нашей таблице products_to_orders представляет одну комбинацию продукта-заказа, так что несколько продуктов могут быть назначены одному заказу, а один продукт может быть назначен нескольким заказам.
В этом примере нам нужно использовать два оператора JOIN, чтобы связать все эти таблицы вместе: один, чтобы связать products_to_orders с продуктами, и один, чтобы связать products_to_orders с заказами.

Рекомендуемая статья

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

  1. TSQL Interview Вопросы и ответы
  2. Лучшие задаваемые вопросы об интервью с NoSQL
  3. XML Интервью Вопросы
  4. Тестирование вопросов интервью