LOGGING
CREATE TABLE "TEMPES04"."INGEGNERE" ("MEMBRO" NUMBER(2) NOT NULL, "SPECIALIZZ" VARCHAR2(20 byte) NOT NULL, CONSTRAINT "FK_INGEGNERE_MEMBRO_TEAM" FOREIGN KEY ("MEMBRO") REFERENCES "TEMPES04"."MEMBRO_TEAM" ("CODICE"), CONSTRAINT "PK_INGEGNERE" PRIMARY KEY ("MEMBRO") USING INDEX TABLESPACE "USERS" STORAGE (INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255) TABLESPACE "USERS" PCTFREE 20 PCTUSED 0 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) LOGGING
CREATE TABLE "TEMPES04"."MECCANICO" ("MEMBRO" NUMBER(2) NOT NULL, "SPECIALIZZ" VARCHAR2(20 byte) NOT NULL, CONSTRAINT "FK_MECCANICO_MEMBRO_TEAM"
FOREIGNKEY("MEMBRO")REFERENCES "TEMPES04"."MEMBRO_TEAM"("CODICE"),
CONSTRAINT "PK_MECCANICO" PRIMARY KEY("MEMBRO")USING INDEXTABLESPACE "USERS"STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)TABLESPACE "USERS" PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS255STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0)LOGGING
CREATE TABLE "TEMPES04"."COLLAUDATORE" ("MEMBRO" NUMBER(2)NOT NULL, "AUTOVETTURA" VARCHAR2(2 byte) NOT NULL,
CONSTRAINT "FK_COLLAUDATORE_MEMBRO_TEAM" FOREIGNKEY("MEMBRO"),
CONSTRAINT "FK_COLLAUDATORE_AUTOVETTURA" FOREIGNKEY("AUTOVETTURA")REFERENCES "TEMPES04"."AUTOVETTURA"("SIGLA"),
CONSTRAINT "PK_COLLAUDATORE" PRIMARY KEY("MEMBRO")USING
CREATE TABLE "TEMPES04"."PILOTA" (
"MEMBRO" NUMBER(2) NOT NULL,
"VITTORIE" NUMBER(3) NOT NULL,
"MONDIALI" NUMBER(2) NOT NULL,
"VITTPR" NUMBER(2),
CONSTRAINT "FK_PILOTA_MEMBRO_TEAM" FOREIGN KEY ("MEMBRO") REFERENCES "TEMPES04"."MEMBRO_TEAM" ("CODICE"),
CONSTRAINT "PK_PILOTA" PRIMARY KEY ("MEMBRO")
) USING INDEX TABLESPACE "USERS" STORAGE (
INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0
) PCTFREE 10 INITRANS 2 MAXTRANS 255) TABLESPACE "USERS" PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS 255 STORAGE (
INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0
) LOGGING
INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0)LOGGING**************************************************CREATE TABLE "TEMPES04"."AUTOVETTURA" ("NOME" VARCHAR2(10 byte)NOT NULL, "SIGLA" VARCHAR2(2 byte) NOT NULL, "POTENZA"VARCHAR2(20 byte) NOT NULL, "MOTORE" VARCHAR2(20 byte) NOTNULL, "DESCRIZIONE" VARCHAR2(50 byte) NOT NULL,CONSTRAINT "PK_AUTOVETTURA" PRIMARY KEY("SIGLA")USING INDEXTABLESPACE "USERS"STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255)TABLESPACE "USERS" PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS255STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS2147483645 PCTINCREASE 0)LOGGING************************************************CREATE TABLE "TEMPES04"."GARA" ("NOME" VARCHAR2(20 byte) NOTNULL,"DATA" DATE NOT NULL, "LUOGO" VARCHAR2(20
CREATE TABLE "GARA" (
"NOME" VARCHAR2(20 byte) NOT NULL,
"DATA" DATE NOT NULL,
"CIRCUITO" VARCHAR2(50 byte) NOT NULL,
"NUMERO_GIRI" NUMBER(3) NOT NULL,
"GIRO_VELOCE" VARCHAR2(10 byte) NOT NULL,
CONSTRAINT "PK_GARA" PRIMARY KEY("NOME") USING INDEX TABLESPACE "USERS" STORAGE (INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255
) TABLESPACE "USERS" PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS 255 STORAGE (INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) LOGGING
CREATE TABLE "TEMPES04"."PARTECIPAZIONE" (
"PILOTA" NUMBER(2) NOT NULL,
"GARA" VARCHAR2(20 byte) NOT NULL,
"AUTOVETTURA" VARCHAR2(2 byte) NOT NULL,
"IND_GIROVELOCE" NUMBER(1) NOT NULL,
"POSIZIONE" NUMBER(2) NOT NULL,
CONSTRAINT "AUTOVETTURA_UNICA" UNIQUE("GARA", "AUTOVETTURA") USING INDEX TABLESPACE "USERS" STORAGE (INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) PCTFREE 10 INITRANS 2
PCTINCREASE 0) PCTFREE 10 INITRANS 2 MAXTRANS 255,
CONSTRAINT "POSIZIONE_UNICO" UNIQUE("GARA", "POSIZIONE")
USING INDEXTABLESPACE "USERS"
STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0)
PCTFREE 10 INITRANS 2 MAXTRANS 255)
TABLESPACE "USERS" PCTFREE 5 PCTUSED 0 INITRANS 2 MAXTRANS 255
STORAGE ( INITIAL 16K NEXT 0K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0)
LOGGING
Operazioni 1E ( ,’ ’,’ ’, _ , );
XEC MYINSERT PILOTA NOMEGARA AUTOVETTURA IND GIROVELOCE POSIZIONE
Operazione 2, , _ , ,
SELECT NOME COGNOME DATA NASCITA INDIRIZZO NAZIONALITA
FROM MEMBRO TEAM
WHERE MEMBRO TEAM CODICE = 10
Operazione 3. , .
SELECT M NOME M COGNOME_
FROM MEMBRO TEAM M PARTECIPAZIONE P
WHERE M CODICE P PILOTA AND P GARA P AN ARINO AND P AUTOVETTURA = 'G S M'
WHERE M CODICE P PILOTA AND P GARA P AN ARINO AND P AUTOVETTURA = 'C4';
Operazione 4. , . _
SELECT P GARA G GIRO VELOCE,
FROM PARTECIPAZIONE P GARA G
WHERE P GARA G NOME AND P = 1 AND G = 1;
PILOTA AND P IND GIROVELOCE
Operazione 5,
SELECT GARA POSIZIONE
FROM PARTECIPAZIONE=2
WHERE PILOTA
Operazione 6.
SELECT M.NOME, M.COGNOME_
FROM MEMBRO_TEAM M, MECCANICO ME
WHERE M.CODICE_ME_MEMBRO = ME.CODICE_ME_MEMBRO AND SPECIALIZZAZIONE = 'G'
Operazione 7
SELECT M.NOME, M.COGNOME_
FROM MEMBRO_TEAM M, INGEGNERE I
WHERE M.CODICE_I_MEMBRO = I.CODICE_I_MEMBRO AND SPECIALIZZAZIONE = 'T'
Operazione 8.
SELECT POTENZA_MOTORE, DESCRIZIONE
FROM AUTOVETTURA A, PARTECIPAZIONE P
WHERE P.AUTOVETTURA_SIGLA = A.SIGLA AND P.GARA = 'GERMANIA'
Procedura PL/SQL
INSERIMENTO DATI GARA
CREATE OR REPLACE PROCEDURE MYINSERT(
PILOTA PARTECIPAZIONE.PILOTA%TYPE,
GARA PARTECIPAZIONE.GARA%TYPE,
AUTOVETTURA PARTECIPAZIONE.AUTOVETTURA%TYPE,
IND_GIROVELOCE PARTECIPAZIONE.IND_GIROVELOCE%TYPE,
POSIZIONE PARTECIPAZIONE.POSIZIONE%TYPE)
AS
BEGIN
...
END;INSERT INTO PARTECIPAZIONE (PILOTA, GARA, AUTOVETTURA, IND, GIROVELOCE, POSIZIONE)
VALUES ('P', 'G', 'A', 'IND', 'P');
COMMIT;
END;
Trigger (per l'aggiornamento automatico delle vittorie di un pilota del team)
CREATE OR REPLACE TRIGGER VITTORIE
AFTER INSERT ON PARTECIPAZIONE
DECLARE
PIL PILOTA.MEMBRO%TYPE;
NUMPR PILOTA.VITTPR%TYPE;
VITTORIEVAR PILOTA.VITTORIE%TYPE;
CURSOR VITTPILOTA IS
SELECT PILOTA, COUNT(POSIZIONE)
FROM PARTECIPAZIONE
WHERE POSIZIONE GROUP BY PILOTA;
BEGIN
OPEN VITTPILOTA;
LOOP
FETCH VITTPILOTA INTO PIL, VITTORIEVAR;
EXIT WHEN VITTPILOTA%NOTFOUND;
SELECT VITTPR INTO NUMPR
FROM PILOTA
WHERE MEMBRO = PIL;
UPDATE PILOTA
SET VITTORIE = VITTORIEVAR + NUMPR
WHERE MEMBRO = PIL;
END LOOP;
CLOSE VITTPILOTA;
END;
Procedura PL/SQL per l'inserimento dati membro_team con una sequenza
CREATE SEQUENCE "TEMPES04"."SEQ_MEMBRO"
INCREMENT BY 1
START WITH 45
MAXVALUE 1.0E28
MINVALUE 1
NOCYCLE
CACHE 20
NOORDERI M _TNSERIMENTO DATI EMBRO EAMCREATE OR REPLACE PROCEDURE DATIMEMBRO( INNOME MEMBRO_TEAM.NOME%TYPE,INCOGNOME MEMBRO_TEAM.COGNOME%TYPE,INDATA_NASCITA MEMBRO_TEAM.DATA_NASCITA%TYPE ,ININDIRIZZO MEMBRO_TEAM.INDIRIZZO%TYPE,INNAZIONALITA MEMBRO_TEAM.NAZIONALITA%TYPE)ASBEGININSERT INTOMEMBRO_TEAM(CODICE,NOME,COGNOME,DATA_NASCITA,INDIRIZZO,NAZIONALITA)VALUES(SEQ_MEMBRO.nextval,INNOME,INCOGNOME,INDATA_NASCITA,ININDIRIZZO,INNAZIONALITA);COMMIT;;END
Stampa di una frase a videoCREATE OR REPLACE TRIGGER "TEMPES04"."NOTIZIA" BEFOREINSERT ON "PARTECIPAZIONE" FOR EACH ROW declarenomevar MEMBRO_TEAM.NOME %TYPE;cognomevar MEMBRO_TEAM.COGNOME %TYPE;idpilota PARTECIPAZIONE.PILOTA %TYPE;nomegara PARTECIPAZIONE.GARA %TYPE;pos PARTECIPAZIONE.POSIZIONE %TYPE;BEGINPOS:= :new