Въведение в SQL Присъединява се към въпроси и отговори за интервю

SQL реферира като Структуриран език за заявки е език, който е предназначен изцяло за достъп до бази данни и е най-популярен с другите езици на базата данни. Със SQL можем да създаваме таблици, да променяме данни, да актуализираме и изтриваме според бизнес изискването. Така че, нека започнем с често задаваните SQL въпроси за присъединяване.

По-долу са важният набор от въпроси за интервю за SQL Joins, които се задават в интервю

1. Какво е SQL присъединяване и защо имаме нужда от него?

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

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

Отговор:
В SQL има общо 5 присъединявания, те са: -

a.Inner Присъединете се или се присъединете

Това е вид присъединяване, при което получаваме всички записи, които съответстват на условието в две или повече от две таблици, а след това записите във всички таблици, които не съвпадат, не се показват. Той показва само съвпадащите записи на две или повече таблици.

b. Външно присъединяване

Има три типа външни съединения:
1.LEFT присъединяване или ляво външно присъединяване
Този вид съединяване ще върне всички редове от лявата таблица в комбинация със съвпадащите записи или редове от дясната таблица.
Ако няма съвпадащи колони, то ще върне NULL стойности.

2. ПРАВО Присъединяване или НАДЯСНО Външно присъединяване
Този вид съединяване ще върне всички редове от дясната таблица в комбинация със съвпадащите записи или редове от лявата таблица.
Ако няма съвпадащи колони, то ще върне NULL стойности.

3. Пълно присъединяване или пълно външно присъединяване
Този вид ПРИЛОЖЕНИЕ съчетава Right Outer Join в допълнение към Left Outer Join. Той показва записи от таблиците, когато са изпълнени условията, и показва NULL стойността, когато няма съвпадение.

c.Natural Join
Този вид присъединяване има две условия, първо той премахва дублиращите записи от резултата и второ това съединение ще бъде направено във всички колони със същото име за равенство.

d.Cross Join
Този вид съединение дава декартово произведение на две или повече от две участващи таблици.

e.Self-Присъединете
Той е почти същото като вътрешното съединяване, но по-скоро е присъединяване на таблица към себе си.

3. Какво са вложени в SLQ?

Отговор:
Този вид съединяване работи за всеки кортеж във външното съединение, след това той сканира цялата вътрешна връзка и добавя всеки кортеж, който съответства на условието за присъединяване и резултатът ще бъде показан.

4. Какво е Merge Join в SQL?

Отговор:
Сливането на сливане (известно още като сортиране на сливане) е процес на присъединяване, който се използва в приложението на система за управление на релационни бази данни. Основният трик на процеса на присъединяване е да се намери всяка уникална стойност на атрибута за присъединяване, набора от кортежи във всяко отношение, който извежда тази стойност.

5. Какво е hash Join в SQL? как се използва?

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

Избери. Име като AName, б. Име като BName
ОТ P.Product стр
ПРИСЪЕДИНЕТЕ P.ProductSub ps
НА 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)
);

Това е взаимоотношение между много хора, тъй като един клиент може да направи няколко поръчки, но една поръчка не може да бъде назначена на повече от един клиент. Като такъв, ние го дефинирахме с обикновен чужд ключ в таблицата с поръчки, насочен към даден клиент_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 Joins и отговори, така че кандидатът да може лесно да разруши тези въпроси за интервю за SQL. Можете също да разгледате следните статии, за да научите повече -

  1. Въпроси и отговори на интервю за TSQL
  2. Най-често задавани въпроси за интервю на NoSQL
  3. Въпроси за интервю с XML
  4. Въпроси за ръчно тестване на интервю