Clave foránea de SQL

Sumérgete en el mundo de SQL FOREIGN KEY y mejora tu comprensión de este elemento crucial en la gestión de bases de datos. Esta completa guía te guiará a través de diversos aspectos de los conceptos de SQL FOREIGN KEY y su implementación en bases de datos, junto con ejemplos prácticos y las mejores prácticas para utilizarlas en tus consultas. Empieza aprendiendo los conceptos básicos, como diferenciar entre clave primaria y SQL FOREIGN KEY, para pasar después a dominar el arte de implementar restricciones FOREIGN KEY en las tablas de tu base de datos. Por último, explora cómo utilizar eficazmente SQL FOREIGN KEY en tus consultas para optimizar la recuperación de datos y maximizar la productividad. Aprovecha el poder de SQL FOREIGN KEY y eleva tus habilidades en la gestión de bases de datos.

Clave foránea de SQL Clave foránea de SQL

Crea materiales de aprendizaje sobre Clave foránea de SQL con nuestra app gratuita de aprendizaje!

  • Acceso instantáneo a millones de materiales de aprendizaje
  • Tarjetas de estudio, notas, exámenes de simulacro y más
  • Todo lo que necesitas para sobresalir en tus exámenes
Regístrate gratis
Tarjetas de estudio
Índice de temas

    Explicación de SQL FOREIGN KEY

    SQL significa Lenguaje de Consulta Estructurado, que es un lenguaje estandarizado utilizado para gestionar sistemas de bases de datos relacionales. Una parte esencial del diseño y la construcción de una base de datos relacional es especificar restricciones para garantizar la integridad de los datos. Una de estas restricciones es la CLAVE EXTERNA.

    Una CLAVE EXTERNA es una columna (o un conjunto de columnas) de una tabla que se utiliza para establecer un vínculo entre dos o más tablas de una base de datos relacional. Estas claves ayudan a mantener la coherencia y la integridad de los datos, reforzando la integridad referencial entre las tablas.

    Cuando se crea una restricción FOREIGN KEY, se garantiza que los valores introducidos en la tabla de referencia deben existir en la tabla referenciada. En términos más sencillos, impide que se introduzcan datos no válidos en la(s) columna(s) CLAVE FOREJA de una tabla que no tenga(n) el valor correspondiente en la columna clave primaria de la tabla referenciada.

    La integridad referencial es un concepto según el cual las relaciones entre las tablas de una base de datos deben ser siempre coherentes. Es decir, al utilizar CLAVES EXTERNAS, cualquier modificación de los datos dentro de las tablas no debe dar lugar a imprecisiones o incoherencias en los datos.

    Hay cuatro tipos de acciones que se pueden especificar con las restricciones FOREIGN KEY cuando se modifican los datos:

    • SIN ACCIÓN: Es la acción por defecto. Impide la modificación si viola la integridad referencial.
    • CASCADE: Si se borra o actualiza la referencia de clave primaria, CASCADE borrará o actualizará automáticamente las filas de la tabla de referencia.
    • SET NULL: Si se borra o actualiza la referencia a la clave primaria, SET NULL establecerá el valor de la FOREIGN KEY en NULL en la tabla de referencia.
    • SET DEFAULT: Si se borra o actualiza la referencia a la clave primaria, SET DEFAULT establecerá el valor de la CLAVE EXTERNA a su valor por defecto en la tabla de referencia.

    Clave primaria vs SQL FOREIGN KEY

    En las bases de datos relacionales, los conceptos de Clave Primaria y Clave Foránea desempeñan un papel crucial en la definición de la estructura y las relaciones entre tablas. Comprender la diferencia entre ambos te ayudará a diseñar y gestionar eficazmente tu base de datos.

    Clave primariaCLAVE EXTRAÑA
    Identificador único para cada fila de una tabla.Columna(s) de una tabla utilizada(s) para establecer un vínculo entre dos o más tablas.
    Cada tabla sólo puede tener una clave primaria.Una tabla puede tener varias CLAVES EXTERNAS, cada una de las cuales hace referencia a una tabla distinta.
    Aplica la integridad de los datos dentro de una misma tabla.Aplica la integridad referencial entre tablas relacionadas.
    No puede contener valores NULL.Puede contener valores NULL a menos que se especifiquen restricciones adicionales.

    En resumen, una Clave Primaria es un identificador único para las filas de una tabla, mientras que una CLAVE FOREÑA se utiliza para hacer referencia a valores de otra tabla, manteniendo la coherencia y la integridad de los datos entre tablas relacionadas. Tanto las restricciones de Clave Primaria como las de CLAVE EXTERNA son herramientas esenciales para garantizar la organización coherente de tu base de datos cuando realizas operaciones de consulta, actualizaciones y modificaciones.

    Implementación de SQL FOREIGN KEY en bases de datos y tablas

    Añadir una CLAVE FOREÑA a tus tablas en una base de datos es un paso esencial durante la creación y el mantenimiento de una base de datos relacional. Establecer estas relaciones entre tablas garantiza la integridad referencial y evita que se introduzcan datos no válidos en tu base de datos. Existen dos métodos principales para añadir una CLAVE EXTERNA a tus tablas: durante la creación de la tabla o después de la creación de la tabla.

    Añadir FOREIGN KEY durante la creación de la tabla:

    Si vas a crear una tabla nueva y deseas añadir una CLAVE FOREJA inmediatamente, puedes utilizar la sentencia CREAR TABLA y especificar la restricción CLAVE FOREJA junto con cualquier otra columna necesaria. Aquí tienes un ejemplo:

    CREAR TABLA pedidos ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );

    En el ejemplo anterior, la columna "customer_id" de la tabla "pedidos" hace referencia a la columna "customer_id" de la tabla "clientes", aplicando la integridad referencial. Esto significa que cualquier valor "customer_id" introducido en la tabla "pedidos" debe existir en la tabla "clientes".

    Añadir FOREIGN KEY después de crear la tabla:

    Si tienes una tabla existente y quieres añadir una CLAVE EXTERNA, puedes utilizar la sentencia ALTER TABLE combinada con la cláusula ADD CONSTRAINT. He aquí un ejemplo:

    ALTER TABLE pedidos ADD CONSTRAINT fk_customer_id FOREIGN KEY (customer_id) REFERENCES customers(customer_id);

    En este ejemplo, se añade la restricción FOREIGN KEY denominada 'fk_customer_id' a la tabla 'pedidos'. La columna "customer_id" de la tabla "pedidos" hace referencia a la columna "customer_id" de la tabla "clientes", garantizando la integridad referencial entre las tablas.

    SQL de clave foránea opcional

    Al crear restricciones FOREIGN KEY, tienes la opción de especificar acciones adicionales que se llevarán a cabo cuando se produzca una modificación de datos en las tablas referenciadas. Estas acciones opcionales a veces son necesarias, dependiendo del diseño y los requisitos de tu base de datos. En esta sección, hablaremos de las siguientes acciones opcionales de FOREIGN KEY:

    • ON DELETE
    • ON ACTUALIZAR
    • ON DELETE y ON UPDATE híbridos

    Recuerda los cuatro tipos de acciones que puedes especificar al crear restricciones FOREIGN KEY de las acciones referenciales que hemos tratado anteriormente: NO ACTION, CASCADE, SET NULL y SET DEFAULT.

    Utilizar ON DELETE:

    Te permite definir la acción referencial que se producirá cuando se realice una operación DELETE en las filas de la tabla referenciada. He aquí un ejemplo:

    CREAR TABLA pedidos ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE );

    El ejemplo muestra el uso de la acción ON DELETE CASCADE. Significa que si se elimina cualquier fila de la tabla "clientes", todas las filas correspondientes de la tabla "pedidos" con los valores "customer_id" afectados se eliminarán automáticamente para mantener la integridad referencial.

    Utilizando ON UPDATE:

    Te permite definir la acción referencial que se producirá cuando se realice una operación de ACTUALIZACIÓN en las filas de la tabla referenciada. Aquí tienes un ejemplo:

    CREAR TABLA pedidos ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON UPDATE CASCADE );

    El ejemplo muestra el uso de la acción ON UPDATE CASCADE. Si alguna fila de la tabla "clientes" tiene un cambio en el valor de su columna "customer_id", todas las filas correspondientes de la tabla "pedidos" se actualizarán con el nuevo valor para preservar la integridad referencial.

    Híbrido ON DELETE y ON UPDATE:

    Puedes combinar acciones ON DELETE y ON UPDATE para manejar ambas situaciones simultáneamente. Aquí tienes un ejemplo:

    CREAR TABLA pedidos ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE SET NULL ON UPDATE CASCADE );

    En este ejemplo, si se elimina una fila de la tabla "clientes", las filas correspondientes de la tabla "pedidos" tendrán su "customer_id" establecido en NULL. Mientras tanto, si se actualiza un valor de 'customer_id' en la tabla 'clientes', las filas correspondientes de la tabla 'pedidos' se actualizarán con el nuevo valor, preservando así la integridad referencial.

    SQL Añadir Múltiples Claves Foráneas Eficientemente

    Al crear tablas con múltiples CLAVES EXTERNAS, es esencial definir las restricciones de forma eficiente para evitar complicaciones y reducir la carga de trabajo durante las actualizaciones o modificaciones posteriores. Hay dos formas principales de añadir múltiples restricciones FOREIGN KEY a tu tabla:

    Añadiendo múltiples FOREIGN KEY durante la creación de la tabla:

    Puedes definir varias restricciones FOREIGN KEY al crear una tabla incluyendo las restricciones en la sentencia CREATE TABLE. Aquí tienes un ejemplo:

    CREAR TABLA pedidos ( order_id INT PRIMARY KEY, customer_id INT, product_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id), FOREIGN KEY (product_id) REFERENCES products(product_id) );

    En el ejemplo anterior, hemos añadido dos restricciones FOREIGN KEY a la tabla "pedidos": "customer_id" hace referencia a la columna "customer_id" de la tabla "clientes", y "product_id" hace referencia a la columna "product_id" de la tabla "productos".

    Añadir varias FOREIGN KEY después de crear la tabla:

    Si tienes una tabla existente y quieres añadir varias restricciones FOREIGN KEY, puedes utilizar la sentencia ALTER TABLE en combinación con varias cláusulas ADD CONSTRAINT. He aquí un ejemplo:

    ALTER TABLE pedidos ADD CONSTRAINT fk_customer_id FOREIGN KEY (customer_id) REFERENCES clientes(customer_id), ADD CONSTRAINT fk_product_id FOREIGN KEY (product_id) REFERENCES productos(product_id);

    Como se muestra en el ejemplo, hemos añadido dos restricciones FOREIGN KEY a la tabla 'pedidos' mediante la sentencia ALTER TABLE. Las restricciones denominadas 'fk_customer_id' y 'fk_product_id' hacen referencia a la columna 'customer_id' de la tabla 'clientes' y a la columna 'product_id' de la tabla 'productos', respectivamente.

    Añadir varias restricciones FOREIGN KEY de forma eficaz puede ayudar a mantener la integridad referencial y optimizar las operaciones de la base de datos para mejorar el rendimiento. Si sigues los principios descritos en esta sección, podrás crear bases de datos relacionales robustas y escalables para satisfacer tus necesidades de gestión de datos.

    Uso de SQL FOREIGN KEY en las consultas

    Las SQL FOREIGN KEY desempeñan un papel crucial en las operaciones de consulta, ya que te permiten establecer relaciones entre tablas y recuperar datos con eficacia. En esta sección, exploraremos las distintas formas en que pueden utilizarse las CLAVES EXTRAÑAS en las consultas SQL, incluida la recuperación de datos y la combinación con otros comandos SQL.

    Consulta SQL con clave foránea para recuperar datos

    Cuando necesites recuperar datos de varias tablas relacionadas, las CLAVES EXTRAÑAS te permiten realizar operaciones JOIN para combinar los resultados en un único conjunto de resultados sin problemas. El tipo más común de operación JOIN es INNER JOIN, pero existen otros tipos, como LEFT JOIN, RIGHT JOIN y FULL OUTER JOIN.

    INNER JOIN:

    INNER JOIN devuelve filas de ambas tablas cuando hay una coincidencia entre los valores de la(s) columna(s) FOREIGN KEY de una tabla y la(s) columna(s) de clave primaria o única de otra tabla. Vamos a ilustrarlo con un ejemplo:

    SELECT clientes.nombre_cliente, pedidos.fecha_pedido FROM clientes INNER JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente;

    En el ejemplo anterior, recuperamos "nombre_cliente" de la tabla "clientes" y "fecha_pedido" de la tabla "pedidos". El INNER JOIN se realiza utilizando la FOREIGN KEY 'customer_id' de la tabla 'pedidos' que hace referencia a la clave primaria 'customer_id' de la tabla 'clientes'. Sólo las filas con valores "customer_id" coincidentes en ambas tablas se devuelven en el conjunto de resultados.

    JOIN IZQUIERDO:

    LEFT JOIN (o LEFT OUTER JOIN) devuelve todas las filas de la tabla izquierda (la tabla que aparece primero en la consulta) y las filas coincidentes de la tabla derecha (la tabla que aparece después en la consulta). Si no se encuentra ninguna coincidencia, se devuelven valores NULL para las columnas de la tabla derecha. Aquí tienes un ejemplo:

    SELECT clientes.nombre_cliente, pedidos.fecha_pedido FROM clientes LEFT JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente;

    En este caso, se muestran todas las filas de la tabla "clientes", y siempre que se encuentre una coincidencia en la tabla "pedidos" basada en el "id_cliente", también se muestra la columna "fecha_pedido". Si no hay un valor 'fecha_pedido' correspondiente, se muestra NULL para esa fila.

    RIGHT JOIN y FULL OUTER JOIN:

    Mientras que RIGHT JOIN (o RIGHT OUTER JOIN) devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda, FULL OUTER JOIN devuelve todas las filas cuando hay una coincidencia en la tabla izquierda o derecha. En ambos casos, se muestran valores NULL para las columnas de las filas no coincidentes.

    Sin embargo, cabe señalar que algunas bases de datos relacionales, como MySQL, no admiten RIGHT JOIN y FULL OUTER JOIN. En tales casos, puedes utilizar LEFT JOIN y comandos SQL adicionales para conseguir resultados similares.

    Combinación de SQL FOREIGN KEY con otros comandos SQL

    Las FOREIGN KEY pueden utilizarse en combinación con otros comandos SQL para realizar eficazmente diversas operaciones en tu base de datos. A continuación, exploraremos algunos comandos SQL clave que pueden utilizarse junto con las FOREIGN KEY:

    Cláusula WHERE:

    Puedes utilizar la cláusula WHERE junto con las FOREIGN KEY para filtrar los resultados basándote en condiciones específicas. Aquí tienes un ejemplo:

    SELECT clientes.nombre_cliente, pedidos.fecha_pedido FROM clientes INNER JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente WHERE pedidos.fecha_pedido > '2021-01-01';

    En este ejemplo, aplicamos la cláusula WHERE para filtrar los resultados y mostrar sólo los pedidos realizados después de '2021-01-01'.

    Cláusula GROUP BY:

    La cláusula GROUP BY se puede utilizar con las FOREIGN KEY para crear resultados agregados y agruparlos en función de atributos compartidos entre tablas. Por ejemplo

    SELECT clientes.nombre_cliente, COUNT(pedidos.id_pedido) AS total_pedidos FROM clientes INNER JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente GROUP BY clientes.id_cliente;

    Esta consulta obtiene el número total de pedidos de cada cliente agrupando el conjunto de resultados según el atributo "customer_id".

    Cláusula ORDER BY:

    Puedes utilizar la cláusula ORDER BY con FOREIGN KEYs para ordenar los resultados de la consulta en función de columnas específicas de tablas relacionadas. Veamos un ejemplo

    SELECT clientes.nombre_cliente, pedidos.fecha_pedido FROM clientes INNER JOIN pedidos ON clientes.id_cliente = pedidos.id_cliente ORDER BY pedidos.fecha_pedido DESC;

    En este ejemplo, los resultados de la consulta se ordenan en orden descendente según la columna "fecha_pedido" de la tabla "pedidos".

    Cuando trabajes con consultas complejas y varias tablas relacionadas, la combinación de las CLAVES EXTERNAS SQL con varios comandos SQL te permitirá optimizar la recuperación y manipulación de los datos, al tiempo que mantienes la integridad y coherencia de los datos dentro de tu base de datos relacional.

    SQL FOREIGN KEY - Puntos clave

    • CLAVEFORÁNEA SQL: Columna o conjunto de columnas de una tabla que se utiliza para establecer un vínculo entre dos o más tablas de una base de datos relacional para reforzar la integridad referencial.

    • Claveprimaria vs CLAVE EXTRANJERA SQL: Las claves primarias identifican de forma única las filas dentro de una única tabla, mientras que las CLAVES EXTRAÑAS hacen referencia a valores de otras tablas, manteniendo la coherencia y la integridad de los datos entre tablas relacionadas.

    • SQL Añadir Clave Foránea: Las restricciones FOREIGN KEY se pueden añadir durante la creación de la tabla mediante sentencias CREATE TABLE o después de la creación de la tabla mediante sentencias ALTER TABLE con cláusulas ADD CONSTRAINT.

    • Clave foráneaSQL opcional: Se pueden especificar acciones ON DELETE y ON UPDATE al crear claves foráneas, lo que permite realizar acciones adicionales como CASCADE, SET NULL o SET DEFAULT durante las modificaciones de datos.

    • Consulta SQL con Clave Foránea: Las CLAVES EXTRAÑAS pueden utilizarse en consultas SQL para realizar operaciones JOIN, recuperar datos de forma eficaz y combinar resultados de varias tablas relacionadas.

    Clave foránea de SQL Clave foránea de SQL
    Aprende con 15 tarjetas de Clave foránea de SQL en la aplicación StudySmarter gratis

    Tenemos 14,000 tarjetas de estudio sobre paisajes dinámicos.

    Regístrate con email

    ¿Ya tienes una cuenta? Iniciar sesión

    Preguntas frecuentes sobre Clave foránea de SQL
    ¿Qué es una clave foránea en SQL?
    Una clave foránea en SQL es un campo que establece una relación entre dos tablas, enlazando el campo de una tabla con el campo de la clave primaria de otra.
    ¿Por qué son importantes las claves foráneas?
    Las claves foráneas son importantes porque aseguran la integridad referencial entre tablas, evitando datos inconsistente o huérfanos.
    ¿Cómo se crea una clave foránea en SQL?
    Para crear una clave foránea en SQL se usa la sintaxis: `FOREIGN KEY (campo) REFERENCES otra_tabla(campo_primario)` en la definición de la tabla.
    ¿Cuáles son los beneficios de usar claves foráneas?
    Los beneficios de usar claves foráneas incluyen mejora de la integridad de los datos, facilitan las consultas y mantienen relaciones lógicas entre tablas.

    Pon a prueba tus conocimientos con tarjetas de opción múltiple

    ¿Qué es una CLAVE FOREÑA en SQL?

    ¿Qué es la Integridad Referencial en SQL?

    ¿Cuál es la diferencia entre una Clave Primaria y una CLAVE FOREÑA?

    Siguiente

    Descubre materiales de aprendizaje con la aplicación gratuita StudySmarter

    Regístrate gratis
    1
    Acerca de StudySmarter

    StudySmarter es una compañía de tecnología educativa reconocida a nivel mundial, que ofrece una plataforma de aprendizaje integral diseñada para estudiantes de todas las edades y niveles educativos. Nuestra plataforma proporciona apoyo en el aprendizaje para una amplia gama de asignaturas, incluidas las STEM, Ciencias Sociales e Idiomas, y también ayuda a los estudiantes a dominar con éxito diversos exámenes y pruebas en todo el mundo, como GCSE, A Level, SAT, ACT, Abitur y más. Ofrecemos una extensa biblioteca de materiales de aprendizaje, incluidas tarjetas didácticas interactivas, soluciones completas de libros de texto y explicaciones detalladas. La tecnología avanzada y las herramientas que proporcionamos ayudan a los estudiantes a crear sus propios materiales de aprendizaje. El contenido de StudySmarter no solo es verificado por expertos, sino que también se actualiza regularmente para garantizar su precisión y relevancia.

    Aprende más
    Equipo editorial StudySmarter

    Equipo de profesores de Ciencias de la Computación

    • Tiempo de lectura de 16 minutos
    • Revisado por el equipo editorial de StudySmarter
    Guardar explicación

    Guardar explicación

    Sign-up for free

    Regístrate para poder subrayar y tomar apuntes. Es 100% gratis.

    Únete a más de 22 millones de estudiantes que aprenden con nuestra app StudySmarter.

    La primera app de aprendizaje que realmente tiene todo lo que necesitas para superar tus exámenes en un solo lugar.

    • Tarjetas y cuestionarios
    • Asistente de Estudio con IA
    • Planificador de estudio
    • Exámenes simulados
    • Toma de notas inteligente
    Únete a más de 22 millones de estudiantes que aprenden con nuestra app StudySmarter.

    Consigue acceso ilimitado con una cuenta gratuita de StudySmarter.

    • Acceso instantáneo a millones de materiales de aprendizaje.
    • Tarjetas de estudio, notas, exámenes de simulacro, herramientas de AI y más.
    • Todo lo que necesitas para sobresalir en tus exámenes.
    Second Popup Banner