Last active
August 23, 2017 13:56
-
-
Save andrelramos/5a06d10374079ad04cda0d797a6e7655 to your computer and use it in GitHub Desktop.
banco-universidade.sql
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
CREATE TABLE Professores ( | |
matricula int unique, | |
nome varchar(300) unique not null, | |
rg int unique not null, | |
sexo char not null check (sexo in ('m', 'f')), | |
idade int check (idade >= 21 and idade <= 80), | |
titulacao varchar(11) check (titulacao in ('graducado', 'especialista', 'mestre', 'doutor')), | |
categoria varchar(11) check (categoria in ('auxiliar', 'assistente', 'adjunto', 'titular')), | |
nroTurmas int check (nroTurmas >= 0), | |
constraint pk_matricula_professor primary key (matricula) | |
); | |
create table Cursos ( | |
codigo int unique, | |
nome varchar(300) not null unique, | |
duracao int check(duracao >=4 and duracao <=12), | |
coordenador int not null, | |
constraint pk_curso primary key (codigo), | |
constraint fk_coordenador foreign key (coordenador) references Professores(matricula) on delete cascade on update cascade | |
); | |
create table Alunos ( | |
matricula int, | |
nome varchar(300) not null, | |
rg int not null unique, | |
sexo char not null check (sexo in ('m', 'f')), | |
idade int check (idade >= 17 and idade <= 90), | |
curso int not null, | |
constraint pk_matricula_aluno primary key (matricula), | |
constraint fk_curso foreign key (curso) references Cursos(codigo) | |
); | |
create table Disciplinas ( | |
codigo int, | |
nome varchar(65) not null, | |
creditos int check (creditos >= 2 and creditos <= 8), | |
constraint pk_disciplina primary key (codigo) | |
); | |
create table Curriculos( | |
curso int, | |
disciplina int, | |
fase int check(fase >= 1 and fase <= 12), | |
constraint pk_curriculo primary key (curso, disciplina), | |
constraint fk_curso foreign key (curso) references Cursos(codigo), | |
constraint fk_disciplina foreign key (disciplina) references Disciplinas(codigo) | |
); | |
create table Turmas ( | |
codigo int, | |
disciplina int, | |
professor int not null, | |
vagas int check(vagas > 0), | |
constraint pk_turma primary key (codigo, disciplina), | |
constraint fk_disciplina_turma foreign key (disciplina) references Disciplinas(codigo), | |
constraint fk_professor_turma foreign key (professor) references Professores(matricula) | |
); | |
create table Matriculas ( | |
aluno int, | |
disciplina int, | |
turma int, | |
constraint pk_matricula primary key (turma, aluno, disciplina), | |
constraint fk_aluno_matricula foreign key (aluno) references Alunos(matricula) on update cascade on delete cascade | |
); | |
CREATE SEQUENCE cod_prof; | |
INSERT INTO Professores VALUES (nextval('cod_prof'), 'Erika', 1111111, 'f', 22, 'mestre', 'titular', 5); | |
INSERT INTO Professores VALUES (nextval('cod_prof'), 'Godinho', 1111112, 'm', 32, 'mestre', 'titular', 1); | |
INSERT INTO Professores VALUES (nextval('cod_prof'), 'Andrea', 1111113, 'f', 52, 'mestre', 'titular', 2); | |
INSERT INTO Professores VALUES (nextval('cod_prof'), 'Wolley', 1111114, 'm', 25, 'mestre', 'titular', 3); | |
INSERT INTO Professores VALUES (nextval('cod_prof'), 'Patricia', 1111115, 'f', 36, 'mestre', 'titular', 4); | |
CREATE SEQUENCE cod_curso; | |
INSERT INTO Cursos VALUES (nextval('cod_curso'), 'SI', 8, (SELECT matricula FROM Professores WHERE rg = 1111111)); | |
INSERT INTO Cursos VALUES (nextval('cod_curso'), 'Análise e Desenvolvimento de Sistemas', 4, (SELECT matricula FROM Professores WHERE rg = 1111112)); | |
INSERT INTO Cursos VALUES (nextval('cod_curso'), 'Redes de Computadores', 8, (SELECT matricula FROM Professores WHERE rg = 1111113)); | |
INSERT INTO Cursos VALUES (nextval('cod_curso'), 'Ciência da Computação', 8, (SELECT matricula FROM Professores WHERE rg = 1111114)); | |
INSERT INTO Cursos VALUES (nextval('cod_curso'), 'Gestão de TI', 8, (SELECT matricula FROM Professores WHERE rg = 1111115)); | |
CREATE SEQUENCE cod_aluno; | |
INSERT INTO Alunos VALUES (nextval('cod_aluno'), 'André', 111111, 'm', 19, (SELECT codigo FROM cursos WHERE nome = 'SI')); | |
INSERT INTO Alunos VALUES (nextval('cod_aluno'), 'João', 111112, 'm', 19, (SELECT codigo FROM cursos WHERE nome = 'SI')); | |
INSERT INTO Alunos VALUES (nextval('cod_aluno'), 'Tarcisio', 111113, 'm', 19, (SELECT codigo FROM cursos WHERE nome = 'SI')); | |
INSERT INTO Alunos VALUES (nextval('cod_aluno'), 'Allan', 111114, 'm', 19, (SELECT codigo FROM cursos WHERE nome = 'SI')); | |
INSERT INTO Alunos VALUES (nextval('cod_aluno'), 'Augusto', 111115, 'm', 19, (SELECT codigo FROM cursos WHERE nome = 'SI')); | |
CREATE SEQUENCE cod_disc; | |
INSERT INTO Disciplinas VALUES (nextval('cod_disc'), 'Banco de dados', 4); | |
INSERT INTO Disciplinas VALUES (nextval('cod_disc'), 'Complexidade', 4); | |
INSERT INTO Disciplinas VALUES (nextval('cod_disc'), 'Física', 4); | |
INSERT INTO Disciplinas VALUES (nextval('cod_disc'), 'Segurança', 4); | |
INSERT INTO Disciplinas VALUES (nextval('cod_disc'), 'Redes', 4); | |
INSERT INTO Curriculos VALUES ((SELECT codigo FROM Cursos WHERE nome = 'SI'), (SELECT codigo FROM Disciplinas WHERE nome = 'Banco de dados'), 1); | |
INSERT INTO Curriculos VALUES ((SELECT codigo FROM Cursos WHERE nome = 'Análise e Desenvolvimento de Sistemas'), (SELECT codigo FROM Disciplinas WHERE nome = 'Complexidade'), 1); | |
INSERT INTO Curriculos VALUES ((SELECT codigo FROM Cursos WHERE nome = 'SI'), (SELECT codigo FROM Disciplinas WHERE nome = 'Física'), 1); | |
INSERT INTO Curriculos VALUES ((SELECT codigo FROM Cursos WHERE nome = 'Análise e Desenvolvimento de Sistemas'), (SELECT codigo FROM Disciplinas WHERE nome = 'Segurança'), 1); | |
INSERT INTO Curriculos VALUES ((SELECT codigo FROM Cursos WHERE nome = 'SI'), (SELECT codigo FROM Disciplinas WHERE nome = 'Redes'), 1); | |
CREATE SEQUENCE cod_turma; | |
INSERT INTO Turmas VALUES (nextval('cod_turma'), (SELECT codigo FROM Disciplinas WHERE nome = 'Banco de dados'), (SELECT matricula FROM Professores WHERE rg = 1111111), 10); | |
INSERT INTO Turmas VALUES (nextval('cod_turma'), (SELECT codigo FROM Disciplinas WHERE nome = 'Física'), (SELECT matricula FROM Professores WHERE rg = 1111112), 1); | |
INSERT INTO Turmas VALUES (nextval('cod_turma'), (SELECT codigo FROM Disciplinas WHERE nome = 'Segurança'), (SELECT matricula FROM Professores WHERE rg = 1111113), 2); | |
INSERT INTO Turmas VALUES (nextval('cod_turma'), (SELECT codigo FROM Disciplinas WHERE nome = 'Redes'), (SELECT matricula FROM Professores WHERE rg = 1111114), 5); | |
INSERT INTO Turmas VALUES (nextval('cod_turma'), (SELECT codigo FROM Disciplinas WHERE nome = 'Complexidade'), (SELECT matricula FROM Professores WHERE rg = 1111115), 40); | |
INSERT INTO Matriculas VALUES ((SELECT matricula FROM Alunos WHERE rg = 111111), (SELECT codigo FROM Disciplinas WHERE nome = 'Banco de dados'), (SELECT codigo FROM Turmas WHERE disciplina = (SELECT codigo FROM Disciplinas WHERE nome = 'Banco de dados'))); | |
INSERT INTO Matriculas VALUES ((SELECT matricula FROM Alunos WHERE rg = 111111), (SELECT codigo FROM Disciplinas WHERE nome = 'Complexidade'), (SELECT codigo FROM Turmas WHERE disciplina = (SELECT codigo FROM Disciplinas WHERE nome = 'Complexidade'))); | |
INSERT INTO Matriculas VALUES ((SELECT matricula FROM Alunos WHERE rg = 111111), (SELECT codigo FROM Disciplinas WHERE nome = 'Física'), (SELECT codigo FROM Turmas WHERE disciplina = (SELECT codigo FROM Disciplinas WHERE nome = 'Física'))); | |
INSERT INTO Matriculas VALUES ((SELECT matricula FROM Alunos WHERE rg = 111111), (SELECT codigo FROM Disciplinas WHERE nome = 'Segurança'), (SELECT codigo FROM Turmas WHERE disciplina = (SELECT codigo FROM Disciplinas WHERE nome = 'Segurança'))); | |
INSERT INTO Matriculas VALUES ((SELECT matricula FROM Alunos WHERE rg = 111111), (SELECT codigo FROM Disciplinas WHERE nome = 'Redes'), (SELECT codigo FROM Turmas WHERE disciplina = (SELECT codigo FROM Disciplinas WHERE nome = 'Redes'))); | |
CREATE TABLE Fornecedor( | |
codigo int unique, | |
razao_social varchar(300), | |
telefone numeric(11) | |
); | |
CREATE TABLE Categoria( | |
codigo int unique, | |
nome varchar(300) | |
); | |
CREATE TABLE Produtos( | |
codigo int unique, | |
nome varchar(300), | |
descricao varchar(600), | |
cod_fornecedor int, | |
cod_categoria int, | |
constraint fk_fornecedor foreign key (cod_fornecedor) references Fornecedor(codigo), | |
constraint fk_categoria foreign key (cod_categoria) references Categoria(codigo) | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment