Restricciones de Campos en Bases de Datos

Restricciones de Campos en Bases de Datos

  1. Sin Signo y Relleno con Ceros

unsigned
	id int unsigned
zerofill
	id int(5) zerofill
  1. No Nulo

not null

create table usuarios(
	id int,
    nombre varchar(16)
);
insert into usuarios(id) values(1);
insert into usuarios(nombre) values('maria');
insert into usuarios values('pedro',2);

create table clientes(
	id int,
    nombre varchar(16) not null
);
insert into clientes(id) values(1);
insert into clientes(nombre) values('ana');
insert into clientes values(1,'');
insert into clientes values(2,null);
  1. Valor por Defecto

create table productos(
	id int default 100,
	descripcion varchar(32) default 'sin nombre'
);
insert into productos(id) values(1);
insert into productos(descripcion) values('laptop');
insert into productos values(2,'monitor');
  1. Valores Únicos

-- Único en columna simple
create table estudiantes(
	id int unique,
	email varchar(64) unique
);
insert into estudiantes values(1,'estudiante@email.com'),(2,'estudiante@email.com');

-- Único compuesto
create table servidores(
	id int,
 	direccion_ip varchar(32),
 	puerto int,
 	unique(direccion_ip,puerto)
);
insert into servidores values(1,'192.168.1.1',80),(2,'192.168.1.1',443),(3,'192.168.1.2',80);
insert into servidores values(4,'192.168.1.1',80);
  1. Clave Primaria

-- La clave primaria equivale a not null + unique
create table empleados(
    id int primary key,
    nombre varchar(32)
);
insert into empleados(nombre) values('carlos');
insert into empleados values(1,'luis');
insert into empleados values(1,'juan');

-- Cuando no hay clave primaria explícita
create table registros(
    id int,
    edad int not null unique,
    telefono bigint not null unique,
    nacimiento int not null unique,
    estatura int not null unique
);
  1. Auto Incermento

create table categorias(
	id int primary key,
 	nombre varchar(32)
);

create series(
	id int primary key auto_increment,
 	titulo varchar(32)
);

-- Para reiniciar el auto incremento
truncate series;
  1. Claves Foráneas

Relación Uno a Muchos

create table departamentos(
	id int primary key auto_increment,
    nombre_dep varchar(32),
    descripcion varchar(32)
);

create table trabajadores(
	id int primary key auto_increment,
    nombre varchar(32),
    genero enum('masculino','femenino') default 'masculino',
    id_departamento int,
    foreign key(id_departamento) references departamentos(id)
    on update cascade
    on delete cascade
);

Relación Muchos a Muchos

create table libros(
	id int primary key auto_increment,
	titulo varchar(32)
);

create table escritores(
    id int primary key auto_increment,
    nombre varchar(32)
);

create table libros_escritores(
    id int primary key auto_increment,
    id_libro int,
    foreign key(id_libro) references libros(id) 
    on update cascade 
    on delete cascade,
    id_escritor int,
    foreign key(id_escritor) references escritores(id) 
    on update cascade 
    on delete cascade
);

Relación Uno a Uno

create table perfiles(
    id int primary key auto_increment,
    telefono bigint
);

create table cuentas(
    id int primary key auto_increment,
    usuario varchar(32),
    id_perfil int unique,
    foreign key(id_perfil) references perfiles(id) 
    on update cascade
    on delete cascade
);

Etiquetas: MySQL restricciones claves foráneas claves primarias Base de Datos

Publicado el 8-12 16:35