Introduzione a SQL Unisce domande e risposte

SQL si riferisce a Structured Query Language è un linguaggio progettato interamente per l'accesso ai database ed è il più popolare con altri linguaggi di database. Con SQL, possiamo creare tabelle, modificare dati, aggiornare ed eliminare in base ai requisiti aziendali. Quindi, iniziamo con le domande frequenti sull'intervista ai join SQL.

Di seguito sono riportate le importanti domande di interviste di SQL Joins che vengono poste in un'intervista

1. Che cos'è un join SQL e perché ne abbiamo bisogno?

Risposta:
I join SQL vengono utilizzati per combinare record da due o più di due tabelle in un sistema di database. Un join si riferisce alla combinazione dei campi di due o più di due tabelle utilizzando un valore comune a ciascuna delle tabelle che aiuta a ridurre le colonne ripetute e i dati memorizzati nelle colonne della stessa tabella. Abbiamo bisogno di join per ottenere dettagli sui dati di riferimento e crea un legame logico tra due o più tabelle. È necessario ottenere dati in modo efficiente da più tabelle, ecco perché abbiamo bisogno di join SQL.

2. Quali sono i diversi tipi di join SQL? Dai una breve introduzione a loro?

Risposta:
Ci sono un totale di 5 join in SQL, che sono: -

a.Inner Join O Join

Questo è un tipo di join in cui vengono visualizzati tutti i record che soddisfano la condizione in due o più di due tabelle e quindi i record in tutte le tabelle che non corrispondono non vengono visualizzati. Visualizza solo le voci corrispondenti di due o più tabelle.

b. Join esterno

Esistono tre tipi di join esterni:
1. Join SINISTRA o SINISTRA Join esterno
Questo tipo di join restituirà tutte le righe della tabella di sinistra in combinazione con i record o le righe corrispondenti della tabella di destra.
Se non ci sono colonne corrispondenti, verrà restituito un valore NULL.

2. Join DESTRA o DESTRA Join esterno
Questo tipo di join restituirà tutte le righe dalla tabella a destra in combinazione con i record o le righe corrispondenti dalla tabella a sinistra.
Se non ci sono colonne corrispondenti, verrà restituito un valore NULL.

3. Join completo o Full Outer Join
Questo tipo di JOIN combina Right Outer Join oltre a Left Outer Join. Visualizza i record delle tabelle quando sono soddisfatte le condizioni e visualizza il valore NULL in assenza di corrispondenza.

c. Join naturale
Questo tipo di join ha due condizioni, in primo luogo rimuove i record duplicati dal risultato e in secondo luogo questo join verrà effettuato su tutte le colonne con lo stesso nome per l'uguaglianza.

d.Cross Join
Questo tipo di join fornisce al prodotto cartesiano delle due o più di due tabelle coinvolte.

e.Self-Join
È quasi uguale al join interno ma piuttosto è un join di un tavolo a se stesso.

3. Cosa sono i join nidificati in SLQ?

Risposta:
Questo tipo di join funziona per ogni tupla nella relazione di join esterna, quindi analizza l'intera relazione di join interno e aggiunge qualsiasi tupla che corrisponde alla condizione di join e il risultato verrà visualizzato.

4. Che cos'è Merge Join in SQL?

Risposta:
Il join Merge (noto anche come join sort-merge) è un processo di join utilizzato nell'applicazione di un sistema di gestione di database relazionale. Il trucco di base di un processo di join è quello di trovare ogni valore univoco dell'attributo join, l'insieme di tuple in ogni relazione che genera quel valore.

5. Che cos'è un hash Join in SQL? come usarlo?

Risposta:
Questo tipo di join ha due input come tutti gli algoritmi di join, il primo è l'input build ovvero la tabella esterna e il secondo è input probe ovvero la tabella interna. Query Optimizer assegna i ruoli in modo che il più piccolo dei due input sopra sia l'input di build. La variante di hash join può eseguire la deduplicazione, ad esempio rimozione e raggruppamento, come Sum (col1) ID raggruppamento. Questi aggiornamenti vengono utilizzati solo per un input e per entrambe le parti build e probe.
La query seguente è un esempio di un hash join: -

Seleziona un. Nome come AName, b. Nome come BName
DA P.Prodotto p
ISCRIVITI P.ProductSub ps
ON p.ID = ps.ID
ORDINA PER p.Nome, ps. Nome

6. Come devono essere strutturati i dati per eseguire le operazioni di join in una relazione uno-a-molti e che dire di una relazione a molti-a-molti?

Risposta:
Questo è un po 'più complicato ed è un'interessante domanda di progettazione di database.
Generalmente, le relazioni uno-a-molti sono strutturate usando un singolo FOREIGNKEY. Considera il nostro esempio di clienti e ordini sopra:

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

Questa è una relazione uno-a-molti perché un cliente può effettuare più ordini, ma un ordine non può essere assegnato a più di un cliente. Pertanto, lo abbiamo definito con una semplice chiave esterna nella tabella degli ordini che punta a un dato customer_id e possiamo usare abbastanza facilmente le clausole JOIN nelle nostre query SELECT.
Le relazioni molti-a-molti sono un po 'più complicate. Ad esempio, se avessimo una tabella degli ordini e una tabella dei prodotti con una relazione molti-a-molti: qualsiasi ordine può contenere più prodotti e qualsiasi prodotto può essere assegnato a più ordini. Come struttureremmo il nostro database?
La risposta: usiamo una tabella di mappatura intermedia con due TASTI ESTERI. Considera quanto segue:

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

Sopra, abbiamo creato una tabella separata chiamata products_to_orders che mappa gli articoli nella tabella prodotti agli articoli nella tabella degli ordini. Ogni riga nella nostra tabella products_to_orders rappresenta una combinazione ordine-prodotto in modo che più prodotti possano essere assegnati a un ordine e un singolo prodotto possa essere assegnato a più ordini.
In questo esempio, è necessario utilizzare due istruzioni JOIN per collegare tutte queste tabelle: una per collegare products_to_order a prodotti e una per collegare products_to_order con gli ordini.

Articolo raccomandato

Questa è stata una guida di base all'elenco delle domande di intervista ai join SQL e alle risposte in modo che il candidato possa reprimere facilmente queste domande di interviste ai join SQL. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Domande e risposte sul colloquio TSQL
  2. Domande più frequenti sull'intervista NoSQL
  3. Domande di intervista XML
  4. Domande di intervista per test manuali