Você está na página 1de 10

1 /* ************************************************************************* */ /* Universidade: Anhanguera - UniABC /* /* Projeto: Escola de Treinamento /* ************************************************************************* */

/* ---------------------------- Criao do Schema ---------------------------- */ CREATE SCHEMA TREINAMENTO;

/* ---------------------------- Criao das Tabelas -------------------------- */ CREATE TABLE TREINAMENTO.ALUNO( numero_matricula INT(05) nome_aluno NOT NULL,

VARCHAR(45) NOT NULL,

telefone_aluno CHAR(12) NOT NULL, PRIMARY KEY (numero_matricula) );

CREATE TABLE TREINAMENTO.CURSO( cod_curso nome_curso preco_curso duracao_curso INT(05) NOT NULL,

VARCHAR(45) NOT NULL, FLOAT(10,2) NOT NULL, CHAR(15) NOT NULL,

PRIMARY KEY (cod_curso) );

CREATE TABLE TREINAMENTO.INSTRUTOR( cod_instrutor nome_instrutor INT(05) NOT NULL,

VARCHAR(45) NOT NULL,

telefone_instrutor CHAR(12) NOT NULL, PRIMARY KEY (cod_instrutor));

2 CREATE TABLE TREINAMENTO.FREQUENTADO_POR( cod_frequentado_por INT(05) numero_matricula cod_curso INT(05) NOT NULL, NOT NULL,

INT(05)

NOT NULL,

PRIMARY KEY (cod_frequentado_por), FOREIGN KEY (numero_matricula) REFERENCES TREINAMENTO.ALUNO (numero_matricula), FOREIGN KEY (cod_curso) REFERENCES TREINAMENTO.CURSO (cod_curso));

CREATE TABLE TREINAMENTO.MINISTRA( cod_ministra cod_instrutor cod_curso INT(05) INT(05) INT(05) NOT NULL, NOT NULL, NOT NULL,

PRIMARY KEY (cod_ministra), FOREIGN KEY (cod_instrutor) REFERENCES TREINAMENTO.INSTRUTOR (cod_instrutor), FOREIGN KEY (cod_curso) REFERENCES TREINAMENTO.CURSO (cod_curso));

/* ---------------------------- Inserts ------------------------------------- */ /* Tabela: TREINAMENTO.ALUNO */ INSERT INTO TREINAMENTO.ALUNO (numero_matricula, nome_aluno, telefone_aluno) VALUES (001, 'Joo','11-9632-1221');

INSERT INTO TREINAMENTO.ALUNO (numero_matricula, nome_aluno, telefone_aluno) VALUES (002, 'Maria', '11-9362-1212');

INSERT INTO TREINAMENTO.ALUNO (numero_matricula, nome_aluno, telefone_aluno) VALUES (003, 'Manoel', '11-9236-2121');

INSERT INTO TREINAMENTO.ALUNO (numero_matricula, nome_aluno, telefone_aluno) VALUES (004, 'Manoela', '11-9131-1631');

3 /* Tabela: TREINAMENTO.CURSO */ INSERT INTO TREINAMENTO.CURSO (cod_curso, nome_curso, preco_curso, duracao_curso) VALUES (001, 'SQL Server', 100.60, '5 noites');

INSERT INTO TREINAMENTO.CURSO (cod_curso, nome_curso, preco_curso, duracao_curso) VALUES (002, 'Oracle', 150.45, '4 semanas');

/* Tabela: TREINAMENTO.INSTRUTOR */ INSERT INTO TREINAMENTO.INSTRUTOR (cod_instrutor, nome_instrutor, telefone_instrutor) VALUES (001, 'Ana', '11-5421-2101');

INSERT INTO TREINAMENTO.INSTRUTOR (cod_instrutor, nome_instrutor, telefone_instrutor) VALUES (002, 'Pedro', '11-5488-2561');

/* Tabela: TREINAMENTO.FREQUENTADO_POR */ INSERT INTO TREINAMENTO.FREQUENTADO_POR (cod_frequentado_por, numero_matricula, cod_curso) VALUES (001, 004, 001);

INSERT INTO TREINAMENTO.FREQUENTADO_POR (cod_frequentado_por, numero_matricula, cod_curso) VALUES (002, 003, 002);

INSERT INTO TREINAMENTO.FREQUENTADO_POR (cod_frequentado_por, numero_matricula, cod_curso) VALUES (003, 002, 001);

INSERT INTO TREINAMENTO.FREQUENTADO_POR (cod_frequentado_por, numero_matricula, cod_curso) VALUES (004, 001, 002);

