CREATE TABLE IF NOT EXISTS `raca` (
  `idraca` INT NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(128) NOT NULL,
  `descricao` TEXT NULL,
  PRIMARY KEY (`idraca`)
) ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `adotante` (
  `idadotante` INT NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(128) NOT NULL,
  `telefone` VARCHAR(20),
  `email` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`idadotante`)
) ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `pet` (
  `idpet` INT NOT NULL AUTO_INCREMENT,
  `foto` VARCHAR(256) NOT NULL,
  `data_nascimento` DATE NOT NULL,
  `data_cadastro` DATE NOT NULL DEFAULT (CURRENT_DATE),
  `bio` TEXT NOT NULL,
  `data_adocao` DATE NULL,
  `status_adocao` ENUM('adotado', 'em adoção', 'não adotado') NOT NULL DEFAULT 'não adotado',
  `raca_idraca` INT NOT NULL,
  `adotante_idadotante` INT NULL,
  `nome` VARCHAR(68) NOT NULL,
  PRIMARY KEY (`idpet`),
  CONSTRAINT `fk_pet_raca` FOREIGN KEY (`raca_idraca`) REFERENCES `raca` (`idraca`),
  CONSTRAINT `fk_pet_adotante1` FOREIGN KEY (`adotante_idadotante`) REFERENCES `adotante` (`idadotante`)
) ENGINE = InnoDB;

INSERT INTO raca (nome) VALUES ('Labrador'), ('Poodle'), ('Vira-lata'), ('Bulldog'), ('Beagle');

INSERT INTO adotante (nome, telefone, email) VALUES
('Carlos Silva', '71999990001', 'carlos.silva@email.com'),
('Mariana Souza', '71999990002', 'mariana.souza@email.com'),
('João Pereira', '71999990003', 'joao.pereira@email.com'),
('Ana Oliveira', '71999990004', 'ana.oliveira@email.com'),
('Pedro Santos', '71999990005', 'pedro.santos@email.com');

INSERT INTO pet (nome, foto, data_nascimento, bio, raca_idraca, status_adocao, data_adocao, adotante_idadotante) 
VALUES
('Lab', 'labrador1.jpg', '2022-03-10', 'Labrador muito brincalhão e amigável.', 1, 'adotado', '2026-03-01', 1),
('Po', 'poodle1.jpg', '2021-07-15', 'Poodle pequeno e muito carinhoso.', 2, 'não adotado', NULL, NULL),
('VO', 'viralata1.jpg', '2023-01-05', 'Vira-lata resgatado da rua, muito dócil.', 3, 'em adoção', '2026-03-07', 2),
('La', 'labrador2.jpg', '2020-11-20', 'Labrador adulto, muito calmo.', 1, 'adotado', '2026-03-01', 1),
('Vi', 'viralata2.jpg', '2022-08-30', 'Filhote de vira-lata muito energético.', 3, 'não adotado', NULL, NULL);


UPDATE pet SET nome = 'Dora' WHERE idpet = 1;
UPDATE pet SET nome = 'Plínio' WHERE idpet = 2;
UPDATE pet SET nome = 'Belinha' WHERE idpet = 3;
UPDATE pet SET nome = 'Kurt' WHERE idpet = 4;
UPDATE pet SET nome = 'Jack' WHERE idpet = 5;


SELECT COUNT(*) AS total_adotados_no_periodo 
FROM pet 
WHERE status_adocao = 'adotado' 
  AND data_adocao BETWEEN '2026-03-01' AND '2026-03-05';


SELECT 
    P.foto, 
    P.nome AS nome_pet, 
    TIMESTAMPDIFF(YEAR, P.data_nascimento, CURRENT_DATE) AS idade_aproximada_anos, 
    R.nome AS raca
FROM pet P
INNER JOIN raca R ON R.idraca = P.raca_idraca;


SELECT foto, nome, bio 
FROM pet 
WHERE idpet = 1;


SELECT status_adocao, COUNT(*) AS quantidade 
FROM pet 
GROUP BY status_adocao;


SELECT 
    P.nome AS nome_pet,
    R.nome AS raca,
    P.status_adocao,
    A.nome AS nome_adotante
FROM pet P
INNER JOIN raca R ON R.idraca = P.raca_idraca
LEFT JOIN adotante A ON A.idadotante = P.adotante_idadotante;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: