Você está na página 1de 6

UNIVERSIDADE ESTÁCIO AMAZONAS

SILVAN PINTO BEZERRA – 202302246923

BANCO DE DADOS

MANAUS – AM

2023
1. Crie um diagrama MER – Modelo Entidade Relacionamento das tabelas acima.

2. Com base nas tabelas acima, quais os comandos SQL necessário para criar as tabelas em um
banco de dados chamado escola. Lembrando que precisa definir as características dos campos
das tabelas.

ALTER SCHEMA escola DEFAULT CHARACTER CREATE TABLE IF NOT EXISTS escola.professor (
SET utf8 DEFAULT COLLATE utf8_general_ci ;
id_professor INT(11) NOT NULL,

nome_professor VARCHAR(45) NOT NULL,


CREATE TABLE IF NOT EXISTS escola.curso (
PRIMARY KEY (id_professor))
id_curso INT(11) NOT NULL,
ENGINE = InnoDB
nome_curso VARCHAR(45) NOT NULL,
DEFAULT CHARACTER SET = utf8;
PRIMARY KEY (id_curso))

ENGINE = InnoDB
CREATE TABLE IF NOT EXISTS escola.disciplina (
DEFAULT CHARACTER SET = utf8;
id_disciplina INT(11) NOT NULL,

id_curso INT(11) NOT NULL,


CREATE TABLE IF NOT EXISTS escola.aluno (
Disciplina VARCHAR(45) NOT NULL,
id_aluno INT(11) NOT NULL,
id_professor INT(11) NOT NULL,
nome VARCHAR(45) NOT NULL,
PRIMARY KEY (id_disciplina),
idade VARCHAR(45) NULL DEFAULT NULL,
INDEX fk_curso_idx (id_curso ASC) VISIBLE,
PRIMARY KEY (id_aluno))
INDEX fk_professor_idx (id_professor ASC)
ENGINE = InnoDB VISIBLE,

DEFAULT CHARACTER SET = utf8; CONSTRAINT fk_curso

FOREIGN KEY (id_curso)


REFERENCES escola.curso (id_curso) PRIMARY KEY (id_nota),

ON DELETE NO ACTION INDEX fk_aluno_idx (id_aluno ASC) VISIBLE,

ON UPDATE NO ACTION, INDEX fk_disciplina_idx (id_disciplina ASC)


VISIBLE,
CONSTRAINT fk_professor
CONSTRAINT fk_aluno
FOREIGN KEY (id_professor)
FOREIGN KEY (id_aluno)
REFERENCES escola.professor (id_professor)
REFERENCES escola.aluno (id_aluno)
ON DELETE NO ACTION
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ON UPDATE NO ACTION,
ENGINE = InnoDB
CONSTRAINT fk_disciplina
DEFAULT CHARACTER SET = utf8;
FOREIGN KEY (id_disciplina)

REFERENCES escola.disciplina (id_disciplina)


CREATE TABLE IF NOT EXISTS escola.notas (
ON DELETE NO ACTION
id_nota INT(11) NOT NULL,
ON UPDATE NO ACTION)
id_aluno INT(11) NOT NULL,
ENGINE = InnoDB
id_disciplina INT(11) NOT NULL,
DEFAULT CHARACTER SET = utf8;
Nota FLOAT(11) NOT NULL,

3. Crie as seguintes consultas SQL:

A. Selecione todos os alunos.


select *
from alunos
B. Selecione o nome e a idade dos alunos com idades acima de 20 anos.

Select nome, idade


From alunos
Where idade>20
C. Liste todos os cursos disponíveis.

Select nome, nota


From notas
D. Selecione o nome e a nota dos alunos na disciplina "Matemática".

Select id_nota, id_aluno


From notas
Inner Join notas ON alunos.id_alunos=notas.alunos_id
Where notas.disciplina=‘matemática’
E. Encontre o curso com mais alunos matriculados.

Select MAX(id_curso)
From alunos
F. Liste todas as disciplinas únicas em que os alunos estão matriculados.

Select distinct disciplina


From notas
G. Encontre a média de notas dos alunos na disciplina "História".

Select AVG(historia) AS
Media_historia
From notas
H. Selecione o nome dos alunos e seus cursos.

Select nome, id_curso


From alunos
I. Encontre o aluno com a nota mais alta.

Select aluno.nome, nota


From alunos
Inner join notas
On alunos.id = notas.id_aluno
Order by física , historia, matemática, química desc
Limit 1;
J. Selecione o nome do professor que leciona a disciplina "Química".

SELECT professores.nome_professor
FROM professores
JOIN cursos ON professores.id_professor = cursos.id_curso
WHERE cursos.nome_curso = 'Química';
K. Encontre o curso com a média de notas mais alta.

Select avg(nota) as media_nota


From notas
Order by desc
Limit 1
L. Liste os alunos por ordem alfabética de seus nomes.

Select *
From alunos
ORDER BY nome asc;
M. Selecione o nome do curso e a contagem de alunos em cada curso.
SELECT curso.nome, COUNT(*) AS qtd_alunos
FROM cursos
JOIN alunos
ON cursos.curso_id = alunos.curso_id
GROUP BY curso.nome;
N. Encontre o aluno mais novo.

select nome, idade


from alunos
order by idade asc
limit 1
O. Selecione o nome do aluno que obteve a nota mais baixa na disciplina "Física".

select alunos.nome, fisica


from alunos, notas
join notas
on alunos.nome =notas. id_aluno
order by física ASC
limit 1
P. Liste todas as disciplinas e a média de notas em cada disciplina.

SELECT d.nome, AVG(m.nota) AS media


FROM disciplinas d
INNER JOIN matriculas m ON d.sigla = m.disciplina
GROUP BY d.nome;
Q. Encontre o curso com a menor média de notas.
Select avg(nota) as media_nota
From notas
Order by asc
Limit 1
R. Selecione o nome do professor que leciona o curso com mais alunos matriculados.
SELECT professor, COUNT(*) AS alunos
FROM cursos
GROUP BY professor
ORDER BY alunos DESC
LIMIT 1
S. Encontre a idade média dos alunos.

Select avg(idade) as media_idade


From aluno.idade
T. Selecione o nome do curso e o nome do professor que o leciona, em ordem alfabetica pelo
nome do curso

SELECT nome, professor


FROM cursos
ORDER BY nome;

Você também pode gostar