Você está na página 1de 2

-- create do database

--create database escola;

-- create das tabelas


--drop table aluno;
create table aluno (
codaluno serial not null,
nomaluno varchar(40) not null,
medaluno decimal(4,2),
primary key (codaluno)
);

create table nota(


codaluno integer not null,
nravaliacao integer not null,
vlrnota decimal(4,2) not null,
primary key(codaluno, nravaliacao)
);

-- adicionando chave estrangeira


alter table nota add constraint fk_nota_aluno foreign key (codaluno) references
aluno (codaluno);

-- inserindo registros na tabela ALUNO


INSERT INTO aluno (nomealuno, medaluno) VALUES('CESAR JOAO DA SILVA', null);
INSERT INTO aluno (nomealuno, medaluno) VALUES('MARIA DO NASCIMENTO', null);
INSERT INTO aluno (nomealuno, medaluno) VALUES('JOSE APARECIDO DE SOUZA', null);

-- selecionando todos os registros inclu�dos (sem qualquer ordena��o)


SELECT codaluno, nomealuno, medaluno FROM aluno;

-- selecionando todos os registros inclu�dos ordenados por c�digo em ordem


ascendente (padr�o) usando ORDER BY
SELECT codaluno, nomealuno, medaluno
FROM aluno
order by 1;

-- selecionando todos os registros inclu�dos ordenados por nome em ordem


ascendente (padr�o) usando ORDER BY
SELECT codaluno, nomealuno, medaluno
FROM aluno
order by 2;

-- selecionando todos os registros inclu�dos ordenados por c�digo em ordem


desscendente usando ORDER BY
SELECT codaluno, nomealuno, medaluno
FROM aluno
order by 1 desc;

-- selecionando todos os registros inclu�dos ordenados por nome em ordem


desscendente usando ORDER BY
SELECT codaluno, nomealuno, medaluno
FROM aluno
order by 2 desc;

-- alterando nome do aluno sem mexer na m�dia


UPDATE aluno
SET nomealuno ='CESAR JOAO DA SILVA',
medaluno = NULL
WHERE codaluno = 1;

-- removendo aluno
delete from aluno
WHERE codaluno = 1;

-- reinserindo o aluno;
INSERT INTO aluno (nomealuno, medaluno) VALUES('CESAR JOAO DA SILVA', null);

-- inserindo as notas de um aluno


insert into NOTA values (4, 1, 8.5);
insert into NOTA values (4, 2, 8.0);
insert into NOTA values (4, 3, 9.0);

select * from NOTA;

-- removendo aluno com notas vinculadas (banco vai reclamar)


delete from aluno
WHERE codaluno = 4;

insert into NOTA values (4, 1, 8.5);


insert into NOTA values (4, 2, 8.0);
insert into NOTA values (4, 3, 9.0);
select avg(vlrnota) from nota where codaluno = 4;

update aluno a1
set medaluno = (select avg(n.vlrnota)
from nota n
where n.codaluno = a1.codaluno)
where a1.codaluno = 4;

select * from aluno;

select
a1.codaluno "C�digo",
a1.nomealuno "Nome",
n1.nravaliacao "Prova",
n1.vlrnota "Nota",
a1.medaluno "M�dia"
from aluno a1,
nota n1
where a1.codaluno = n1.codaluno
and a1.codaluno = 4
order by n1.nravaliacao ;

Você também pode gostar