Restricción Primary key SQL
Que es la Restriccion Primary Key
La Restricción Primary Key(Llave Primaria) Define una columna o grupos de columnas como únicas, es decir los registros contenidos en estas columnas son exclusivos.
La columna definida como llave primaria no puede permitir valores Nulos por ende los registros almacenados en dicha columna serán exclusivos y no se podrán editar.
Dentro de una tabla que contenga muchas columnas la lleva primaria debe ser única por lo cual no es permitido que hayan mas de dos llaves primarias en dicha tabla. Por el contrario la llave primaria puede constar de varias columnas.
Para crear una llave primaria debemos hacer uso de la instrucción PRIMARY KEY, si deseamos nombrar la llave primaria debemos anteceder la instrucción CONSTRAINT para nombrar dicha llave primaria.
Sintaxis
PRIMARY KEY(NOMBRE_COLUMNA) CONSTRAINT PK_NOMBRE_RESTRICCION PRIMARY KEY(NOMBRE_COLUMNA)
Agregar la Restriccion Primary key a una tabla nueva
Visto la sintaxis para crear una llave primaria vamos a crear dos tablas. La primera tabla la nombraremos "Alumnos" y la segunda tabla la nombraremos como "Notas", en la primer tabla vamos a almacenar información de un alumnos como por ejemplo su nombre, apellidos, edad, etc., y en la otra tabla vamos a guardar registros de notas obtenidas por un alumno.
CREATE TABLE Alumnos( ALUMNOID INT NOT NULL, NOMBRE VARCHAR(100) NULL, APELLIDOS VARCHAR(100) NULL, EDAD INT NULL, PRIMARY KEY(ALUMNOID), ); GO CREATE TABLE Notas( NOTAID INT IDENTITY NOT NULL, ALUMNOID INT NULL, MATERIA VARCHAR(80) NULL, NOTA INT NOT NULL, CONSTRAINT PK_NOTAS PRIMARY KEY(NOTAID), ); GO
La primera tabla que hemos creado se almacenara toda la información de un alumnos, ahora bien en dicha tabla el campo "ALUMNOID" lo hemos definido como su llave primaria por lo cual en esta columna todo los registros almacenados serán únicos y no podremos editarlos además que no permitirá valores nulos.
La segunda tabla en la cual almacenaremos los registros de notas de un alumnos, su llave primaria es la columna "NOTAID" y en esta columnas de igual forma los registros guardados serán únicos y no podremos modificarlos aparte de eso que hemos definido la columna como IDENTITY lo que nos indica que el registro se autoincrementara solo.
Ahora vamos a crear las tablas en SQL Server Management Studio y vamos a realizar algunas ejemplo de inserción y modificación de registros en cada tabla creada.
Hasta em momento hemos visto como crear una tabla y su llave primaria atraves de Transact-Sql, pero también podemos hacerlo mediante el diseñador que trae Management Studio veamos como hacer, para ello vamos a crear un tercer tabla llamada "MATERIAS".
Lo primero que haremos es irnos al explorador de objetos, buscar nuestra base de datos desplegarnos ala opción tablas y damos clic derecho nueva tabla.
A continuación definimos las columnas para nuestra tabla.
Luego de haber dado clic en la opción Set Primary Key, observamos la estructura de la tabla y ala par de la columna MATERIAID aparece un símbolo de una llave lo que significa que es la llave primaria de la tabla. Por ultimo cerramos la ventana donde creamos la tabla nos preguntara si deseamos guardar la tabla y damos clic en si y asignamos el nombre a nuestra tabla "MATERIAS".
El error mostrado en pantalla nos dice que no se puede insertar una clave duplicada y se termina la instrucción.
Agregar la Restriccion Primary Key a una tabla existente
Para agregarle una llave primaria a una tabla ya existente tenemos que hacer uso de la instrucción ALTER TABLE.
Sintaxis
ALTER TABLE NOMBRE_TABLA ADD PRIMARY KEY(NOMBRE_COLUMNA) ALTER TABLE NOMBRE_TABLA ADD CONSTRAINT NOMBRE_RESTRICCION PRIMARY KEY(NOMBRE_COLUMNA)
A continuación vamos a crear una tabla llamada "Promedios" y posteriormente vamos asignarle la llave primaria.
CREATE TABLE PROMEDIOS( ID INT IDENTITY NOT NULL, ALUMNOID INT NOT NULL, PROMEDIO1 DECIMAL(11,2) NULL, PROMEDIO2 DECIMAL(11,2) NULL, ); GO
Ahora vamos a crearle la llave primaria.
ALTER TABLE PROMEDIOS ADD PRIMARY KEY(ID) ALTER TABLE PROMEDIOS ADD CONSTRAINT PK_PROMEDIOS PRIMARY KEY(ID)
Para agregar la llave primaria podemos hacerlo de la forma simple o asignándole un nombre mediante la instrucción Constraint.
Ahora vayamos a Sql Server Management Studio y creemos la tabla y posteriormente agreguemos la llave primaria.
Después de haber creado la tabla promedios procedamos a crear también su llave primaria.
ALTER TABLE PROMEDIOS ADD CONSTRAINT PK_PROMEDIOS PRIMARY KEY(ID,ALUMNOID)
Lo que le estamos indicando entre los paréntesis que mi llave primaria son las columna "ID" y "ALUMNOID".
Eliminar una Restriccion Primary Key
Para eliminar una restricción Primary Key podemos hacerlo de 2 maneras la primera mediante Transact-SQL utilizando la instrucción DROP, y la segunda forma de hacerlo es atraves del asistente del Sql Server Management Studio.
Mediante Transact-Sql la sintaxis es la siguiente:
ALTER TABLE NOMBRE_TABLA DROP PRIMARY KEY
Para el caso nuestro vamos a suponer que eliminamos la llave primaria de la tabla Alumnos la consulta seria la siguiente:
ALTER TABLE Alumnos DROP PRIMARY KEY(PK__Alumnos__8AF91F695D8BC84F)
En el caso de no haber usado la instrucción CONSTRAINT para nombrar la llave primaria debemos buscar el nombre que se le asigno por defecto ala restricción para eso podemos hacer uso del siguiente comando.
exec sp_helpconstraint NOMBRE_TABLA
Lo que hace este comando al ejecutarlo es mostrarnos la información del nombre de la tabla y de las restricciones que la tabla contiene.
A continuación hacemos clic derecho sobre el nombre de la tabla y seleccionamos la opción Desing.
Se nos va a cargar la pantalla de diseño de la tabla "PROMEDIO".
Nos colocamos sobre la columna ID y damos clic derecho nos van
aparecer varias opciones, haremos clic en la primera opción que dice Remove Primary Key.
Al dar clic sobre la opción Remove Primary Key eliminamos la llave primaria de la tabla, guardamos los cambios y ya no aparecerá el símbolo de una llave ala par de la columna.
La columna "ID" ha dejado se ser llave primaria de la tabla PROMEDIOS.
En este articulo hemos aprendido como usar la Restricción Primary key. es importante saber definirla en nuestra tablas mas cuando trabajábamos con tablas relacionales donde involucramos otra restricción como es la Foreign Key(Llave Secundaria).
0 Comentarios