Lá no Discord da Rafaella (que por sinal vale a pena dar uma olhada) rolou um desafio na semana do MySQL pra completar a seguinte tarefa:
Deve ser montados queries SQL para a criação de uma tabela de livros na seguinte estrutura:
- id: inteiro auto-gerado (opcional utilizar uuid auto-gerado ou snowflake);
- name: texto (50 caracteres);
- description: texto (250 caracteres);
- author: texto (50 caracteres);
Depois as queries responsáveis por inserir um livro no banco, listar todos os livros, encontrar um livro, atualizar um livro e deletar um livro.
Deve ser montado queries SQL para a criação de uma tabela de usuários na seguinte estrutura:
- id: inteiro auto-gerado (opcional utilizar uuid auto-gerado ou snowflake);
- name: texto (50 caracteres);
- age: inteiro; - book: referência para um livro da tabela de livros ou pode estar vazio;
Além das queries para inserir, listar, encontrar, atualizar e deletar, deve haver uma query para definir um livro emprestado, atualizar o livro ou tirar o livro.
Criei as queries de forma a se assemelhar a uma API, usando exclusivamente Procedures pra facilitar o lado da aplicação que consome a API, além de evitar erros e padronizar a execução caso o DB seja atualizado
Basta importar o arquivo prepare_database.sql dentro do seu MySQL e está pronto para uso!
PS: JAMAIS IMPORTE QUALQUER ARQUIVO SEM ANTES VERIFICAR O CONTEÚDO!!!
Estarei assumindo que você esta no Database BalleriniMySQLCadastroLivros
CALL CadastraLivro('nome do livro', 'descricao do livro', 'autor do livro');
CALL AtualizaLivro(id_do_livro, 'nome do livro', 'descricao do livro', 'autor do livro');
Caso o id_do_livro não exista, será retornado um erro
CALL RemoveLivro(id_do_livro);
CALL ProcuraLivro(id_do_livro);
CALL ProcuraLivro(NULL);
Caso o id_do_livro seja nulo será retornado toda a lista de livros cadastrados
CALL CadastraUsuario('nome usuario', idade_do_usuario);
CALL AtualizaUsuario(id_do_usuario, 'nome do usuario', idade_do_usuario);
Caso o id_do_usuario não exista, será retornado um erro
CALL RemoveUsuario(id_do_usuario);
CALL ProcuraUsuario(id_do_usuario);
CALL ProcuraUsuario(NULL);
Caso o id_do_usuario seja nulo será retornado toda a lista de usuários cadastrados
CALL EmprestaLivro(id_do_usuario, id_do_livro);
Caso não existir usuário com o id id_do_usuario, será retornado um erro
Caso não existir livro com o id id_do_livro, será retornado um erro
Caso o id_do_livro for nulo, o livro que está emprestado ao usuário será devolvido
Caso o usuário já possuir um livro emprestado, será retornado um erro. O usuário deve devolver o livro antes
Caso o livro já esteja emprestado, será retornado um erro informando que o livro já esta emprestado
CALL SumarioBiblioteca(id_do_usuario);
Retorna um resumo de todos os livros junto com quais usuários os possui emprestado, caso houver algum.
CALL CheckLivroEmprestado(id_do_usuario);
Caso esteja emprestado, um erro será retornado
CALL CheckLivroExiste(id_do_usuario);
Caso não exista, um erro será retornado
CALL CheckUsuarioEmprestimo(id_do_usuario);
Caso o usuário já possua um livro emprestado, um erro será retornado
CALL CheckUsuarioExiste(id_do_usuario);
Caso não exista, um erro será retornado