0% acharam este documento útil (0 voto)
34 visualizações6 páginas

Documento SQL

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
34 visualizações6 páginas

Documento SQL

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

CREATE DATABASE Biblioteca;

USE Biblioteca;

CREATE TABLE AUTORES (

autor_id INT AUTO_INCREMENT PRIMARY KEY,

nome_autor VARCHAR(255) NOT NULL,

nacionalidade VARCHAR(255) NOT NULL

);

CREATE TABLE ALUNOS (

aluno_id INT AUTO_INCREMENT PRIMARY KEY,

nome_do_aluno VARCHAR(255) NOT NULL,

matricula VARCHAR(255) NOT NULL UNIQUE,

curso VARCHAR(255) NOT NULL

);

CREATE TABLE LIVROS (

livro_id INT AUTO_INCREMENT PRIMARY KEY,

nome_do_livro VARCHAR(255) NOT NULL,

genero VARCHAR(255),

nacionalidade VARCHAR(255),

autor_id INT,

editora VARCHAR(255),

valor DECIMAL(10, 2),

FOREIGN KEY (autor_id) REFERENCES AUTORES(autor_id)

);

CREATE TABLE EMPRESTIMOS (

id_emprestimo INT AUTO_INCREMENT PRIMARY KEY,


id_livro INT,

id_aluno INT,

data_do_emprestimo DATE NOT NULL,

data_de_devolucao DATE,

FOREIGN KEY (id_livro) REFERENCES LIVROS(livro_id),

FOREIGN KEY (id_aluno) REFERENCES ALUNOS(aluno_id)

);

-- Quais são os livros disponíveis na biblioteca (ou seja, que ainda não
foram emprestados)? --

SELECT L.*

FROM LIVROS L

LEFT JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro

WHERE E.id_livro IS NULL;

-- Qual é a nacionalidade dos autores que têm livros emprestados


atualmente?

SELECT DISTINCT [Link]

FROM AUTORES A

JOIN LIVROS L ON A.autor_id = L.autor_id

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro;

-- Quais livros foram emprestados pelo aluno de ID 101?

SELECT L.*

FROM LIVROS L

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro


WHERE E.id_aluno = 101;

-- Qual é o preço médio dos livros emprestados?

SELECT AVG([Link]) AS preco_medio

FROM LIVROS L

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro;

-- Quais são os livros que foram emprestados entre 2024-09-01 e 2024-


09-10?

SELECT L.*

FROM LIVROS L

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro

WHERE E.data_do_emprestimo BETWEEN '2024-09-01' AND '2024-09-10';

-- Qual autor tem o livro mais caro emprestado atualmente?

SELECT A.nome_autor

FROM AUTORES A

JOIN LIVROS L ON A.autor_id = L.autor_id

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro

WHERE [Link] = (SELECT MAX(valor) FROM LIVROS L2 JOIN EMPRESTIMOS


E2 ON L2.livro_id = E2.id_livro);

-- Quantos livros foram emprestados no total?

SELECT COUNT(*) AS total_emprestimos


FROM EMPRESTIMOS;

-- Qual é o número de livros emprestados por cada aluno?

SELECT E.id_aluno, COUNT(*) AS num_livros_emprestados

FROM EMPRESTIMOS E

GROUP BY E.id_aluno;

-- Quais livros foram devolvidos e em qual data?

SELECT L.*, E.data_de_devolucao

FROM LIVROS L

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro

WHERE E.data_de_devolucao IS NOT NULL;

-- Qual é a média de tempo (em dias) que os livros ficam emprestados?

SELECT AVG(DATEDIFF(E.data_de_devolucao, E.data_do_emprestimo)) AS


media_tempo_emprestimo

FROM EMPRESTIMOS E

WHERE E.data_de_devolucao IS NOT NULL;

-- Quais autores têm mais de um livro emprestado atualmente?

SELECT A.nome_autor

FROM AUTORES A

JOIN LIVROS L ON A.autor_id = L.autor_id

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro

GROUP BY A.nome_autor
HAVING COUNT(L.livro_id) > 1;

-- Qual é o total arrecadado com o empréstimo de livros (considerando o


preço dos livros emprestados)?

SELECT SUM([Link]) AS total_arrecadado

FROM LIVROS L

JOIN EMPRESTIMOS E ON L.livro_id = E.id_livro;

-- inserções

INSERT INTO AUTORES (nome_autor, nacionalidade) VALUES

('Gabriel García Márquez', 'Colombiano'),

('J.K. Rowling', 'Britânica'),

('George Orwell', 'Britânico'),

('Haruki Murakami', 'Japonês');

INSERT INTO ALUNOS (nome_do_aluno, matricula, curso) VALUES

('João Silva', '123456', 'Literatura'),

('Maria Oliveira', '789012', 'Filosofia'),

('Pedro Santos', '345678', 'História'),

('Ana Souza', '901234', 'Ciência da Computação'),

('Carlos Lima', '101112', 'Matemática');

INSERT INTO LIVROS (nome_do_livro, genero, nacionalidade, autor_id,


editora, valor) VALUES

('Cem Anos de Solidão', 'Romance', 'Colombiana', 1, 'Editora XYZ', 45.00),


('Harry Potter e a Pedra Filosofal', 'Fantasia', 'Britânica', 2, 'Editora ABC',
60.00),

('1984', 'Distopia', 'Britânica', 3, 'Editora DEF', 50.00),

('Kafka à Beira-Mar', 'Ficção', 'Japonês', 4, 'Editora GHI', 55.00);

INSERT INTO ALUNOS (aluno_id, nome_do_aluno, matricula, curso) VALUES

(101, 'Lucas Pereira', '112233', 'Engenharia');

INSERT INTO EMPRESTIMOS (id_livro, id_aluno, data_do_emprestimo,


data_de_devolucao) VALUES

(1, 101, '2024-09-05', NULL),

(2, 101, '2024-09-07', '2024-09-14');

-- imprimir tabelas --

SELECT * FROM AUTORES;

SELECT * FROM ALUNOS;

SELECT * FROM EMPRESTIMOS;

SELECT * FROM LIVROS;

Você também pode gostar