This is an old revision of the document!
Sintaxa comenzii de creare este următoarea:
CREATE TABLE [schema.]TABLE_NAME [table_constraint] COLUMN datatype [DEFAULT expr] [column_constraints] [table_contstraints][TABLESPACE tablespace] [storage parameters] [ENABLE/DISABLE clause][AS subquery]
unde:
OPTIUNEA DEFAULT
Unei coloane ii poate fi data o valoare implicita prin optiunea DEFAULT. Aceasta previne aparitia de valori null (sau erori, daca era specificat NOT NULL) atunci cand o linie este inserata fara o valoare din coloana. Valorile implicite pot fi literali, o expresie, dar nu numele altei coloane. Functii ca SYSDATE si USER sunt valide.
Exemplu:
HIREDATE DATE DEFAULT SYSDATE, SAL NUMBER (7,2) DEFAULT 0;
Tipurile de date care pot fi asociate coloanelor unei tabele pot fi :
Câteva dintre cele mai uzuale tipuri de date sunt:
CREATE TABLE angajati ( id_ang NUMBER(4) PRIMARY KEY, nume varchar2(30) CONSTRAINT CK_NUME CHECK (nume=UPPER(nume)), functie varchar2(20) REFERENCES functii(den_functie), id_sef NUMBER(4) REFERENCES angajati(id_ang), data_ang DATE, salariu NUMBER(7,2) CHECK (salariu>0), comision NUMBER(7,2), id_dep NUMBER(2) REFERENCES departamente (id_dep), CONSTRAINT CK_COM CHECK (comision<=salariu));
Constrangerea NOT NULL
Constrangerea NOT NULL se aplica la nivel de coloane si verifica daca inregistrarile au valori nule pe coloanele respective, fortand un cod de eroare care anuleaza tranzactia. Cand se creaza constrangeri pe o cheie primara se creaza automat si o constrangere NOT NULL pe coloanele respective (o cheie primara nu trebuie sa contina valori nule pe coloanele care o definesc).
Constrangerea UNIQUE
Aceasta desemneaza o coloana sau o combinatie de coloane ca fiind cheie unica. Doua linii in aceeasi tabela nu pot avea aceeasi valoare pentru aceasta cheie. Valorile NULL sunt permise daca cheia unica este bazata pe o singura coloana.
Exemplu: pentru a va asigura ca nu sunt 2 nume de departamente identice la aceeasi locatie:
CREATE TABLE DEPT (DEPTNO NUMBER, DNAME VARCHAR2(9), LOC VARCHAR2(10), CONSTRAINT UNQ_DEPT_LOC UNIQUE(DNAME,LOC))
Constrangere de cheie primara
Ca si in cazul cheilor unice, o cheie primara forteaza unicitatea unei coloane sau a unei combinatii de coloane implicate si un index unic este creat pentru a permite acest lucru. Poate fi o singura cheie primara pe o tabela, si aceasta este cheia prin care liniile in tabela sunt identificate individual. In coloanele de chei primare nu sunt permise valori NULL.
Exemplu: Nomenclator de functii in care fiecare functie sa aiba un cod unic.
CREATE TABLE functii ( cod_functie NUMBER(2) CONSTRAINT PK PRIMARY KEY, den_functie VARCHAR(10), data_valid DATE);
Constrangere de cheie externa
Cheile externe furnizeaza reguli de integritate de referinta in cadrul unei tabele sau intre tabele. O cheie exeterna este folosita numai in relatie cu o cheie primara sau unica.
Exemplu: Relationarea tabelei angajati cu tabelele departamente si functii.
<code sql>
CREATE TABLE angajati (id_ang number(4) PRIMARY KEY, nume varchare2(10), functie varchar2(10) REFERENCES functii(den_functie), id_sef number(4) REFERENCES angajati
parametrii adiționali
prezenți în fiecare dintre ele, ce vor fi descriși de laborant în cadrul fiecărui laborator.
1. Să se creeze o tabela 'salarii' care să conțină ID și DENUMIRE DEPARTAMENT, SALARIU MINIM, SALARIU MAXIM și parametrii adiționali
. Tabela va fi populată, prin comanda de creare, din tabelele cu departamente și angajați.
2. Să se creeze trei tabele: INTRARI_GESTIUNE, IESIRI_GESTIUNE și STOCURI_GESTIUNE, cu următoarele structuri:
INTRARI_GESTIUNE: NR_DOC_IN, DATA_DOC_IN, COD_PRODUS, CANT_IN, COD_UM, PRET_UNITAR IESIRI_GESTIUNE: NR_DOC_OUT, DATA_DOC_OUT, COD_PRODUS,CANT_OUT,COD_UM, NR_DOC_IN, DATA_DOC_IN STOCURI_GESTIUNE: NR_DOC_IN,DATA_DOC_IN,COD_PRODUS,STOC,COD_UM, VALOARE, DATA_STOC
Constrângeri: pe un tip produs, pot exista mai multe intrări; pe un document de intrare pot exista mai multe produse; același produs poate avea mai multe unități de măsură, deci implicit mai multe prețuri unitare; pentru un produs și document de intrare, pot exista mai multe documente de ieșire – până la epuizarea stocurilor.
Scrieți cereri pe aceste tabele care îndeplinesc parametrii adiționali
. Fiecare cerere va fi data sub forma CERERE(PARAMETRI): ea va fi implementata intr-un fisier cu numele CERERE, iar parametrii se vor cere ca variabile substituite.
3. Pe lângă tabelele de la exercițiul 2, construiți o tabelă FACTURI, care conține NUMAR_FACTURA,DATA_FACTURARII, DEBITOR, CREDITOR si o lista de produse intrate in gestiune, sau iesite din gestiune. Scrieți cereri pe această tabelă care îndeplinesc parametrii adiționali
.