Requisito previo: clave principal en MS SQL Server
SQL Server tiene diferentes claves que tienen un propósito diferente. En este artículo, la clave externa se discutirá brevemente.
La clave externa tiene un propósito similar al de la clave principal, pero la clave externa se usa para dos tablas. En algunos casos, la clave foránea se usa para autorreferenciar una sola tabla.
Clave externa:
una columna singular o un conjunto de columnas de una tabla que se identifica de forma única por una columna singular o un conjunto de columnas de otra tabla se denomina clave externa.
Sintaxis –
constraint fk_constraint-name foreign key(col1, col2) references parent_table-name(col1, col2) (OR) foreign key(col1, col2) references parent_table-name(col1, col2)
Una clave externa tiene dos tablas: la tabla principal y la tabla secundaria. Si un usuario desea insertar una columna en una tabla secundaria, la columna debe ser parte de la tabla principal; de lo contrario, se muestra un error. En la sintaxis, el término de restricción no es obligatorio de usar.
Cuando se menciona una clave externa en la consulta, la clave crea automáticamente una restricción de referencia, lo que significa que una columna se puede insertar en la tabla secundaria solo si es parte de la tabla principal.
De la base de datos de la universidad se consideran dos tablas denominadas estudiante (tabla principal) y notas (tabla secundaria).
Nombre | Rollno | Años |
---|---|---|
Aisha | 111 | 18 |
maya | 112 | 19 |
Fátima | 113 | 18 |
Tabla – Marcas
Nombre | Rollno | Marcas |
---|---|---|
Aisha | 111 | 9.5 |
maya | 112 | 8.7 |
Fátima | 113 | 7.7 |
Si un usuario quiere insertar una nueva columna, la consulta se da como:
foreign key('rollno') references student('rollno') insert into marks ('name', 'rollno', 'marks') values('Naina, '111', '7.5')
Se muestra un error porque un estudiante ya tomó el número de lista. (Restricción de clave externa). La clave foránea no permite que el valor vuelva a ocurrir. Para evitar tales errores, no se deben repetir los valores ni se debe considerar una columna diferente.
Publicación traducida automáticamente
Artículo escrito por mangalgiaishwarya2 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA