34-Restinciones en SQL

Las restricciones se pueden especificar cuando la tabla se crea con el CREATE TABLE declaración, o después de que se crea la tabla con el ALTER TABLE declaración.

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
            );
        



Las restricciones de SQL se utilizan para especificar reglas para los datos de una tabla.

Las restricciones se utilizan para limitar el tipo de datos que pueden incluirse en una tabla.

Las restricciones pueden ser de nivel de columna o de tabla.

Las siguientes restricciones se usan comúnmente en SQL:

...
Tipo Descripcion
NOT NULL Asegura que una columna no puede tener un valor NULL
UNIQUE Asegura que todos los valores en una columna sean diferente
PRIMARY KEY Una combinación de un NOT NULLy UNIQUE. Identifica de forma única cada fila en una tabla
FOREYGN KEY Previene acciones que destruirían enlaces entre tablas
CHECK Asegura que los valores en una columna satisfacen una condición específica
DEFAULT Establece un valor predeterminado para una columna si no hay valor está especificado
CREATE INDEX Se utiliza para crear y recuperar datos de la base de datos. muy rápidamente

NOT NULL

De forma predeterminada, una columna puede contener valores NULL.

Si ponemos NOT NULL a columna es obligatoria que no contenga valores nulos

Ejemplo de NOT NULL

 CREATE TABLE Persons (
     ID int NOT NULL,
     LastName varchar(255) NOT NULL,
     FirstName varchar(255) NOT NULL,
     Age int
        );  
    



UNIQUE

La restricción UNIQUE asegura que todos los valores en una columna sean diferentes.

Las restinciones UNIQUE y PRIMARY KEY proporcionan una garantía de unicidad para una columna o conjunto de columnas.

PRIMARY KEY tiene automaticamente una restrincion UNIQUE

Las tablas pueden tener la restrincion UNIQUE muchas veces

PRIMARY KEY cada tabla solo puede tener una restincion

Ejemplo de UNIQUE

CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
        ); 
    



mysql:

 CREATE TABLE Persons (
     ID int NOT NULL,
     LastName varchar(255) NOT NULL,
     FirstName varchar(255),
     Age int,
     UNIQUE (ID)
 );
    



Para usar la restrincion UNIQUE en varias columnas

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT UC_Person UNIQUE (ID,LastName)
);
    



DROP una restricción ÚNICA

Para eliminar una restrincion UNIQUE utilize el seguinte codigo

Mysql

 ALTER TABLE Persons
 DROP INDEX UC_Person; 
    



Servidor SQL/Oracle/MS Access:

 ALTER TABLE Persons
 DROP CONSTRAINT UC_Person; 
    



Restrincion PRIMARY KEY

Las restrinciones PRIMARY KEY identifican de forma unica cada registro de una tabla

Las restrinciones PRIMARY KEY no pueden ser nulas

Las restrinciones PRIMARY KEY solo puede haber una por cada tabla

mysql:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
        );
    



Servidor SQL/Oracle/MS Access:

CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
); 
    



para defenir PRIMARY KEY en varias columas use el seguinte codigo

MySQL/SQL Server/Oracle/MS Access:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
); 
    

NOTA: En el ejemplo anterior solo hay UNO PRIMARY KEY(PK_Persona). Sin embargo, el VALOR de la clave primaria se compone de DOS COLUMNAS (ID + Apellido).




PRIMARY KEY (Alter table)

Para Crear un Primary Key cuando la tabla ya esta creada use el seguiente codigo

 ALTER TABLE Persons
 ADD PRIMARY KEY (ID);  
    



para permitir el nombramiento de PRIMARY key y defenir PRIMARY KEY en varias columnas use el seguiente codigo:

ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName); 
    



NOTA Si se usa alter table para poner una llave primaria, las columnas onde se va a inplantar la llave deben estar declaradas como NOT NULL

DROP PRIMARY KEY

Para se eliminar una llave primaria utilize el seguiente codigo

mysql:

ALTER TABLE Persons
DROP PRIMARY KEY; 
    



Servidor SQL/Oracle/MS Access:

 ALTER TABLE Persons
 DROP CONSTRAINT PK_Person;
    




Publicar un comentario

0 Comentarios