Está en la página 1de 3

CREATE DATABASE zoologico;

USE zoologico;

#Tabla Zoologico
CREATE TABLE zoo(
id INT AUTO_INCREMENT,
nombreZ VARCHAR(15) NOT NULL,
ciudad VARCHAR(15) NOT NULL,
pais VARCHAR(15) NOT NULL,
tamanio BIGINT(20) NOT NULL,
presupuestoA BIGINT(25) NOT NULL,
numeroTel VARCHAR(15),

#Restricciones
CONSTRAINT PK_key PRIMARY KEY (id),
CONSTRAINT UK_nombreZ UNIQUE(nombreZ),

#Check
CONSTRAINT CHK_validacion_nombreZ CHECK ( REGEXP_LIKE(nombreZ, '^[A-Z] [a-zA-Z]
+$') ),
CONSTRAINT CHK_validacion_ciudad CHECK ( REGEXP_LIKE(ciudad, '^[A-Z] [a-zA-Z]+
$') ),
CONSTRAINT CHK_validacion_pais CHECK ( REGEXP_LIKE(pais, '^[A-Z] [a-zA-Z]+
$') ),
CONSTRAINT CHK_validacion_tamanio CHECK ( REGEXP_LIKE(tamanio, '^[\d]+$') ),
CONSTRAINT CHK_validacion_presupuestoA CHECK ( REGEXP_LIKE(presupuestoA, '^[\d]
+$') ),
CONSTRAINT CHK_validacion_numeroTel CHECK ( REGEXP_LIKE(numeroTel, '^\+[1-9]{1}
[0-9]{3,14}$') )
);

INSERT INTO zoo(nombreZ, ciudad, pais, tamanio, presupuestoA, numeroTel)


VALUES ('La Aurora', 'Guatemala', 'Guatemala','200', '100000', '+50278945615');

INSERT INTO zoo(nombreZ, ciudad, pais, tamanio, presupuestoA)


VALUES ('El Zoologito', 'Miami', 'Estados Unidos','2000', '1000000');

SELECT * FROM zoo;

#Tabla animal
CREATE TABLE animal(
id INT AUTO_INCREMENT,
especie VARCHAR(15) NOT NULL,
dpiAnimal VARCHAR(9) NOT NULL,
sexo ENUM('Macho', 'Hembra') NOT NULL,
anioNacimiento DATE NOT NULL,
paisOrigen VARCHAR(20) NOT NULL,
contiente VARCHAR(20) NOT NULL ,
nombre VARCHAR(20) NOT NULL,
peso DOUBLE(8, 2),

#Checks
CONSTRAINT CHK_validacion_dpiAnimal CHECK ( REGEXP_LIKE(dpiAnimal, '^[1-9][0-9]
{8}$')),
CONSTRAINT CHK_validacion_especie CHECK ( REGEXP_LIKE(especie, '^[A-Z] [a-zA-Z]
+$')),
CONSTRAINT CHK_validacion_continente CHECK ( REGEXP_LIKE(contiente, '^[A-Z] [a-
zA-Z]+$')),
CONSTRAINT CHK_validacion_nombre CHECK ( REGEXP_LIKE(nombre, '^[A-Z] [a-zA-Z]+
$') ),

#Restricciones
CONSTRAINT PK_key PRIMARY KEY (id),
CONSTRAINT UK_dpiAnimal UNIQUE (dpiAnimal)
);

INSERT INTO animal (especie, dpiAnimal, sexo, anioNacimiento, paisOrigen,


contiente, nombre, peso)
VALUES ('Chucho', '123456789', 1, '2015-06-06', 'Aleman', 'Europa', 'Douglas',
'88.5');

INSERT INTO animal (especie, dpiAnimal, sexo, anioNacimiento, paisOrigen,


contiente, nombre, peso)
VALUES ('Leon', '123756789', 2, '2012-12-12', 'Australia', 'Oceania', 'Bernardo',
'105.5');

SELECT * FROM animal;

#Pertenencia
CREATE TABLE pertenece(
id INT AUTO_INCREMENT,
cuidador VARCHAR(15) NOT NULL,
numeroJaula INT(5) NOT NULL,
alimentacion ENUM ('Herbivoro', 'Carnivoro', 'Omnivoros') NOT NULL,

#Referencia
idzoo INT NOT NULL,
idanimal INT NOT NULL,

#Checks
CONSTRAINT CHK_validacion_cuidador CHECK ( REGEXP_LIKE(cuidador, '^[A-Z] [a-zA-
Z]+$') ),

#Restricciones
CONSTRAINT PK_key PRIMARY KEY (id),
CONSTRAINT UK_idzoo UNIQUE (idzoo),
CONSTRAINT UK_idanimal UNIQUE (idanimal),
CONSTRAINT FK_idzoo_id FOREIGN KEY (idzoo)
REFERENCES zoo(id) ON UPDATE CASCADE,
CONSTRAINT FK_idanimal_id FOREIGN KEY (idanimal)
REFERENCES animal(id) ON UPDATE CASCADE
);

INSERT INTO pertenece (cuidador, numeroJaula, alimentacion, idzoo, idanimal)


VALUES ('Pedrito', '25', 2, 1, 1);

INSERT INTO pertenece (cuidador, numeroJaula, alimentacion, idzoo, idanimal)


VALUES ('Alfonsito', '2', 2, 2, 2);

SELECT * FROM pertenece;

#Especies animales
CREATE TABLE especie(
id INT AUTO_INCREMENT,
nombreCientfico VARCHAR(25) NOT NULL,
familia VARCHAR(25),
peligo ENUM('Fuera de peligro', 'Protegido', 'En peligo de extincion') NOT
NULL,
#REFERENCIA
idanimal1 INT NOT NULL,

#Restricciones
CONSTRAINT PK_key PRIMARY KEY (id),
CONSTRAINT UK_idanimal1 UNIQUE (idanimal1),
CONSTRAINT FK_idanimal1_id FOREIGN KEY (idanimal1)
REFERENCES animal(id) ON UPDATE CASCADE,

#Cheks
CONSTRAINT CHK_validacion_nombreCientifico CHECK ( REGEXP_LIKE(nombreCientfico,
'^[A-Z] [a-zA-Z]+$')),
CONSTRAINT CHK_validacion_familia CHECK ( REGEXP_LIKE(familia, '^[A-Z] [a-zA-Z]
+$'))
);

INSERT INTO especie (nombreCientfico, familia, peligo, idanimal1)


VALUES ('Panthera leo', 'Felidae', 2, 2);

INSERT INTO especie (nombreCientfico, familia, peligo, idanimal1)


VALUES ('Canis lupus familiaris', 'Canidos', 1, 1);

SELECT * FROM especie;

SHOW TABLES;

También podría gustarte