Postgres Intersect Command

Postgres Intersect Command
La funzione PostgreSQL interseca combina i valori risultanti di due o più istruzioni selezionate. Questa opzione viene utilizzata per recuperare le entità comuni in due o più tabelle. Quindi si ottiene un singolo valore risultante. Si ottiene un insieme di righe presenti in entrambe le tabelle. Questa funzione è molto utile nel recuperare tutti i record comuni in una singola query utilizzando di più.

Sintassi

Seleziona column_name1, column_name2 dalla tabella1
Interseca
Seleziona column_name1, column_name2 dalla tabella2

Questa è una sintassi di base della funzione di intersezione. Questo può essere modificato aggiungendo un asterisco per tutti i dati non specificando i nomi delle colonne. Il comando funziona in modo tale che entrambe le istruzioni selezionate funzionino e recuperino il record e quindi la funzione interseca sceglierà i dati comuni e rimuoverà quello non comune.

Funzionalità di interseca in PostgreSQL

  • Questa funzione viene utilizzata solo quando abbiamo dati comuni o dati duplicati in entrambe le colonne specificate.
  • Aiuta a gestire più di una tabella che recupera le stesse entità dai tavoli.

Per implementare il comando Intersect, dobbiamo creare tre tabelle qui. Possiamo usare qualsiasi tabella, ad esempio, ma per comprendere il concetto di intersezione, dobbiamo ereditare alcuni attributi e creare un giunto. Il primo conterrà l'intera informazione riguardante lo studente. Mentre la seconda e la terza tabella conterranno una parte delle informazioni aggiunte nel primo. Quindi creeremo la prima tabella denominata studente.

>> Crea studente table (
Key primaria seriale Student_ID,
Student_Name Varchar (255) non null
);

La tabella contiene due colonne, ID studente e il nome dello studente. Ora creeremo ulteriormente due tabelle denominate soggetto e pratico. Entrambe le tabelle sono originate dallo studente della tabella dei genitori. Quindi per collegarli, entrambe le tabelle conterranno la chiave primaria della tabella degli studenti come vincolo di chiave esterna per creare un giunto tra tutte le tabelle. Entrambe le tabelle di seguito menzionate hanno un attributo proprio e un attributo come chiave primaria esportata dalla tabella degli studenti.

Crea soggetto tabella (
Key primario Student_id Int,
join_date data non null,
Foreign Key (Student_id) References Student (Student_id)
);
Crea la tabella pratica (
Key primario Student_id Int,
join_date data non null,
Foreign Key (Student_id) References Student (Student_id)
);

Dopo la creazione di tutte le tabelle, useremo un'istruzione insert per inserire i dati in essa. Ogni tabella riceverà dati dopo l'esecuzione del comando.

>> Insert in Student (Student_Name) Values ​​("Thomas"), ("Bay Hikel"), ("Jason Sily"), ("Robert Hunt"), ("Arjit Suba"), ("Micky Angel"), " ("Shweta Singh"), ("Tom Ridle"), ("Sabana"), ("Timmy Honad");

Puoi vedere che i dati vengono inseriti solo nella colonna Nome; La colonna ID viene riempita automaticamente come il numero di serie. E i valori nella colonna ID del soggetto e delle tabelle pratiche saranno riempiti dalla tabella dell'oggetto. Ma l'inserimento nell'argomento e nella tabella pratica sarà in modo tale che alcuni ID in entrambe le tabelle dovrebbero essere simili per far fronte alla situazione che avevamo applicato.

Allo stesso modo il soggetto e le tabelle pratiche sono inserite dai dati.

Inserisci nei valori dei soggetti (1, '2000-02-01'), (2, '2001-06-01'), (5, '2002-01-01'), (7, '2005-06-01' );
>> inserisci in valori pratici (9, '2000-01-01'), (2, '2002-06-01'), (5, '2006-06-01'), (10, '2005-06- 01 ');

Tabella dell'oggetto:

Tavolo pratico:

Ora useremo un'istruzione selezionata per visualizzare i dati inseriti nella tabella degli studenti.

>> seleziona * dallo studente;

Esempio 1

