Você está na página 1de 3

-- Selecione todos os livros emprestados atualmente com os nomes dos usuários:

SELECT L.Titulo, U.Nome AS NomeUsuario


FROM Livros L
INNER JOIN Emprestimos E ON L.LivroID = E.LivroID
INNER JOIN Usuarios U ON E.UsuarioID = U.UsuarioID;

-- Listar todos os livros cujos títulos começam com a letra 'A':

SELECT Titulo
FROM Livros
WHERE Titulo LIKE 'A%';

--Encontre todos os empréstimos com uma data de devolução prevista após 2023-09-15:
sql

SELECT *
FROM Emprestimos
WHERE DataDevolucaoPrevista > '2023-09-15';

--Liste todos os usuários que não são do tipo 'Funcionário':

SELECT *
FROM Usuarios
WHERE TipoUsuarioID <> 3;

-- Listar todos os empréstimos de livros feitos por usuários do tipo 'Estudante',


incluindo os detalhes do livro emprestado:

SELECT U.Nome AS NomeUsuario, L.Titulo, E.DataEmprestimo, E.DataDevolucaoPrevista


FROM Emprestimos E
INNER JOIN Usuarios U ON E.UsuarioID = U.UsuarioID
INNER JOIN Livros L ON E.LivroID = L.LivroID
WHERE U.TipoUsuarioID = 1;

-- Listar os empréstimos de livros com suas devoluções correspondentes, incluindo


os nomes dos usuários:

SELECT U.Nome AS NomeUsuario, L.Titulo, E.DataEmprestimo, D.DataDevolucao


FROM Emprestimos E
INNER JOIN Usuarios U ON E.UsuarioID = U.UsuarioID
INNER JOIN Livros L ON E.LivroID = L.LivroID
LEFT JOIN Devolucoes D ON E.EmprestimoID = D.EmprestimoID;

-- Encontre o total de empréstimos feitos por cada usuário e ordene os resultados


pelo número de empréstimos em ordem decrescente:

SELECT U.Nome AS NomeUsuario, COUNT(E.EmprestimoID) AS TotalEmprestimos


FROM Usuarios U
LEFT JOIN Emprestimos E ON U.UsuarioID = E.UsuarioID
GROUP BY U.UsuarioID
ORDER BY TotalEmprestimos DESC;

-- Encontre o número total de empréstimos por ano de publicação dos livros e ordene
os resultados pelo ano em ordem crescente:

SELECT L.AnoPublicacao, COUNT(E.EmprestimoID) AS TotalEmprestimos


FROM Livros L
LEFT JOIN Emprestimos E ON L.LivroID = E.LivroID
GROUP BY L.AnoPublicacao
ORDER BY L.AnoPublicacao;

-- Liste todos os livros que não foram emprestados ainda:

SELECT Titulo
FROM Livros
WHERE LivroID NOT IN (SELECT LivroID FROM Emprestimos);

-- Mostre o número total de empréstimos para cada usuário:

SELECT U.Nome AS NomeUsuario, COUNT(E.EmprestimoID) AS TotalEmprestimos


FROM Usuarios U
LEFT JOIN Emprestimos E ON U.UsuarioID = E.UsuarioID
GROUP BY U.UsuarioID;

-- Encontre o autor com a maior quantidade de livros emprestados:

SELECT L.Autor, COUNT(E.EmprestimoID) AS TotalEmprestimos


FROM Livros L
LEFT JOIN Emprestimos E ON L.LivroID = E.LivroID
GROUP BY L.Autor
ORDER BY TotalEmprestimos DESC
LIMIT 1;

-- Liste todos os livros emprestados por usuários do tipo "Estudante":

SELECT U.Nome AS NomeUsuario, L.Titulo


FROM Emprestimos E
INNER JOIN Usuarios U ON E.UsuarioID = U.UsuarioID
INNER JOIN Livros L ON E.LivroID = L.LivroID
WHERE U.TipoUsuarioID = 1;

-- Mostre a média das penalidades de devolução:

SELECT AVG(Penalidade) AS MediaPenalidades


FROM Devolucoes;

-- Liste os livros emprestados que foram publicados entre 1990 e 2000:

SELECT L.Titulo, L.Autor, L.AnoPublicacao


FROM Livros L
INNER JOIN Emprestimos E ON L.LivroID = E.LivroID
WHERE L.AnoPublicacao BETWEEN 1990 AND 2000;

-- Encontre os usuários que não fizeram nenhum empréstimo:

SELECT U.Nome AS NomeUsuario


FROM Usuarios U
LEFT JOIN Emprestimos E ON U.UsuarioID = E.UsuarioID
WHERE E.EmprestimoID IS NULL;
-- Liste todos os livros emprestados por usuários do tipo "Estudante" OU
"Professor":

SELECT U.Nome AS NomeUsuario, L.Titulo


FROM Emprestimos E
INNER JOIN Usuarios U ON E.UsuarioID = U.UsuarioID
INNER JOIN Livros L ON E.LivroID = L.LivroID
WHERE U.TipoUsuarioID = 1 OR U.TipoUsuarioID = 2;

-- Mostre o total de empréstimos por usuário e filtre apenas aqueles com mais de 3
empréstimos:

SELECT U.Nome AS NomeUsuario, COUNT(E.EmprestimoID) AS TotalEmprestimos


FROM Usuarios U
LEFT JOIN Emprestimos E ON U.UsuarioID = E.UsuarioID
GROUP BY U.UsuarioID
HAVING TotalEmprestimos > 3;

-- Listar todos os livros emprestados por usuários do tipo "Estudante" ou


"Professor", agrupados por autor:

SELECT L.Autor, L.Titulo


FROM Emprestimos E
INNER JOIN Usuarios U ON E.UsuarioID = U.UsuarioID
INNER JOIN Livros L ON E.LivroID = L.LivroID
WHERE U.TipoUsuarioID = 1 OR U.TipoUsuarioID = 2
GROUP BY L.Autor, L.Titulo;

Você também pode gostar