Database
 sql >> Database >  >> RDS >> Database

SQL con chiave esterna:tutto ciò che devi sapere sulle operazioni con chiave esterna

Nel mercato odierno in cui molte multinazionali utilizzano database relazionali per gestire i dati, è molto importante capire come ogni tabella può essere correlata tra loro. Quindi, in questo articolo su Foreign Key SQL, parlerò della chiave esterna nelle tabelle per farti capire la relazione tra le tabelle.

I seguenti argomenti saranno trattati in questo articolo:

  1. Che cos'è il vincolo di chiave esterna?
  2. Regole per la chiave esterna
  3. Operazioni con chiavi straniere:
    • Chiave esterna SQL su Crea tabella
    • Chiave esterna SQL su Alter Table
    • Rilascia chiave esterna

Cos'è il vincolo di chiave esterna?

Una chiave esterna è un tipo di chiave usata per collegare due tabelle in un database. Quindi, una chiave esterna è un attributo o una raccolta di attributi in una tabella che fa riferimento alla chiave primaria in un'altra tabella.

Ad esempio, se la tabella A e la tabella B sono correlate tra loro, se la tabella A è costituita dalla chiave primaria, questa tabella verrà chiamata tabella di riferimento o tabella padre. Allo stesso modo, se la tabella B è costituita da una chiave esterna, tale tabella è nota come tabella di riferimento o tabella figlio. Fare riferimento all'immagine qui sotto:

Ora che sai cos'è la chiave esterna, in questo articolo su Chiave esterna SQL, cerchiamo di capire le regole della chiave esterna.

Regole per la chiave esterna

Le regole della chiave esterna sono le seguenti:

  1. La tabella con la chiave esterna è chiamata tabella figlia e la tabella a cui fa riferimento la chiave esterna è chiamata tabella padre.
  2. I valori Null sono consentiti in una chiave esterna
  3. Le chiavi straniere possono essere duplicate
  4. Può esserci più di una singola chiave esterna in una tabella
  5. La relazione stabilita tra le tabelle è nota come integrità referenziale

Ora che sai quali sono le regole di una chiave esterna, di seguito in questo articolo su Foreign key SQL, vediamo le operazioni della chiave esterna.

Operazioni con chiavi estere:

Per comprendere le varie operazioni presenti su Foreign key, considera le seguenti due tabelle:

Tabella dei clienti:

ID cliente Nome cliente Numero di telefono
1 Rohan 9876543210
2 Sonali 9876567864
3 Ajay 9966448811
4 Geeta 9765432786
5 Shubham 9944888756

Tabella dei corsi:

CourseID

Nome corso

ID cliente

c01

DevOps

2

c02

Apprendimento automatico

4

c03

RPA

1

c04

Tableau

3

c05

AWS

2

Ora, se osservi, la colonna customerID nella tabella dei corsi si riferisce alla colonna customerID nella tabella dei clienti. La colonna customerID della tabella dei clienti è la chiave primaria e la colonna customerID della tabella dei corsi è la chiave esterna di quella tabella.

A partire dalla prima operazione:

Chiave straniera su Crea tabella

Puoi utilizzare la seguente sintassi per creare una chiave esterna nella colonna "ID cliente" quando crei la tabella "corsi":

#For SQL Server/ MS Access/ Oracle
CREATE TABLE courses (
courseID varchar NOT NULL PRIMARY KEY,
courseName varchar NOT NULL,
customerID int FOREIGN KEY REFERENCES customers(customerID)
);
#For MySQL
CREATE TABLE courses (
courseID varchar NOT NULL PRIMARY KEY,
courseName varchar NOT NULL,
customerID int
PRIMARY KEY (courseID),
FOREIGN KEY (customerID) REFERENCES customers(customerID)
);

Applica la chiave esterna su più colonne

Per applicare la chiave esterna a più colonne durante la creazione di una tabella, fare riferimento al seguente esempio:

CREATE TABLE courses (
courseID varchar NOT NULL,
courseName varchar NOT NULL,
customerID int, PRIMARY KEY (courseID),
CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID)
REFERENCES customers(customerID)
);

Successivamente, in questo articolo su Foreign Key SQL, vediamo come utilizzare la chiave esterna su Alter Table.

Chiave straniera su Alter Table

Puoi usare la seguente sintassi per creare una chiave esterna nella colonna "customerID" quando la tabella "corsi" è già stata creata e vuoi solo modificare la tabella:

ALTER TABLE courses
ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);

Se desideri aggiungere un nome al vincolo di chiave esterna e definirlo su più colonne, utilizza la seguente sintassi SQL:

ALTER TABLE courses
ADD CONSTRAINT FK_CustomerCourse
FOREIGN KEY (customerID) REFERENCES Customers(customerID);

Successivamente, in questo articolo su Foreign Key SQL, cerchiamo di capire come eliminare una chiave esterna

Rilascia chiave esterna

Per eliminare la chiave esterna, puoi fare riferimento al seguente esempio:

#For SQL Server/ MS Access/ Oracle
ALTER TABLE courses
DROP CONSTRAINT FK_CustomerCourse;
For MYSQL
ALTER TABLE courses
DROP FOREIGN KEY FK_CustomerCourse;

Con questo, giungiamo alla fine di questo articolo. Spero che tu abbia capito come usare la chiave esterna in SQL. Se desideri saperne di più su MySQL e conosci questo database relazionale open source, quindi dai un'occhiata al nostro Formazione per la certificazione DBA MySQL che viene fornito con formazione dal vivo con istruttore ed esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.

Hai una domanda per noi? Per favore menzionalo nella sezione commenti di questo articolo su "Foreign Key SQL" e ti risponderò.