Newsgroup: it.comp.software.database
Titolo: Script creazione tabella...

Salve,
sono nuovo del gruppo; ieri per la prima volta ho visto uno script
per creare una tabella su un db Oracle...non sembra difficilissimo, o
almeno qualcosa l' ho capita, ho però un paio di domande da fare.
Supponiano che io ho tre tabelle, la tabella Utente, quella Descrizione e
una di legame, così formate (metto due campi idioti solo per fare un
esempio):
Utente:
   ID_UTENTE               NUMBER(6)          PK
NOT NULL   (SEQUENZA ORACLE)
   DS_COGNOME          VARCHAR2(20)
NOT NULL
Descrizione:
   ID_DESCRIZIONE     NUMBER(6)          PK
NOT NULL   (SEQUENZA ORACLE)
   DS_PROFESSIONE     VARCHAR2(20)
NOT NULL
Tabella di legame:
   ID_UTENTE               NUMBER(6)
FK     NOT NULL
   DS_DESCRIZIONE    VARCHAR2(20)     FK     NOT NULL
Ammesso che io volessi creare queste tre tabelle, qualcuno gentilmente mi
farebbe vedere gli script per farlo?
Ho fatto delle prove ieri, ma ho
avuto problemi con le foreign Keys nelle tabelle di legame.
Grazie, ciao
ciao.
--------------------------------
Inviato via 
http://usenet.iol.it

 wrote:
Create table Utenti (
	ID_UTENTE  NUMBER(6)  NOT NULL,
        DS_COGNOME VARCHAR2(20) NOT NULL,
	CONSTRAINT PK_UTENTI PRIMARY KEY (ID_UTENTE)
);
Create Table Descrizioni (
	ID_DESCRIZIONE NUMBER(6) NOT NULL,
	DS_PROFESSIONE VARCHAR(20) NOT NULL,
	CONSTRAINT PK_DESCRIZIONI PRIMARY KEY (ID_DESCRIZIONE)
);
Create Table Legami (
	ID_UTENTE NUMBER(6) NOT NULL,
	ID_DESCRIZIONE NUMBER(6) NOT NULL,
	CONSTRAINT PK_LEGAMI PRIMARY KEY (ID_UTENTE,ID_DESCRIZIONE),
	constraint fk_utenti foreign key (id_utente) references utenti,
	constriant fk_descrizioni foreign key (id_descrizione)
		references Descrizioni
);
Prima di stabilire la FK devi avere la tabella che viene 'referenziata'.
Vedi la documentazione di Oracle
Davide

 wrote in message
news:157Z29Z81Z46Y9...@usenet.iol.it...


Ok, grazie a tutti per le risposte, faccio una piccola premessa e poi 
altre domande :)
Le tabelle che ho postato come esempio, non hanno nessuna logica 
funzionale, o meglio, non esistono, e non credo che esisteranno mai 
così :) Erano solo per avere un qualcosa di meno teorico e più pratico, 
quindi non vi soffermate tanto sul fatto che così non posso aver molto 
senso.
Andiamo avanti. Ho scritto uno scriptino per la creazione della pseudo 
tabella Utenti, lo posto e ditemi se è corretto, anche perchè devo 
chiedere una cosa; questo è quanto:-- CREAZIONE PSEUDO TABELLA 
PROVA_UTENTI
-- cancello la peseudo tabella prova_utenti 
drop table prova_utenti;
-- creo la tabella
Create table Utenti (
	ID_UTENTE  	NUMBER(6)  	NOT NULL,
        DS_COGNOME 	VARCHAR2(20) 	NOT NULL,
	DS_NOME		VARCHAR2(20)	NOT NULL,
    	);
pctfree		10;
pctused		40;
initrans	1;
maxtrans	255;
tablespace	quello definito per il db che devo usare;
storage	(
    initial	20480
    next	380928
    pctincrease	50
    minextents	1
    maxextents	249
    );
-- aggiungo la chiave primaria
add constraint pk_uteni primary key (id_utente);
-- cancello la sequence
drop sequence id_utente;
-- creo la sequence
create sequence id_utente start with 1 increment by 1;
DOMANDE:
1) il punto e virgola (;) ho visto essere legato al client Oracle che 
utilizzo e non ad Oracle stesso, visto che stò imparando, è bene che mi 
abituo ad usarlo o no?
2) questo blocco qua:
   pctfree	10
   pctused	40
   initrans	1
   maxtrans	255
   tablespace	quello definito per il db che devo usare
   storage	(
       initial	    20480
       next	    380928
       pctincrease  50
       minextents   1
       maxextents   249
       )
che io pendo per buono e che ho visto posso lasciare anche fisso, a 
differenza del tablespace che va cambiato, in realtà che indica?
Aspetto news, grazie.
Saluti...
-- 
Posted from 157.29.81.46 by way of 
smtp3.libero.it
 [193.70.192.53] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 differenza del tablespace che va cambiato, in realt? che indica?
Specifica come Oracle deve riempire la tabella con i dati, quanto
"spazio" riservare per la crescita etc. Vedi la documentazione di
Oracle per informazioni piu' precise perche' e' troppo lungo da
spiegare qui'.
Davide