/* Tabela: TREINAMENTO.MINISTRA */

4 INSERT INTO TREINAMENTO.MINISTRA (cod_ministra, cod_instrutor, cod_curso) VALUES (001, 002, 001);

INSERT INTO TREINAMENTO.MINISTRA (cod_ministra, cod_instrutor, cod_curso) VALUES (002, 001, 002);

/* ---------------------------- Selects -------------------------------------- */

/* 1 - Mostre o conteudo da tabela ALUNO */ SELECT * FROM TREINAMENTO.ALUNO;

/* 2 - Mostre o conteudo da tabela CURSO */ SELECT * FROM TREINAMENTO.CURSO;

/* 3 - Mostre o conteudo da tabela INSTRUTOR */ SELECT * FROM TREINAMENTO.INSTRUTOR;

/* 4 - Mostre o conteudo da tabela FREQUENTADO_POR */ SELECT * FROM TREINAMENTO.FREQUENTADO_POR;

/* 5 - Mostre o conteudo da tabela MINISTRA */ SELECT * FROM TREINAMENTO.MINISTRA;

/* 6 - Mostre os alunos matriculados no curso cujo cdigo 001 */ SELECT A.nome_aluno, F.cod_curso FROM TREINAMENTO.ALUNO AS A,

5 TREINAMENTO.FREQUENTADO_POR AS F WHERE A.numero_matricula = F.numero_matricula AND F.cod_curso = 001;

/* 7 - Mostre os alunos matriculados no curso cujo cdigo 002 */ SELECT A.nome_aluno, F.cod_curso FROM TREINAMENTO.ALUNO AS A, TREINAMENTO.FREQUENTADO_POR AS F WHERE A.numero_matricula = F.numero_matricula AND F.cod_curso = 002;

/* 8 - Mostre os instrutores que ministram o curso cujo cdigo 001 */ SELECT I.nome_instrutor, M.cod_curso FROM TREINAMENTO.INSTRUTOR AS I, TREINAMENTO.MINISTRA AS M WHERE I.cod_instrutor = M.cod_instrutor AND M.cod_curso = 001;

/* 9 - Mostre os instrutores que ministram o curso cujo cdigo 002 */ SELECT I.nome_instrutor, M.cod_curso FROM TREINAMENTO.INSTRUTOR AS I, TREINAMENTO.MINISTRA AS M WHERE I.cod_instrutor = M.cod_instrutor AND M.cod_curso = 002;

/* 10- Mostre os alunos matriculados no curso SQL Server */ SELECT A.*, C.nome_curso FROM TREINAMENTO.ALUNO AS A, TREINAMENTO.CURSO AS C, TREINAMENTO.FREQUENTADO_POR AS F WHERE A.numero_matricula = F.numero_matricula

6 AND C.cod_curso = F.cod_curso AND C.nome_curso = 'SQL Server';

/* 11- Mostre os alunos matriculados no curso Oracle */ SELECT A.*, C.nome_curso FROM TREINAMENTO.ALUNO AS A, TREINAMENTO.CURSO AS C, TREINAMENTO.FREQUENTADO_POR AS F WHERE A.numero_matricula = F.numero_matricula AND C.cod_curso = F.cod_curso AND C.nome_curso = 'Oracle';

/* 12- Qual o nome do instrutor que ministra o curso SQL Server? */ SELECT I.nome_instrutor, C.nome_curso FROM TREINAMENTO.INSTRUTOR AS I, TREINAMENTO.CURSO AS C, TREINAMENTO.MINISTRA AS M WHERE I.cod_instrutor = M.cod_instrutor AND C.cod_curso = M.cod_curso AND C.nome_curso = 'SQL Server';

/* 13- Qual o nome do instrutor que ministra o curso Oracle? */ SELECT I.nome_instrutor, C.nome_curso FROM TREINAMENTO.INSTRUTOR AS I, TREINAMENTO.CURSO AS C, TREINAMENTO.MINISTRA AS M WHERE I.cod_instrutor = M.cod_instrutor AND C.cod_curso = M.cod_curso AND C.nome_curso = 'Oracle';

7 /* 14- Mostre os nomes dos alunos em ordem alfabtica */ SELECT A.nome_aluno FROM TREINAMENTO.ALUNO AS A ORDER BY A.nome_aluno ASC;

/* 15- Mostre os nomes dos instrutores em ordem alfabtica */ SELECT I.nome_instrutor FROM TREINAMENTO.INSTRUTOR AS I ORDER BY I.nome_instrutor ASC;

