Introdução ao SQL junta-se a perguntas e respostas da entrevista

O SQL se refere à Linguagem de Consulta Estruturada, que é projetada inteiramente para acessar bancos de dados e é a mais popular entre outras linguagens de Banco de Dados. Com o SQL, podemos criar tabelas, alterar dados, atualizar e excluir de acordo com os requisitos de negócios. Então, vamos começar com o SQL mais freqüente junta-se às perguntas da entrevista.

Abaixo está o conjunto importante de perguntas sobre entrevistas de junção do SQL que são feitas em uma entrevista

1. O que é uma junção SQL e por que precisamos dela?

Responda:
As junções SQL são usadas para combinar registros de duas ou mais de duas tabelas em um sistema de banco de dados. Uma junção refere-se à combinação dos campos de duas ou mais de duas tabelas, usando um valor comum a cada uma das tabelas que ajuda a reduzir as colunas e os dados repetidos armazenados nas colunas da mesma tabela. Precisamos de junções para obter detalhes sobre os dados referenciados e isso cria uma ligação lógica entre duas ou mais tabelas. É necessário obter dados com eficiência de várias tabelas, é por isso que precisamos de junções SQL.

2. Quais são os diferentes tipos de junções SQL? Dê uma breve introdução a eles?

Responda:
Existem 5 junções no SQL, são elas: -

a.Inner Join OU Inscreva-se

Esse é um tipo de junção em que obtemos todos os registros que correspondem à condição em duas ou mais de duas tabelas e, em seguida, os registros em todas as tabelas que não correspondem não são exibidos. Ele exibe apenas as entradas correspondentes de duas ou mais tabelas.

b.Outer Join

Existem três tipos de junções externas:
Junção ESQUERDA ou Junção Externa ESQUERDA
Esse tipo de associação retornará todas as linhas da tabela esquerda em combinação com os registros ou linhas correspondentes da tabela direita.
Se não houver colunas correspondentes, ele retornará valores NULL.

Junção 2.RIGHT ou Junção externa DIREITA
Esse tipo de associação retornará todas as linhas da tabela direita em combinação com os registros ou linhas correspondentes da tabela esquerda.
Se não houver colunas correspondentes, ele retornará valores NULL.

Junção 3.Full ou Junção Externa Completa
Esse tipo de JOIN combina a junção externa direita, além da junção externa esquerda. Ele exibe registros das tabelas quando as condições são atendidas e exibe o valor NULL quando não há correspondência.

c.Natural Join
Esse tipo de junção possui duas condições: primeiro ele remove registros duplicados do resultado e, em segundo lugar, essa junção será feita em todas as colunas com o mesmo nome para igualdade.

d.Cross Join
Esse tipo de junção fornece o produto cartesiano das duas ou mais de duas tabelas envolvidas.

e.Self-Join
É quase o mesmo que a junção interna, mas é uma junção de uma tabela para si mesma.

3. O que são junções aninhadas no SLQ?

Responda:
Esse tipo de junção funciona para cada tupla na relação de junção externa, depois varre toda a relação de junção interna e adiciona qualquer tupla que corresponda à condição de junção e o resultado será exibido.

4. O que é a junção de mesclagem no SQL?

Responda:
A junção de mesclagem (também conhecida como junção de mesclagem de classificação) é um processo de junção usado no aplicativo de um sistema de gerenciamento de banco de dados relacional. O truque básico de um processo de junção é encontrar cada valor exclusivo do atributo de junção, o conjunto de tuplas em todas as relações que geram esse valor.

5. O que é uma junção de hash no SQL? como usá-lo?

Responda:
Esse tipo de junção possui duas entradas, como todos os algoritmos de junção, a primeira é a entrada de construção, ou seja, tabela externa e a segunda é a entrada do probe, ou seja, tabela interna. O otimizador de consulta distribui as funções para que a menor das duas entradas acima seja a entrada de construção. A variante da junção de hash pode fazer a desduplicação, ou seja, remoção e agrupamento, como Sum (col1) Group-By Id. Essas atualizações são usadas apenas para uma entrada e para as partes de compilação e sonda.
A consulta abaixo é um exemplo de junção de hash: -

Selecione uma. Nome como AName, b. Nome como BName
DE P.Product p
JOIN P.ProductSub ps
ON p.ID = ps.ID
ENCOMENDA POR p.Name, ps. Nome

6. Como os dados devem ser estruturados para executar o Join Operations em um relacionamento um para muitos e o que dizer sobre um relacionamento muitos para muitos?

Responda:
Este é um pouco mais complicado e é uma questão interessante de design de banco de dados.
Geralmente, os relacionamentos um para muitos são estruturados usando uma única FOREIGNKEY. Considere o nosso exemplo de clientes e pedidos acima:

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)
);

Esse é um relacionamento um para muitos, porque um cliente pode fazer vários pedidos, mas um pedido não pode ser atribuído a mais de um cliente. Como tal, definimos isso com uma chave estrangeira simples na tabela de pedidos apontando para um determinado customer_id e podemos usar as cláusulas JOIN em nossas consultas SELECT com bastante facilidade.
Os relacionamentos muitos para muitos são um pouco mais complicados. Por exemplo, e se tivéssemos uma tabela de pedidos e uma tabela de produtos com um relacionamento muitos para muitos: qualquer pedido pode conter vários produtos e qualquer produto pode ser atribuído a vários pedidos. Como estruturaríamos nosso banco de dados?
A resposta: usamos uma tabela de mapeamento intermediário com duas CHAVES ESTRANGEIRAS. Considere o seguinte:

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)
);

Acima, criamos uma tabela separada chamada products_to_orders que mapeia itens da tabela de produtos para itens da tabela de pedidos. Cada linha da nossa tabela products_to_orders representa uma combinação de pedido de produto para que vários produtos possam ser atribuídos a um pedido - e um único produto pode ser atribuído a vários pedidos.
Neste exemplo, precisamos usar duas instruções JOIN para vincular todas essas tabelas: uma para vincular products_to_orders a produtos e outra para vincular products_to_orders com pedidos.

Artigo recomendado

Este foi um guia básico para a lista de perguntas e respostas da lista de junções do SQL para que o candidato possa reprimir essas perguntas da entrevista de junções do SQL facilmente. Você também pode consultar os seguintes artigos para saber mais -

  1. Perguntas e Respostas da Entrevista TSQL
  2. Principais perguntas da entrevista NoSQL
  3. Perguntas da entrevista em XML
  4. Perguntas da entrevista de teste manual