Professional Documents
Culture Documents
2davi Bomfim - BD3
2davi Bomfim - BD3
BANCO DE DADOS 3
CARLOS AUGUSTO SICSÚ
INTRODUÇÃO
Este trabalho tem como intuito principal, a fixação do conteúdo de criação de funções em
SQL, com a criação de tabelas para reforçar o conhecimento já adquiridos em matérias
anteriores e praticar com dinâmica os tópicos abordados em aula.
Trabalho valendo 2.0 pontos para AV1
Criando as tabelas
Create table curso (
idCurso numeric(3) not null,
nomeCurso varchar(15),
primary key(idCurso)
);
insert into disciplina values (1,'Colonização', ' A Colonização foi o período em que o governo
português instalou parte do seu reino no Brasil. ', 10);
insert into disciplina values (2,'Climas do Brasil', ' Identifica-se seis tipos de climas no Brasil,
sob a influência de diversos fatores climáticos, dentre os quais se destacam latitude, massas
de ar e maritimidade. ', 20);
insert into disciplina values (3,'Filosofia política', ' Filosofia política é uma vertente da
filosofia cujo objetivo é estudar as questões a respeito da convivência entre o ser humano e as
relações de poder. ', 30);
insert into disciplina values (4,'Pensamentos modernos', ' pensamento moderno põe o homem
numa situação cujo limite é marcado pela relação bipolar entre uma coisa que pensa e uma
coisa palpável, que se mensura, que se observa e que possui extensão. ', 40);
insert into disciplina values (5,'Cálculo', ' analisar, qualitativamente ou quantitavamente,
variações que ocorrem em fenômenos que abrigam uma ou mais componentes de natureza
essencialmente física. ', 50);
01)
create or replace function TamanhoString(f_texto in varchar) -- Criando a função
return numeric
is
v_tamanho numeric; -- criando a variável que vai retornar o tamanho.
Begin
v_tamanho := length(f_texto); -- colocando o tamanho do texto na variável
return v_tamanho; -- pedindo pra retornar
End;
Begin
dbms_output.put_line(TamanhoString('O cachorro comeu o chinelo'));
End;
Resultado:
Statement processed.
26
02)
Create or replace function ConverteParaMaiusculo(f_texto in varchar) -- Criando a função
return varchar
is
v_maiusculo varchar(3000); -- Criando a variável que retorna
Begin
v_maiusculo := upper(f_texto); -- Colocando na variável
return v_maiusculo; -- Retornando a variável com as infos que pedem
End;
Begin
dbms_output.put_line(ConverteParaMaiusculo('O cachorro comeu o chinelo'));
End;
RESULTADO:
Statement processed.
O CACHORRO COMEU O CHINELO
03)
create or replace function data_form(f_dia in numeric, f_mes in numeric, f_ano in numeric)
return varchar
is
v_data_char varchar (50);
v_mes_extenso varchar (200);
Begin
Select to_char(to_date(f_mes,'MM'),'Mounth')
into v_mes_extenso
from dual;
v_data_char :='dia' || to_char (f_dia) || 'de' || v_mes_extenso || 'de' || to_char (f_ano);
return v_data_char;
End;
BEGIN
DBMS_OUTPUT.PUT_LINE(data_form(12,03,2008));
END;
Resultado:
Statement processed.
dia 12 de March de 2008
04)
Begin
dbms_output.put_line(vel_rede(2000));
End;
Resultado:
Statement processed.
Padrão Inexistente
05)
create or replace function conversor(f_minutos in numeric)
return numeric
is
v_hora numeric;
Begin
v_hora := trunc (f_minutos / 60);
return v_hora;
End;
Begin
dbms_output.put_line(conversor(150) || ' hora(s)');
End;
Resultado:
Statement processed.
2 hora(s)
06)
Create or replace function numero_salario(f_salario in numeric)
return numeric
is
v_qtd_salario numeric;
v_salario_minimo numeric := 1320;
Begin
v_qtd_salario := trunc(f_salario / v_salario_minimo);
return v_qtd_salario;
End;
Begin
dbms_output.put_line(numero_salario(10000)||' salários');
End;
Resultado:
Statement processed.
7 salários
07)
create or replace function num_disciplinas(f_idCurso in numeric)
return numeric
is
v_numero_disciplinas numeric;
Begin
from disciplina
End;
Begin
dbms_output.put_line (num_disciplinas(50));
End;
Resultado:
Statement processed.
1
08)
create or replace function num_alunos(f_nomeCurso in numeric)
return numeric
is
v_numero_alunos numeric;
Begin
select count(matriculaAlunos) into v_numero_alunos
from alunos
where idCurso in (select idCurso from curso where nomeCurso = f_nomeCurso);
return v_numero_alunos;
End;
Begin
dbms_output.put_line (num_alunos('História'));
End;
Resultado:
Statement processed.
2
09)
create or replace function numeros_alunos(f_idCurso in numeric, f_idDisciplina in numeric)
return numeric
is
v_informacao numeric := 0;
Begin
select count(distinct matriculaAlunos) into v_informacao
from matriculado
where idCurso = f_idCurso and idDisciplina = f_idDisciplina;
return v_informacao;
END;
Begin
DBMS_OUTPUT.PUT_LINE(numeros_alunos(20,2));
End;
Resultado:
Statement processed.
2
10)
Create or replace function numeros_alunos(f_matriculaAluno in numeric, f_idCurso in
numeric, f_idDisciplina in numeric)
return numeric
is
v_informacao numeric := 0;
Begin
select count(distinct matriculaAlunos) into v_informacao
from matriculado
where matriculaAlunos = f_matriculaAluno and idCurso = f_idCurso and idDisciplina =
f_idDisciplina;
return v_informacao;
End;
Begin
DBMS_OUTPUT.PUT_LINE(numeros_alunos(123456,10,1));
End;
Resultado:
Statement processed.
1
11)
create or replace function nome_alunos(f_nomeDisciplina in varchar, f_nomeAluno in
varchar)
return varchar
is
v_nome varchar(20);
Begin
select nomeAlunos into v_nome
from alunos
where idCurso in (select idCurso from disciplina where nomeDisciplina =
f_nomeDisciplina and nomeAlunos <> f_nomeAluno);
return v_nome;
end;
Begin
DBMS_OUTPUT.PUT_LINE(nome_alunos('Climas do Brasil', 'Luisa'));
End;
Resultado:
Statement processed.
Marcos
CONCLUSÃO
Utilizei esse traabalho pra estudar pra prova e me deu muita noção de SQL,
tive bastante dificuldades na criação de funções mas com ajuda de alguns
colegas consegui desenvolver o trabalho.
BIBLIOGRAFIA
usei esse site para verificar as sintaxes e como escrever melhor o código ->
https://www.tutorialspoint.com/sql/sql-syntax.htm