2
respostas

[Projeto] Desafio Concluído

Conclui esse super desafio e quero mostrar os códigos para vocês. Segue abaixo:

Criação de tabelas

CREATE TABLE alunos (
  ID INT PRIMARY KEY NOT NULL,
  Nome_Completo VARCHAR(100) NOT NULL,
  Data_Nascimento DATE NOT NULL,
  Gênero CHAR NOT NULL,
  Endereço VARCHAR(100) NOT NULL,
  Telefone VARCHAR(11) NOT NULL,
  Email VARCHAR(100) NOT NULL
);

CREATE TABLE professores (
  ID INT PRIMARY KEY NOT NULL,
  Nome_Completo VARCHAR(100) NOT NULL,
  Data_Nascimento DATE NOT NULL,
  Gênero CHAR NOT NULL,
  Telefone VARCHAR(11) NOT NULL,
  Email VARCHAR(100) NOT NULL
);

CREATE TABLE disciplinas (
  ID INT PRIMARY KEY NOT NULL,
  Nome VARCHAR(100) NOT NULL,
  Descrição TEXT NOT NULL,
  Carga_Horária INT NOT NULL,
  ID_Professor INT NOT NULL,
  FOREIGN KEY (ID_Professor) REFERENCES professores(ID)
);

CREATE TABLE turmas (
  ID INT PRIMARY KEY NOT NULL,
  Nome VARCHAR(100) NOT NULL,
  Ano_Letivo INT NOT NULL,
  ID_Professor INT NOT NULL,
  FOREIGN KEY (ID_Professor) REFERENCES professores(ID)
);

CREATE TABLE turmas_disciplinas (
  ID_Turma INT NOT NULL,
  ID_Disciplina INT NOT NULL,
  FOREIGN KEY (ID_Turma) REFERENCES turmas(ID),
  FOREIGN KEY (ID_Disciplina) REFERENCES disciplinas(ID)
);

CREATE TABLE turmas_alunos (
  ID_Turma INT NOT NULL,
  ID_Aluno INT NOT NULL,
  FOREIGN KEY (ID_Turma) REFERENCES turmas(ID),
  FOREIGN KEY (ID_Aluno) REFERENCES alunos(ID)
);

CREATE TABLE notas (
  ID INT PRIMARY KEY NOT NULL,
  ID_Aluno INT NOT NULL,
  ID_Disciplina INT NOT NULL,
  Valor DECIMAL(4, 2) NOT NULL,
  Data_Avaliação DATE NOT NULL,
  FOREIGN KEY (ID_Aluno) REFERENCES alunos(ID),
  FOREIGN KEY (ID_Disciplina) REFERENCES disciplinas(ID)
);

Inserção de dados

