You are on page 1of 4

BAZE DE DATE – SEMINAR 2

___________________________________________________________________________

Comenzi LDD (Data Definition Language –


Limbaj de Definire a Datelor)

Comanda Scop
CREATE Creaza un obiect nou: TABLE, INDEX, CLUSTER, TABLESPACE,
SEQUENCE, VIEW, MATERIALIZED VIEW, USER, ROLE,
PROCEDURE, FUNCTION, TRIGGER
ALTER Modifica o parte dintre proprietățile unui obiect
DROP Șterge un obiect din baza de date

CREAREA TABELELOR – COMANDA CREATE TABLE


Pentru a crea o tabelă se specifică urmatoarele:
- denumirea tabelei
- definirea coloanelor și tipul acestora
- stabilirea restricțiilor de integritate

RESTRICTII DE INTEGRITATE
- Tipuri de restrictii:
o NOT NULL
o UNIQUE
o PRIMARY KEY
o FOREIGN KEY
o CHECK

- Precizarea restrictiilor se poate face în 2 moduri: in-line la definirea coloanei pe care se


impune restricția și out-of-line separat, fie la sfârșitul sintaxei CREATE TABLE, fie
prin comanda ALTER TABLE

Exemplul 1. Să se creeze tabela firme și tabela agenți în care să fie precizate restricțiile de
integritate.

CREATE TABLE firme


(codfirma NUMBER(2) CONSTRAINT PKey_firme PRIMARY KEY,
denfirma VARCHAR2(20) NOT NULL,
loc VARCHAR2(20),
zona VARCHAR2(15) CONSTRAINT FZONA_CK check (zona IN
('Moldova','Ardeal','Banat','Muntenia','Dobrogea','Transilvania')));

CREATE TABLE agenti


(codagent VARCHAR2(3) CONSTRAINT pk_agent PRIMARY KEY,
numeagent VARCHAR2(25) NOT NULL,
dataang DATE DEFAULT SYSDATE,
datanast DATE,
functia VARCHAR2(20),
codfirma NUMBER(2),
CONSTRAINT FK_agenti FOREIGN KEY (codfirma) REFERENCES firme(codfirma));

Pagina 1 din 4
BAZE DE DATE – SEMINAR 2
___________________________________________________________________________

Exemplul 2. Se consideră activitatea de evidență a comenzilor încheiate de o societate


comercială cu diverși clienți prin intermediul angajaților care dețin anumite funcții și își
desfășoară activitatea în diverse departamente, aflate în mai multe țări/regiuni/locații.
Comenzile pot fi plasate și online și conțin produse aflate în depozitul societății.

Figura 1. Schema BD pentru activitatea de evidenta a comenzilor și a resurselor umane

Deschideți de pe site schema BD


https://bd.ase.ro/Media/Default/BD/schemaBD.png
si scriptul de creare a tabelelor
https://bd.ase.ro/Media/Default/BD/ScriptBD.txt

EXERCIȚIU: crearea unei tabele pe baza coloanelor din altă tabelă:

CREATE TABLE nume_tabela


AS
SELECT [*, nume coloane] FROM nume_tabela_sursa
[WHERE conditie];

Exemplul 3. Să se creeze tabela fosti_agenti pe baza tabelei agenți și care va conține doar o
parte din coloanele tabelei inițiale (codagent, numeagent, functia, codfirma)

CREATE TABLE fosti_agenti


AS
SELECT codagent, numeagent, functia, codfirma FROM agenti;

Pagina 2 din 4
BAZE DE DATE – SEMINAR 2
___________________________________________________________________________

MODIFICAREA STRUCTURII TABELELOR - COMANDA ALTER TABLE


Comanda ALTER TABLE permite:
- Modificarea structurii unei tabele având următoarele opțiuni:
Adăugare coloană ADD nume_coloana tip_data
Modificare coloană MODIFY nume_coloana tip_nou_data
Ștergere coloană DROP COLUMN nume_coloana
Inactivare coloană în vederea ștergerii ulterioare SET UNUSED

- Modificarea restricțiilor de integritate având următoarele opțiuni:


Adăugare restricție ADD CONSTRAINT nume_restrictie
tip_restrictie
Modificare restricție MODIFY CONSTRAINT nume_restrictie
tip_nou_restrictie
Ștergere restricție DROP CONSTRAINT nume_restrictie
Dezactivare/activare restricție DISABLE/ENABLE CONSTRAINT
nume_restrictie

- Redenumirea tabelei: RENAME


ALTER TABLE nume_tabela RENAME TO nume_nou_tabela;
sau
RENAME nume_tabela TO nume_nou_tabela;

Exemplul 4
4.1 Să se redenumească tabela agenți cu personal
ALTER TABLE agenti RENAME TO personal;
sau
RENAME agenti TO personal;

4.2 Să se adauge coloanele email și vârstă în tabela personal


ALTER TABLE personal
ADD (email VARCHAR2(10),
varsta NUMBER(2));

4.3 Să se modifice tipul de date al coloanei email


ALTER TABLE personal
MODIFY (email VARCHAR2(30));

4.4 Să se șteargă coloana email


ALTER TABLE personal
DROP COLUMN email;

4.5 Să se inactiveze coloana functia


ALTER TABLE personal
SET UNUSED COLUMN functia;

4.6 Să se șteargă coloanele inactive


ALTER TABLE personal
DROP UNUSED COLUMNS;

Pagina 3 din 4
BAZE DE DATE – SEMINAR 2
___________________________________________________________________________

4.7 Să se adauge o restricție pe coloana vârstă


ALTER TABLE personal
ADD CONSTRAINT check_varsta CHECK (varsta>18 and varsta<60);

4.8 Să se dezactiveze restricția anterioară


ALTER TABLE personal
DISABLE CONSTRAINT check_varsta;

4.9 Să se șteargă restricția anterioară


ALTER TABLE personal
DROP CONSTRAINT check_varsta;

STERGEREA TABELELOR – COMENZILE DROP TABLE ȘI


TRUNCATE TABLE
Comanda permite ștergerea unei tabele [inclusiv restricțiile acesteia] cu posibilitate de
recuperare:
DROP TABLE nume_tabela [CASCADE CONSTRAINTS];
FLASHBACK TABLE nume_tabela TO BEFORE DROP;

Șterge definitiv tabela fără posibilitate de recuperare


DROP TABLE nume_tabela PURGE;

Exemplul 5.
5.1 Să se șteargă tabela fosti_agenti
DROP TABLE fosti_agenti;
5.2 Să se recupereze tabela fosti_agenti
FLASHBACK TABLE fosti_agenti TO BEFORE DROP;

Comanda TRUNCATE TABLE șterge înregistrările unei tabele și eliberează spațiul alocat
acestora

Exemplul 6. Să se șteargă înregistrările tabelei personal


TRUNCATE TABLE personal;

VIZUALIZAREA OBIECTELOR CE APARTIN UNUI ANUMIT UTILIZATOR:


Din dicționarul bazei de date se pot vizualiza o serie de informații referitoare la obiectele
utilizatorului curent

Exemplul 7. Să se vizualizeze toate tabelele utilizatorului curent


SELECT * FROM USER_TABLES;

Exemplul 8. Să se vizualizeze denumirea tabelelor, restricțiile și tipul acestora pentru


utilizatorul curent
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME
FROM USER_CONSTRAINTS;

Pagina 4 din 4

You might also like