No mercado atual, onde muitas empresas multinacionais usam bancos de dados relacionais para lidar com dados, é muito importante entender como cada tabela pode ser relacionada entre si. Portanto, neste artigo sobre SQL de chave estrangeira, discutirei a chave estrangeira em tabelas para que você entenda o relacionamento entre as tabelas.
Os seguintes tópicos serão abordados neste artigo:
- O que é restrição de chave estrangeira?
- Regras para chave estrangeira
- Operações de chave estrangeira:
- Chave estrangeira SQL na criação de tabela
- Chave estrangeira SQL na tabela Alter
- Descartar chave estrangeira
O que é restrição de chave estrangeira?
Uma chave estrangeira é um tipo de chave usada para vincular duas tabelas em um banco de dados. Portanto, uma chave estrangeira é um atributo ou uma coleção de atributos em uma tabela que se refere à chave primária em outra tabela.
Por exemplo, se a Tabela A e a Tabela B estiverem relacionadas entre si, se a Tabela A consistir na chave primária, essa tabela será chamada de tabela referenciada ou tabela pai. Da mesma forma, se a Tabela B consiste em uma chave estrangeira, essa tabela é conhecida como tabela de referência ou tabela filha. Consulte a imagem abaixo:
Agora que você sabe o que é chave estrangeira, a seguir neste artigo sobre SQL de chave estrangeira, vamos entender as regras da chave estrangeira.
Regras para chave estrangeira
As regras de chave estrangeira são as seguintes:
- A tabela com a chave estrangeira é chamada de tabela filha e a tabela referenciada pela chave estrangeira é chamada de tabela pai.
- Valores nulos são permitidos em uma chave estrangeira
- As chaves estrangeiras podem ser duplicadas
- Pode haver mais de uma única chave estrangeira em uma tabela
- A relação estabelecida entre as tabelas é conhecida como integridade referencial
Agora que você sabe quais são as regras de uma chave estrangeira, a seguir neste artigo sobre SQL de chave estrangeira, vamos ver as operações da chave estrangeira.
Operações de chave estrangeira:
Para entender as várias operações presentes na chave estrangeira, considere as duas tabelas a seguir:
Tabela de clientes:
CustomerID | Nome do cliente | PhoneNumber |
1 | Rohan | 9876543210 |
2 | Sonali | 9876567864 |
3 | Ajay | 9966448811 |
4 | Geeta | 9765432786 |
5 | Shubham | 9944888756 |
Tabela de cursos:
CourseID | Nome do Curso | CustomerID |
c01 | DevOps | 2 |
c02 | Aprendizado de máquina | 4 |
c03 | RPA | 1 |
c04 | Tableau | 3 |
c05 | AWS | 2 |
Agora, se você observar, a coluna customerID na tabela de cursos se refere à coluna customerID na tabela de clientes. A coluna customerID da tabela de clientes é a chave primária e a coluna customerID da tabela de cursos é a chave estrangeira dessa tabela.
Começando com a primeira operação:
Chave estrangeira na tabela de criação
Você pode usar a seguinte sintaxe para criar uma chave estrangeira na coluna “customerID” ao criar a tabela “courses”:
#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) );
Aplicar chave estrangeira em várias colunas
Para aplicar a chave estrangeira em várias colunas ao criar uma tabela, consulte o exemplo a seguir:
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) );
A seguir, neste artigo sobre SQL de chave estrangeira, vamos ver como usar a chave estrangeira em Alter Table.
Chave estrangeira na tabela de alteração
Você pode usar a seguinte sintaxe para criar uma chave estrangeira na coluna “customerID” quando a tabela “courses” já estiver criada e você quiser apenas alterar a tabela:
ALTER TABLE courses ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);
Se você deseja adicionar um nome à restrição de chave estrangeira e defini-la em várias colunas, use a seguinte sintaxe SQL:
ALTER TABLE courses ADD CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES Customers(customerID);
Em seguida, neste artigo sobre SQL de chave estrangeira, vamos entender como descartar uma chave estrangeira
Descartar chave estrangeira
Para descartar a chave estrangeira, você pode consultar o seguinte exemplo:
#For SQL Server/ MS Access/ Oracle ALTER TABLE courses DROP CONSTRAINT FK_CustomerCourse; For MYSQL ALTER TABLE courses DROP FOREIGN KEY FK_CustomerCourse;
Com isso, encerramos este artigo. Espero que você tenha entendido como usar a chave estrangeira no SQL. Se você deseja saber mais sobre MySQL e conheça esse banco de dados relacional de código aberto, então confira nosso Treinamento de certificação de DBA MySQL que vem com treinamento ao vivo conduzido por instrutor e experiência em projetos na vida real. Este treinamento ajudará você a entender o MySQL em profundidade e a dominar o assunto.
Tem alguma pergunta para nós? Mencione-o na seção de comentários deste artigo sobre "Foreign Key SQL" e entrarei em contato com você.