Last active
May 31, 2019 19:42
-
-
Save nathan130200/d18a6ed23fd5b09d7bc77ade250ea5b5 to your computer and use it in GitHub Desktop.
Testando coisas de SQL e modelo relacional.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
------------------------- | |
---- Questão: 106432 ---- | |
------------------------- | |
-- ALUNO (matricula, nome, endereço, telefone) | |
-- CURSA (matricula, codigo) | |
-- matricula REFERENCIA matricula em ALUNO | |
-- codigo REFERENCIA codigo em DISCIPLINA | |
-- DISCIPLINA (codigo, nome, creditos) | |
use ead; | |
drop table if exists cursa; | |
drop table if exists disciplina; | |
drop table if exists aluno; | |
create table aluno ( | |
matricula int not null, | |
nome varchar(255) not null, | |
endereco varchar(255) not null, | |
telefone varchar(255) not null, | |
constraint pk_matricula primary key (matricula) | |
); | |
create table disciplina ( | |
codigo varchar(255) not null, | |
nome varchar(255) not null, | |
creditos int default 20, | |
constraint pk_codigo primary key(codigo) | |
); | |
create table cursa ( | |
matricula int not null, | |
codigo varchar(255) not null, | |
constraint fk_matricula_aluno foreign key(matricula) references aluno(matricula), | |
constraint fk_codigo_disciplina foreign key(codigo) references disciplina(codigo), | |
constraint pk_cursa primary key(matricula, codigo) | |
); | |
-- insere os registros dos alunos. | |
insert into aluno (matricula, nome, endereco, telefone) values (1122334455, 'Fulano', 'Rua Fulano', '12121212'); | |
insert into aluno (matricula, nome, endereco, telefone) values (1122664499, 'Ciclano', 'Rua Ciclano', '34343434'); | |
insert into aluno (matricula, nome, endereco, telefone) values (1233664477, 'Beltrano', 'Rua Beltrano', '56565656'); | |
-- insere os registros das disciplinas. | |
insert into disciplina (codigo, nome, creditos) values ('CCT0198', 'Estudo 0198', 20); | |
insert into disciplina (codigo, nome, creditos) values ('CCT0199 ', 'Estudo 0199', 20); | |
insert into disciplina (codigo, nome, creditos) values ('CCT0200', 'Estudo 0200', 25); | |
-- insere os registros de relacionamento de que alunos cursam em tal disciplina. | |
insert into cursa (matricula, codigo) values(1122334455, 'CCT0199'); | |
insert into cursa (matricula, codigo) values(1122334455, 'CCT0200'); | |
insert into cursa (matricula, codigo) values(1122664499, 'CCT0199'); | |
insert into cursa (matricula, codigo) values(1233664477, 'CCT0200'); | |
insert into cursa (matricula, codigo) values(1233664477, 'CCT0199'); | |
insert into cursa (matricula, codigo) values(1233664477, 'CCT0198'); | |
-- seleciona todos os alunos | |
select a.matricula, a.nome from aluno a; | |
-- seleciona todos os alunos que cursam a disciplina de código CCT0199. | |
select a.matricula, a.nome from aluno a | |
join cursa c on c.matricula = a.matricula and c.codigo = 'CCT0199'; | |
-- seleciona todos os alunos com o código de suas respectivas disciplinas. | |
select a.matricula, a.nome, c.codigo from aluno a | |
join cursa c on c.matricula = a.matricula; | |
/* | |
-- Informações do Teste -- | |
Descrição: seleciona todos os alunos que cursam a disciplina de código CCT0199. | |
SGBG: MySQL, MariaDB. | |
IDE: MySQL Workbench. | |
Servidor: Local | |
Resultado: | |
# matricula, nome | |
1122334455, Fulano | |
1122664499, Ciclano | |
1233664477, Beltrano | |
*/ | |
/* | |
-- Informações do Teste -- | |
Descrição: seleciona todos os alunos com o código de suas respectivas disciplinas. | |
SGBG: MySQL, MariaDB. | |
IDE: MySQL Workbench. | |
Servidor: Local | |
Resultado: | |
# matricula, nome, codigo | |
1122334455, Fulano, CCT0199 | |
1122334455, Fulano, CCT0200 | |
1122664499, Ciclano, CCT0199 | |
1233664477, Beltrano, CCT0198 | |
1233664477, Beltrano, CCT0199 | |
1233664477, Beltrano, CCT0200 | |
*/ | |
-- Fontes que e ajudaram a criar esse script | |
-- http://www.macoratti.net/13/06/sql_arcb.htm | |
-- https://www.w3schools.com/sql/sql_foreignkey.asp | |
-- https://www.devmedia.com.br/forum/chave-estrangeira-composta-tem-jeito/38138 | |
-- https://www.profissionaisti.com.br/2009/06/entendendo-outer-joins-sql-parte-2-conexoes-internas-inner-join/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment