-- MySQL Workbench Forward Engineering


-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;


-- -----------------------------------------------------
-- Table `mydb`.`livros`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`livros` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `codigo` VARCHAR(100) NOT NULL,
  `titulo` VARCHAR(1000) NOT NULL,
  `ano_de_publicacao` SMALLINT NOT NULL,
  `areas_tematicas` VARCHAR(1000) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`autores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`autores` (
  `id` INT NOT NULL,
  `nome_completo` VARCHAR(200) NULL,
  `nacionalidade` VARCHAR(200) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`livros_autores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`livros_autores` (
  `livros_id` INT NOT NULL,
  `autores_id` INT NOT NULL,
  `id` INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  INDEX `fk_livros_has_autores_autores1_idx` (`autores_id` ASC) VISIBLE,
  INDEX `fk_livros_has_autores_livros2_idx` (`livros_id` ASC) VISIBLE,
  CONSTRAINT `fk_livros_has_autores_livros2`
    FOREIGN KEY (`livros_id`)
    REFERENCES `mydb`.`livros` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_livros_has_autores_autores1`
    FOREIGN KEY (`autores_id`)
    REFERENCES `mydb`.`autores` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`estudantes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`estudantes` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `matricula` CHAR(20) NULL,
  `nome` VARCHAR(200) NULL,
  `curso` VARCHAR(100) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`emprestimos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`emprestimos` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `data_retirada` DATETIME NULL,
  `data_devolucao` DATETIME NULL,
  `livros_id` INT NOT NULL,
  `estudantes_id` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_emprestimos_livros1_idx` (`livros_id` ASC) VISIBLE,
  INDEX `fk_emprestimos_estudantes1_idx` (`estudantes_id` ASC) VISIBLE,
  CONSTRAINT `fk_emprestimos_livros1`
    FOREIGN KEY (`livros_id`)
    REFERENCES `mydb`.`livros` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_emprestimos_estudantes1`
    FOREIGN KEY (`estudantes_id`)
    REFERENCES `mydb`.`estudantes` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `mydb`.`livros_autores`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`livros_autores` (
  `livros_id` INT NOT NULL,
  `autores_id` INT NOT NULL,
  `id` INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  INDEX `fk_livros_has_autores_autores1_idx` (`autores_id` ASC) VISIBLE,
  INDEX `fk_livros_has_autores_livros2_idx` (`livros_id` ASC) VISIBLE,
  CONSTRAINT `fk_livros_has_autores_livros2`
    FOREIGN KEY (`livros_id`)
    REFERENCES `mydb`.`livros` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_livros_has_autores_autores1`
    FOREIGN KEY (`autores_id`)
    REFERENCES `mydb`.`autores` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;





INSERT INTO `livros` VALUES (1,'123ABC','Dom Casmurro',1899,'romance'),(2,'123ABB','O corvo',1845,'poesia'),(3,'321BBA','A mão e a Luva',1874,'romance');
INSERT INTO `autores` VALUES (1,'Machado de Assis','Brasileiro'),(2,'Edgar Allan Poe','Estadunidense'),(3,'Clarice Lispector','Ucraniana');
INSERT INTO `estudantes` VALUES (1,'123A','Fulano','GTI'),(2,'321B','Ciclano','ADM'),(3,'5434A','Beltrano','GTI');
INSERT INTO `livros_autores` VALUES (1,1,1),(2,2,2),(3,1,3);
INSERT INTO `emprestimos` VALUES (1,'2025-05-13 00:00:00',NULL,1,1),(2,'2025-05-12 00:00:00',NULL,2,3);