INSERT INTO alunos (id, nome_completo, data_nascimento, gênero, endereço, telefone, email)
VALUES
(1, 'João Silva', '2005-03-15', 'M', 'Rua das Flores, 123', '(11) 9876-5432', 'joao@email.com'),
(2, 'Maria Santos',	'2006-06-20', 'F', 'Avenida Principal, 456', '(11) 8765-4321', 'maria@email.com'),
(3,	'Pedro Soares', '2004-01-10', 'M', 'Rua Central, 789', '(11) 7654-3210', 'pedro@email.com'),
(4,	'Ana Lima',	'2005-04-02', 'F',	'Rua da Escola, 56', '(11) 8765-4321', 'ana@email.com'),
(5,	'Mariana Fernandes', '2005-08-12', 'F',	'Avenida da Paz, 789', '(11) 5678-1234', 'mariana@email.com'),
(6,	'Lucas Costa', '2003-11-25', 'M', 'Rua Principal, 456',	'(11) 1234-5678', 'lucas@email.com'),
(7,	'Isabela Santos', '2006-09-10', 'F', 'Rua da Amizade, 789', '(11) 9876-5432', 'isabela@email.com'),
(8,	'Gustavo Pereira', '2004-05-15', 'M', 'Avenida dos Sonhos, 123', '(11) 7654-3210', 'gustavo@email.com'),
(9,	'Carolina Oliveira', '2005-02-20', 'F', 'Rua da Alegria, 456', '(11) 8765-4321', 'carolina@email.com'),
(10, 'Daniel Silva', '2003-10-05', 'M', 'Avenida Central, 789', '(11) 1234-5678', 'daniel@email.com'),
(11, 'Larissa Souza', '2004-12-08', 'F', 'Rua da Felicidade, 123', '(11) 9876-5432', 'larissa@email.com'),
(12, 'Bruno Costa', '2005-07-30', 'M', 'Avenida Principal, 456', '(11) 7654-3210' ,'bruno@email.com'),
(13, 'Camila Rodrigues', '2006-03-22', 'F', 'Rua das Estrelas, 789', '(11) 8765-4321', 'camila@email.com'),
(14, 'Rafael Fernandes', '2004-11-18', 'M',	'Avenida dos Sonhos, 123', '(11) 1234-5678', 'rafael@email.com'),
(15, 'Letícia Oliveira', '2005-01-05', 'F',	'Rua da Alegria, 456', '(11) 9876-5432', 'leticia@email.com'),
(16, 'Fernanda Lima', '2004-02-12', 'F', 'Rua da Esperança, 789', '(11) 4567-8901', 'fernanda@email.com'),
(17, 'Vinícius Santos', '2003-07-28', 'M', 'Avenida da Amizade, 123', '(11) 8901-2345', 'vinicius@email.com'),
(18, 'Juliana Pereira', '2006-09-01', 'F', 'Rua das Rosas, 789', '(11) 3456-7890', 'juliana@email.com');

INSERT INTO disciplinas (id, nome, descrição, carga_horária, id_professor)
VALUES
(1, 'Matemática', 'Estudo de conceitos matemáticos avançados', 60, 1),
(2,	'História', 'História mundial e local', 45, 2),
(3, 'Física', 'Princípios fundamentais da física', 60, 1),
(4, 'Química', 'Estudo da química e suas aplicações', 45, 3),
(5, 'Inglês', 'Aulas de inglês para iniciantes', 45, 4),
(6, 'Artes', 'Exploração da criatividade artística', 30, 5);

Continuando nas respostas...

2 respostas
INSERT INTO notas (id, id_aluno, id_disciplina, valor, data_avaliação)
VALUES
(2,	1, 1, 6.19, '2023-07-07'),
(3,	1, 2, 7.18, '2023-07-07'),
(4,	1, 3, 7.47, '2023-07-07'),
(5,	1, 4, 7.46, '2023-07-07'),
(6,	1, 5, 4.35, '2023-07-07'),
(7,	1, 6, 4.43, '2023-07-07'),
(8,	1, 7, 0.76, '2023-07-07'),
(9,	1, 8, 9.22, '2023-07-07'),
(10, 1,	9, 9.4,	'2023-07-07'),
(11, 1, 10, 3.28, '2023-07-07'),
(12, 2, 1, 1.34, '2023-07-09'),
(13, 2, 2, 03.01, '2023-07-09'),
(14, 2, 3, 1.66, '2023-07-09'),
(15, 2, 4, 0.03, '2023-07-09'),
(16, 2,	5, 4.34	, '2023-07-09'),
(17, 2,	6, 4.02, '2023-07-09'),
(18, 2,	7, 8.79	, '2023-07-09'),
(19, 2,	8, 1.17	, '2023-07-09'),
(20, 2,	9, 8.26	, '2023-07-09'),
(21, 2,	1, 3.41, '2023-07-09'),
(22, 3,	1, 6.82	, '2023-07-27'),
(23, 3,	2, 8.21	, '2023-07-27'),
(24, 3,	3, 01.03, '2023-07-27'),
(25, 3,	4, 4.1, '2023-07-07'),
(26, 3,	5, 0.25	, '2023-07-27'),
(27, 3,	6, 6.63	, '2023-07-27'),
(28, 3,	7, 9.74	, '2023-07-27'),
(29, 3,	8, 3.77	, '2023-07-27'),
(30, 3,	9, 0.58	, '2023-07-27'),
(31, 3, 10,	8.52, '2023-07-27'),
(32, 4, 1,	8.37, '2023-08-08'),
(33, 4, 2,	0.26, '2023-08-08'),
(34, 4, 3,	5.95, '2023-08-08'),
(35, 4, 4,	6.98, '2023-08-08'),
(36, 4, 5,	6.18, '2023-08-08'),
(37, 4, 6,	4.79, '2023-08-08'),
(38, 4, 7,	7.96, '2023-08-08'),
(39, 4, 8,	0.62, '2023-08-08'),
(40, 4, 9,	7.77, '2023-08-08'),
(41, 4, 10,	5.81, '2023-08-08'),
(42, 5, 1,	2.25, '2023-08-15'),
(43, 5, 2,	5.82, '2023-08-15'),
(44, 5, 3, 4.11, '2023-08-15'),
(45, 5, 4,	7.99, '2023-08-15'),
(46, 5, 5,	3.23, '2023-08-15'),
(47, 5,	6,	08.09, '2023-08-15'),
(48, 5,	7,	8.24, '2023-08-15'),
(49, 5,	8,	3.33, '2023-08-15'),
(50, 5,	9,	4.24, '2023-08-15'),
(51, 5,	10,	0.11, '2023-08-15');