Questo esempio mostrerà il record di quegli studenti che si sono uniti sia alle materie che alla pratica pratica della tavola degli studenti. Ciò verrà fatto utilizzando un'istruzione intersecante applicata sia sull'argomento che sulla tabella pratica. Questo comando funzionerà in modo tale da considerare gli ID studenti sia nell'argomento che nella classe pratica. Quegli ID che sono comuni in entrambe le tabelle saranno recuperati separatamente.

>> Seleziona Student_id dall'oggetto interseca seleziona Student_id da Practical;

Questo prenderà due file poiché solo due studenti si sono iscritti sia alle materie che al pratico. Entrambi gli ID hanno date di giunzione separate, ecco perché non abbiamo preso quella colonna.

Ora considera uno scenario in cui vogliamo recuperare il record dalla colonna ID e la colonna jood_date da una tabella che interseca i dati nella colonna ID della tabella pratica, e quindi indovina cosa accadrà?

>> Seleziona Student_id, join_date dall'oggetto intersect Select Student_id da Practical;

Si verificherà un errore perché per applicare la funzione di interseca, dobbiamo aver menzionato lo stesso numero di colonne in entrambe le tabelle. Altrimenti, la query non funzionerà.

Quindi, per superare questo errore, ora prenderemo entrambe le colonne da applicare da entrambe le tabelle per interseca, ma sfortunatamente non esiste una singola riga che corrisponda a join_date. Se una data di iscrizione in entrambe le tabelle è la stessa, allora il valore risultante deve avere due colonne con una riga comune di entrambe le tabelle interessate.

>> Seleziona Student_id, join_date dall'oggetto intersect Select Student_id, join_date da Practical;

Esempio 2

Questo esempio include lo stesso comando di interseca, ma ora alcune funzionalità aggiuntive vengono aggiunte nel comando che è ordine per clausola. Questa funzione viene utilizzata per organizzare il risultato recuperato. Ma mentre menzioniamo "Desc" con questa clausola, il risultato è organizzato in ordine decrescente.

>> Seleziona Student_id dall'oggetto intersect Select Student_id dall'ordine pratico di Student_id Desc;

Dall'output, puoi vedere che i valori sono stati organizzati per la prima.

Esempio 3

In questo esempio, applicheremo il comando Intersect sulla colonna Student_ID dell'argomento e la tabella Student. Quindi quegli ID che abbiamo inserito solo nella tabella dell'oggetto saranno recuperati.

>> Seleziona Student_id dall'oggetto intersect Select Student_id dallo studente;

Esempio 4

Se si applica una funzione interseca nella stessa tabella selezionata, prenderà tutti i record della tabella proprio come il valore risultante ottenuto dall'istruzione seleziona. Puoi vedere che abbiamo applicato il comando intersect sulla tabella pratica senza specificare la colonna, quindi tutti i dati insieme alla data di join sono recuperati.

>> Seleziona * da pratico interseca selezionare * da pratico;

Postgres interseca il comando tramite pgadmin

Ora controlleremo il comando interseca nella dashboard PGadmin proprio come PSQL. Dopo aver aperto l'interfaccia, vai alle tabelle nel database Postgres e nelle opzioni di sequenza. Continua ad espanderti fino a quando non si ottiene l'opzione tabelle ora selezionare lo studente della tabella e quindi procedere allo strumento di query per utilizzare un comando.

>> Seleziona Student_id da Practical Intersect Select Student_id dallo studente;

Abbiamo modificato la query sopra in cui la funzione di interseca viene applicata sul tavolo pratico e la tabella degli studenti.

Dopo aver applicato la query, eseguirla selezionando l'opzione. Vedrai che tutti gli ID comuni sono recuperati da entrambe le tabelle specificate nel comando.

Conclusione

L'articolo "Postgres Intersect Command" descrive il funzionamento di questo operatore nel sistema di database PostgreSQL. Alcuni esempi elementari sono usati qui per descrivere il suo lavoro in dettaglio. Ogni dati comuni può essere risolto facilmente utilizzando questa funzione interseca nei comandi per evitare la ridondanza e l'accoppiamento dei dati in un database.