Introduction To SQL Joins Questions et réponses d'entrevue

SQL fait référence au langage de requête structuré est un langage entièrement conçu pour accéder aux bases de données, et il est le plus populaire avec les autres langages de base de données. Avec SQL, nous pouvons créer des tables, modifier des données, mettre à jour et supprimer selon les besoins de l'entreprise. Commençons donc par les questions fréquemment posées sur les jointures SQL.

Vous trouverez ci-dessous l'ensemble important des questions d'entrevue SQL Joins posées lors d'une entrevue.

1. Qu'est-ce qu'une jointure SQL et pourquoi en avons-nous besoin?

Répondre:
Les jointures SQL sont utilisées pour combiner des enregistrements de deux ou plusieurs tables dans un système de base de données. Une jointure fait référence à la combinaison des champs de deux ou plusieurs tables en utilisant une valeur commune à chacune des tables, ce qui aide à réduire les colonnes répétées et les données stockées dans les colonnes de la même table. Nous avons besoin de jointures pour obtenir des détails sur les données référencées et cela crée une liaison logique entre deux ou plusieurs tables. Il est nécessaire d'obtenir efficacement les données de plusieurs tables, c'est pourquoi nous avons besoin de jointures SQL.

2. Quels sont les différents types de jointures SQL? Donnez-leur une brève introduction?

Répondre:
Il y a au total 5 jointures en SQL, ce sont: -

a.Intérieur Rejoignez OU Rejoignez

Il s'agit d'une sorte de jointure dans laquelle nous obtenons tous les enregistrements qui correspondent à la condition dans deux ou plusieurs tables, puis les enregistrements dans toutes les tables qui ne correspondent pas ne sont pas affichés. Il affiche uniquement les entrées correspondantes de deux ou plusieurs tables.

b. jointure externe

Il existe trois types de jointures externes:
1. jointure gauche ou jointure gauche gauche
Ce type de jointure renverra toutes les lignes de la table de gauche en combinaison avec les enregistrements ou lignes correspondants de la table de droite.
S'il n'y a pas de colonnes correspondantes, il renverra des valeurs NULL.

2. jointure droite ou jointure extérieure droite
Ce type de jointure renverra toutes les lignes de la table de droite en combinaison avec les enregistrements ou lignes correspondants de la table de gauche.
S'il n'y a pas de colonnes correspondantes, il renverra des valeurs NULL.

3. jointure complète ou jointure externe complète
Ce type de JOIN combine Right Outer Join en plus de Left Outer Join. Il affiche les enregistrements des tables lorsque les conditions sont remplies et affiche la valeur NULL lorsqu'il n'y a aucune correspondance.

c. jointure naturelle
Ce type de jointure a deux conditions, premièrement il supprime les enregistrements en double du résultat et deuxièmement cette jointure sera faite sur toutes les colonnes avec le même nom pour l'égalité.

d.Cross Join
Ce type de jointure donne le produit cartésien des deux ou plusieurs tables impliquées.

e.Self-Join
C'est presque la même chose que la jointure interne, mais c'est plutôt une jointure d'une table à elle-même.

3. Que sont les jointures imbriquées dans SLQ?

Répondre:
Ce type de jointure fonctionne pour chaque tuple dans la relation de jointure externe, puis il analyse l'intégralité de la relation de jointure interne et ajoute tout tuple qui correspond à la condition de jointure et le résultat sera affiché.

4. Qu'est-ce que Merge Join en SQL?

Répondre:
La jointure de fusion (également appelée jointure de fusion-tri) est un processus de jointure utilisé dans l'application d'un système de gestion de base de données relationnelle. L'astuce de base d'un processus de jointure consiste à trouver chaque valeur unique de l'attribut de jointure, l'ensemble de tuples dans chaque relation qui génère cette valeur.

5. Qu'est-ce qu'une jointure de hachage dans SQL? comment l'utiliser?

Répondre:
Ce type de jointure a deux entrées comme tous les algorithmes de jointure, la première est l'entrée de construction, c'est-à-dire la table externe et la seconde est l'entrée de sonde, c'est-à-dire la table interne. L'optimiseur de requêtes attribue les rôles de sorte que la plus petite des deux entrées ci-dessus soit l'entrée de génération. La variante de jointure de hachage peut effectuer la déduplication, c'est-à-dire la suppression et le regroupement, tels que Sum (col1) Group-By Id. Ces mises à jour sont utilisées uniquement pour une entrée et pour les parties de génération et de sonde.
La requête ci-dessous est un exemple de jointure par hachage: -

Sélectionner un. Nommez AName, b. Nom comme BName
DE P.Product p
REJOIGNEZ P.ProductSub ps
ON p.ID = ps.ID
COMMANDER PAR p. Nom, ps. Nom

6. Comment les données doivent-elles être structurées pour effectuer des opérations de jointure dans une relation un-à-plusieurs et qu'en est-il d'une relation plusieurs-à-plusieurs?

Répondre:
Celui-ci est un peu plus délicat et est une question de conception de base de données intéressante.
Généralement, les relations un-à-plusieurs sont structurées à l'aide d'une seule FOREIGNKEY. Considérez notre exemple de clients et de commandes ci-dessus:

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

Il s'agit d'une relation un-à-plusieurs, car un client peut passer plusieurs commandes, mais une commande ne peut pas être affectée à plusieurs clients. En tant que tel, nous l'avons défini avec une simple clé étrangère dans la table des commandes pointant vers un client_id donné, et nous pouvons utiliser les clauses JOIN dans nos requêtes SELECT assez facilement.
Les relations plusieurs-à-plusieurs sont un peu plus compliquées. Par exemple, que se passerait-il si nous avions une table de commandes et une table de produits avec une relation plusieurs-à-plusieurs: toute commande peut contenir plusieurs produits et tout produit peut être affecté à plusieurs commandes. Comment structurerions-nous notre base de données?
La réponse: nous utilisons une table de mappage intermédiaire avec deux CLÉS ÉTRANGÈRES. Considérer ce qui suit:

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

Ci-dessus, nous avons créé une table distincte appelée products_to_orders qui mappe les articles de la table des produits aux articles de la table des commandes. Chaque ligne de notre tableau products_to_orders représente une combinaison produit-commande afin que plusieurs produits puissent être attribués à une seule commande - et qu'un seul produit puisse être affecté à plusieurs commandes.
Dans cet exemple, nous devons utiliser deux instructions JOIN pour lier toutes ces tables: une pour lier products_to_orders aux produits, et une pour lier products_to_orders aux commandes.

Article recommandé

Cela a été un guide de base pour la liste des questions et réponses d'entrevue SQL Joins afin que le candidat puisse réprimer ces questions d'entrevue SQL Joins facilement. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Questions et réponses d'entrevue TSQL
  2. Questions d'entretiens les plus posées à NoSQL
  3. Questions d'entretiens chez XML
  4. Questions d'entretiens chez Manual Testing