SQL FOREIGN KEY

  SQL > SQL Avanzado > FOREIGN KEY

La clave externa o FOREIGN KEY, es una columna o varias columnas, que sirven para señalar cual es la clave primaria de otra tabla.

La columna o columnas señaladas como FOREIGN KEY, solo podrán tener valores que ya existan en la clave primaria PRIMARY KEY de la otra tabla.

Ejemplo de FOREIGN KEY

Tabla "departamentos", con la clave primaria "dep"

depdepartamento
1ADMINISTRACION
2INFORMATICA
3COMERCIAL

Tabla personas, con una clave externa FOREIGN KEY 'dep', que hace referencia a la clave primaria 'dep' de la tabla anterior 'departamentos' y por tanto, solo puede tener un valor de los que tiene en esa tabla

pernombreapellido1apellido2dep
1ANTONIOPEREZGOMEZ1
2ANTONIOGARCIARODRIGUEZ2
3PEDRORUIZGONZALEZ4

Definiciones de FOREIGN KEY en CREATE TABLE para MySQL

CREATE TABLE departamentos { dep int NOT NULL,
departamento varchar(255),
PRIMARY KEY (dep)
}


CREATE TABLE personas
{
per int NOT NULL,
nombre varchar(255),
apellido1 varchar(255),
dep int NOT NULL,
PRIMARY KEY (per),
FOREIGN KEY (dep) REFERENCES departamentos(dep)
}

Definiciones de FOREIGN KEY en CREATE TABLE para ORACLE, ACCESS, SQLSERVER

CREATE TABLE departamentos
{
dep int NOT NULL PRIMARY KEY,
departamento varchar(255),
}


CREATE TABLE personas
{
per int NOT NULL PRIMARY KEY,
nombre varchar(255),
apellido1 varchar(255),
dep int FOREIGN KEY REFERENCES departamentos (dep)
}

Si la clave externa o foránea (FOREIGN KEY) está compuesta por varias columnas o queremos ponerle un nombre, utilizaremos la fórmula siguiente:

CONSTRAINT fkpersonas FOREIGN KEY (dep, id) REFERENCES departamentos(dep,id).

Ejemplo FOREIGN KEY con ALTER TABLE

ALTER TABLE ADD FOREIGN KEY (dep) REFERENCES departamentos(dep)

Ejemplo FOREIGN KEY múltiple (varias columnas) con ALTER TABLE:

ALTER TABLE ADD CONSTRAINT fkpersonas FOREIGN KEY (dep) REFERENCES departamentos(dep)

Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero varía según la base de dato:

Borrar FOREIGN KEY en MySQL ALTER TABLE personas DROP FOREIGN KEY dep

Borrar FOREIGN KEY en ORACLE, SQLSERVER y ACCESS

ALTER TABLE personas DROP CONSTRAINT dep




Otros cursos


SQL. Curso completo de SQL. Aprende desde cero. Comandos SQL

PostgreSQL. Curso completo de SQL con PostgreSQL desde cero

Python 3. Curso completo de Python 3. Aprende desde cero


SQL CHECK >>


Copyright © 2012   11sql.com   Todos los derechos reservados.


SQL BASICO

SQL Intro
SQL Sintaxis
SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL ORDER BY
SQL INSERT
SQL UPDATE
SQL DELETE

SQL AVANZADO

SQL TOP
SQL LITE
SQL WILDCARDS
SQL IN
SQL BETWEEN
SQL ALIAS
SQL JOINS
SQL INNER JOIN
SQL LEFT JOIN
SQL RIGHT JOIN
SQL FULL JOIN
SQL UNION
SQL SELECT INTO
SQL CREATE DATABASE
SQL CREATE TABLE
SQL RESTRICCIONES
SQL NOT NULL
SQL UNIQUE
SQL UNIQUE ALTER TABLE
SQL PRIMARY KEY
SQL FOREIGN KEY
SQL CHECK
SQL DEFAULT
SQL CREATE INDEX
SQL DROP
SQL TRUNCATE
SQL ALTER
SQL AUTO INCREMENT
SQL VIEWS
SQL DATES
SQL VALORES NULL
SQL FUNCIONES NULL
SQL DATOS TEXTO MySQL
SQL DATOS NUMERICOS MySQL
SQL DATOS FECHA MySQL


Mapa del Sitio