/* 16- Mostre a quantidade de alunos na escola */ SELECT COUNT(*) AS Quantidade_de_alunos FROM TREINAMENTO.ALUNO;

/* 17- Mostre a quantidade de cursos na escola */ SELECT COUNT(*) AS Quantidade_de_cursos FROM TREINAMENTO.CURSO;

/* 18- Mostre a quantidade de instrutores na escola */ SELECT COUNT(*) AS Quantidade_de_instrutores FROM TREINAMENTO.INSTRUTOR;

/* 19- Mostre a quantidade de instrutores na escola que ministram o curso SQL Server */ SELECT COUNT(*) AS Quantidade_de_instrutores, C.nome_curso FROM TREINAMENTO.INSTRUTOR AS I, TREINAMENTO.MINISTRA AS M, TREINAMENTO.CURSO AS C WHERE I.cod_instrutor = M.cod_instrutor AND C.cod_curso = M.cod_curso AND C.nome_curso = 'SQL Server';

8 /* 20- Mostre a quantidade de instrutores na escola que ministram o curso Oracle */ SELECT COUNT(*) AS Quantidade_de_instrutores, C.nome_curso FROM TREINAMENTO.INSTRUTOR AS I, TREINAMENTO.MINISTRA AS M, TREINAMENTO.CURSO AS C WHERE I.cod_instrutor = M.cod_instrutor AND C.cod_curso = M.cod_curso AND C.nome_curso = 'Oracle';

/* 21- Mostre a quantidade de alunos na escola que frequentam o curso SQL Server */ SELECT COUNT(*) AS Quantidade_de_alunos, C.nome_curso FROM TREINAMENTO.ALUNO AS A, TREINAMENTO.FREQUENTADO_POR AS F, TREINAMENTO.CURSO AS C WHERE A.numero_matricula = F.numero_matricula AND C.cod_curso = F.cod_curso AND C.nome_curso = 'SQL Server';

/* 22- Mostre a quantidade de alunos na escola que frequentam o curso Oracle */ SELECT COUNT(*) AS Quantidade_de_alunos, C.nome_curso FROM TREINAMENTO.ALUNO AS A, TREINAMENTO.FREQUENTADO_POR AS P, TREINAMENTO.CURSO AS C WHERE A.numero_matricula = P.numero_matricula AND C.cod_curso = P.cod_curso AND C.nome_curso = 'Oracle';

/* ---------------------------- Criao das Views ---------------------------- */ CREATE VIEW VIEW_ALUNO AS SELECT * FROM TREINAMENTO.ALUNO;

/* Visualiza o contedo da view*/ SELECT * FROM VIEW_ALUNO;

CREATE VIEW VIEW_CURSO AS SELECT * FROM TREINAMENTO.CURSO;

/* Visualiza o contedo da view*/ SELECT * FROM VIEW_CURSO;

CREATE VIEW VIEW_INSTRUTOR AS SELECT * FROM TREINAMENTO.INSTRUTOR;

/* Visualiza o contedo da view*/ SELECT * FROM VIEW_INSTRUTOR;

CREATE VIEW VIEW_FREQUENTADO_POR AS SELECT * FROM TREINAMENTO.FREQUENTADO_POR;

/* Visualiza o contedo da view */ SELECT * FROM VIEW_FREQUENTADO_POR; CREATE VIEW VIEW_MINISTRA AS SELECT * FROM TREINAMENTO.MINISTRA;

10 /* Visualiza o contedo da view */ SELECT * FROM VIEW_MINISTRA;

/* ---------------------------- Criao das Store Procedures ----------------- */ call treinamento.contar_alunos(0); call treinamento.contar_cursos(0); call treinamento.contar_instrutores(0); call treinamento.mostrar_alunos_matriculados();

/* ---------------------------- Cdigo das Store Procedures ----------------- */ DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `contar_cursos`(IN cod_curso INT) BEGIN SELECT COUNT(*) FROM CURSO; END

CREATE DEFINER=`root`@`localhost` PROCEDURE `contar_instrutores`(IN cod_instrutor INT) BEGIN SELECT COUNT(*) FROM INSTRUTOR; END

CREATE DEFINER=`root`@`localhost` PROCEDURE `mostrar_alunos_matriculados`() BEGIN SELECT A.nome_aluno, F.cod_curso FROM TREINAMENTO.ALUNO AS A, TREINAMENTO.FREQUENTADO_POR AS F WHERE A.numero_matricula = F.numero_matricula; END

Você também pode gostar