En el mercado actual, donde muchas empresas multinacionales utilizan bases de datos relacionales para manejar datos, es muy importante comprender cómo se pueden relacionar todas y cada una de las tablas entre sí. Entonces, en este artículo sobre SQL de clave externa, analizaré la clave externa en las tablas para que comprenda la relación entre las tablas.
Los siguientes temas se tratarán en este artículo:
- ¿Qué es la restricción de clave externa?
- Reglas para clave externa
- Operaciones de clave externa:
- Clave foránea SQL en Crear tabla
- Clave foránea de SQL en la tabla modificada
- Soltar clave externa
¿Qué es la restricción de clave externa?
Una clave externa es un tipo de clave que se utiliza para vincular dos tablas en una base de datos. Entonces, una clave externa es un atributo o una colección de atributos en una tabla que hace referencia a la clave principal en otra tabla.
Por ejemplo, si la tabla A y la tabla B están relacionadas entre sí, entonces si la tabla A consta de la clave principal, esta tabla se llamaría tabla referenciada o tabla principal. De manera similar, si la tabla B consta de una clave externa, esa tabla se conoce como tabla de referencia o tabla secundaria. Consulte la siguiente imagen:
Ahora que sabe qué es una clave externa, a continuación en este artículo sobre SQL de clave externa, comprendamos las reglas de la clave externa.
Reglas para clave externa
Las Reglas de Clave Foránea son las siguientes:
- La tabla con la clave foránea se denomina tabla secundaria y la tabla a la que hace referencia la clave foránea se denomina tabla principal.
- Se permiten valores nulos en una clave foránea
- Las claves foráneas se pueden duplicar
- Puede haber más de una sola clave externa en una tabla
- La relación que se establece entre las tablas se conoce como integridad referencial
Ahora que sabe cuáles son las reglas de una clave externa, a continuación en este artículo sobre SQL de clave externa, veamos las operaciones de la clave externa.
Operaciones de clave externa:
Para comprender las diversas operaciones presentes en la clave externa, considere las siguientes dos tablas:
Tabla de clientes:
ID de cliente | Nombre del cliente | Número de teléfono |
1 | Rohan | 9876543210 |
2 | Sonali | 9876567864 |
3 | Ajay | 9966448811 |
4 | Geeta | 9765432786 |
5 | Shubham | 9944888756 |
Tabla de cursos:
ID del curso | Nombre del curso | ID de cliente |
c01 | DevOps | 2 |
c02 | Aprendizaje automático | 4 |
c03 | RPA | 1 |
c04 | Tableau | 3 |
c05 | AWS | 2 |
Ahora, si observa, la columna de ID de cliente en la tabla de cursos se refiere a la columna de ID de cliente en la tabla de clientes. La columna de ID de cliente de la tabla de clientes es la clave principal y la columna de ID de cliente de la tabla de cursos es la clave externa de esa tabla.
Empezando con la primera operación:
Clave foránea en Crear tabla
Puede usar la siguiente sintaxis para crear una clave externa en la columna "ID de cliente" cuando crea la tabla "cursos":
#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 clave externa en varias columnas
Para aplicar una clave externa en varias columnas al crear una tabla, consulte el siguiente ejemplo:
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 continuación, en este artículo sobre SQL de clave externa, veamos cómo usar la clave externa en Alter Table.
Clave foránea en Alter Table
Puede usar la siguiente sintaxis para crear una clave externa en la columna "customerID" cuando la tabla "cursos" ya está creada y solo desea modificar la tabla:
ALTER TABLE courses ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);
Si desea agregar un nombre a la restricción de clave externa y definirla en varias columnas, use la siguiente sintaxis SQL:
ALTER TABLE courses ADD CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES Customers(customerID);
A continuación, en este artículo sobre SQL de clave externa, comprendamos cómo eliminar una clave externa
Soltar clave externa
Para eliminar la clave externa, puede consultar el siguiente ejemplo:
#For SQL Server/ MS Access/ Oracle ALTER TABLE courses DROP CONSTRAINT FK_CustomerCourse; For MYSQL ALTER TABLE courses DROP FOREIGN KEY FK_CustomerCourse;
Con esto, llegamos al final de este artículo. Espero que hayas entendido cómo usar Foreign Key en SQL. Si desea obtener más información sobre MySQL y conozca esta base de datos relacional de código abierto, luego consulte nuestra Capacitación en certificación MySQL DBA que viene con capacitación en vivo dirigida por un instructor y experiencia en proyectos de la vida real. Esta capacitación lo ayudará a comprender MySQL en profundidad y lo ayudará a dominar el tema.
¿Tiene alguna pregunta para nosotros? Menciónelo en la sección de comentarios de este artículo sobre "SQL de clave externa" y me pondré en contacto con usted.