Script repàs bàsic SQL
Salta a la navegació
Salta a la cerca
Aquest és un script bàsic per repassar allò que es demana als alumnes. És un script de mínims. Per aprovar l'assignatura, s'ha de saber:
- crear les taules sense errors de sintaxi, utilitzant els tipus de dades adequats
- relacionar les taules entre sí
- inserir dades representatives a cada taula
- poder fer consultes que mostrin la riquesa de les relacions
- poder obtenir un fitxer de log per al seu anàlisi posterior.
- un joc de proves significatiu.
rem Nom de l'alumne - asi2aXX
spool c:/resultats.log
rem eliminació de les taules ****************************
echo "eliminació de les taules"
drop table prestec;
drop table alumne;
drop table llibre;
pause
rem esborro la seqüència
echo "esborro la seqüència"
DROP SEQUENCE seq_prestec;
rem creació de les taules *******************************
echo "creació de les taules"
pause
create table alumne(
id_alumne number(2) primary key,
nom varchar2(20) not null,
cognom varchar2(20) not null,
guixeta char(2) unique,
data_naix date
);
create table llibre(
id_llibre number(3) primary key,
titol varchar2(20),
en_prestec char(1) check(en_prestec in('S','N')),
tema varchar2(50) check(tema in('literatura','ciència','arts'))
);
create table prestec(
id_prestec number(3) primary key,
id_llibre number(3) references llibre,
id_alumne number(2) references alumne,
dia_prestec date,
dia_retorn date
);
rem creo la seqüència
echo "creo la seqüència"
pause
CREATE SEQUENCE seq_prestec INCREMENT BY 1 START WITH 1 MINVALUE 1;
rem inserció dades ******************************************
echo "inserció dades"
pause
insert into alumne values(1,'Pere','Gelabert','A3','12/12/1980');
rem provoca error perquè la guixeta ha de ser única
insert into alumne values(2,'Maria','Batlló','A3','12/12/1980');
insert into alumne values(3,'Rita','Ribera','A2','12/09/1980');
insert into alumne values(4,'Josep','Claror','B2',NULL);
insert into llibre values(1,'Mates III','N','ciència');
rem provoca error DE CLAU PRIMÀRIA
insert into llibre values(1,'Món Romà','A','arts');
insert into llibre values(2,'Món Grec','N','arts');
insert into llibre values(3,'El Quixot','N','literatura');
insert into llibre values(4,'Novela','N','literatura');
rem anem a fer un préstec
echo "simulem un prestec"
pause
rem simulo un prestec
insert into prestec values(seq_prestec.NEXTVAL,4,3,'12/11/2007',NULL);
update llibre set en_prestec='S' where id_llibre=4;
rem simulo un retorn
echo "simulem un retorn"
pause
update prestec set dia_retorn='08/12/2007' where id_llibre=4;
update llibre set en_prestec='N' where id_llibre=4;
rem faig un altre prestec
insert into prestec values(seq_prestec.NEXTVAL,1,3,'12/11/2007',NULL);
update llibre set en_prestec='S' where id_llibre=1;
rem quins alumnes tenen llibres en préstec? i el dia teòric de retorn?
echo "quins alumnes tenen llibres en préstec? i el dia teòric de retorn?"
pause
select llibre.id_llibre,titol,dia_prestec, dia_prestec+20 "dia teor retorn",nom,cognom from llibre, prestec, alumne
where
llibre.id_llibre=prestec.id_llibre and prestec.id_alumne=alumne.id_alumne and en_prestec='S';
spool off