INSERT INTO professores (id, nome_completo, data_nascimento, gênero, telefone, email)
VALUES 
(1,	'Ana Oliveira', '1980-05-25', 'F', '(11) 1234-5678', 'ana@email.com'),
(2,	'Carlos Ferreira', '1975-09-12', 'M', '(11) 2345-6789', 'carlos@email.com'),
(3,	'Mariana Santos', '1982-03-15', 'F', '(11) 3456-7890', 'mariana@email.com'),
(4,	'Ricardo Silva', '1978-08-20', 	'M', '(11) 7890-1234', 'ricardo@email.com'),
(5,	'Fernanda Lima', '1985-01-30', 'F',	'(11) 4567-8901', 'fernanda@email.com');

INSERT INTO turmas_alunos (id_turma, id_aluno)
VALUES 
(1,	1),
(2,	2),
(3,	3),
(4,	4),
(5,	5),
(1,	6),
(2,	7),
(3,	8),
(4,	9),
(5,	10);

INSERT INTO turmas_disciplinas (id_turma, id_disciplina)
VALUES 
(1,	1),
(2,	2),
(3,	3),
(4,	4),
(5,	5),
(1,	3),
(2,	1),
(3,	2);

INSERT INTO turmas (id, nome, ano_letivo, id_professor)
VALUES
(1,	'Turma A', 2023, 1),
(2,	'Turma B', 2023, 2),
(3,	'Turma C', 2023, 3),
(4,	'Turma D', 2023, 4),
(5,	'Turma E', 2023, 5);

Realização de consultas

SELECT * FROM alunos;
SELECT * FROM disciplinas;
SELECT * FROM notas;
SELECT * FROM professores;
SELECT * FROM turmas_alunos;
SELECT * FROM turmas_disciplinas;
SELECT * FROM turmas;

SELECT * FROM alunos ORDER BY nome_completo;

SELECT * FROM disciplinas WHERE carga_horária > 40;

SELECT * FROM notas WHERE valor BETWEEN 6 AND 8;

SELECT * FROM alunos WHERE gênero = 'F';

SELECT * FROM alunos WHERE data_nascimento BETWEEN '2004-12-31' AND '2006-12-31' ORDER BY data_nascimento;

O que acharam?

Olá Lucas, tudo bem com você?

Obrigado por compartilhar com a comunidade Alura. Seu super desafio está correto.

Abraços e bons estudos!