SQL Chave Externa

?
?

SQL > Manipula??o de Tabelas > Chave Externa

Uma chave externa é um campo (ou campos) que aponta para a chave primária de outra tabela. O objetivo da chave externa é garantir a integridade referencial dos dados Por outras palavras, apenas os valores suportados que supostamente devem aparecer na base de dados s?o permitidos.

Por exemplo, suponhamos que temos duas tabelas, uma tabela CUSTOMER que inclui todos os dados dos clientes e uma tabela ORDERS que inclui todas as encomendas dos clientes. A restri??o prende-se com o fato de todas as encomendas deverem ser associadas a um cliente que já esteja na tabela CUSTOMER. Nesse caso, iremos colocar uma chave externa na tabela ORDERS e fazer com que se relacione com a chave primária da tabela CUSTOMER. Deste modo, podemos garantir que todas as encomendas na tabela ORDERS est?o relacionadas com um cliente na tabela CUSTOMER. Por outras palavras, a tabela ORDERS n?o pode conter informa??es sobre um cliente que n?o se encontre na tabela CUSTOMER.

A estrutura destas duas tabelas seria a seguinte:

Tabela CUSTOMER
Nome da Coluna Característica
SID Chave Primária
Last_Name  
First_Name  

Tabela ORDERS
Nome da Coluna Característica
Order_ID Chave Primária
Order_Date  
Customer_SID Chave Externa
Amount  

No exemplo acima apresentado, a coluna Customer_SID na tabela ORDERS é uma chave externa a apontar para a coluna SID na tabela CUSTOMER.

Abaixo s?o apresentados exemplos de como especificar uma chave externa ao criar a tabela ORDERS:

MySQL:

CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
PRIMARY KEY (Order_ID),
FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID));

Oracle:

CREATE TABLE ORDERS
(Order_ID integer PRIMARY KEY,
Order_Date date,
Customer_SID integer REFERENCES CUSTOMER (SID),
Amount double);

SQL Server:

CREATE TABLE ORDERS
(Order_ID integer PRIMARY KEY,
Order_Date datetime,
Customer_SID integer REFERENCES CUSTOMER (SID),
Amount double);

Abaixo s?o apresentados exemplos para a especifica??o de uma chave externa ao alterar uma tabela. Isso assume que a tabela ORDERS foi criada e que a chave externa ainda n?o foi introduzida:

MySQL:

ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

Oracle:

ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

SQL Server:

ALTER TABLE ORDERS
ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

SQL CREATE VIEW >>
?


Copyright © 2021   1keydata.com   Todos os direitos reservados.

? 老湿机69福利区无码_老子影院午夜伦无码_开心亚洲五月丁香五月