Sunteți pe pagina 1din 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 proprietatile unui obiect
DROP Sterge un obiect din baza de date

CREAREA TABELELOR – COMANDA CREATE TABLE


Pentru a crea o tabela se specifica urmatoarele:
- denumirea tabelei
- definirea coloanelor si tipul acestora
- stabilirea restrictiilor 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 in 2 moduri: in-line la definirea coloanei pe care


se impune restrictia si out-of-line separat, fie la sfarsitul sintaxei CREATE TABLE,
fie prin comanda ALTER TABLE

Exemplul 1. Sa se creeze tabela firme si tabela agenti in care sa fie precizate restrictiile de
integritate.
CREATE TABLE firme
(codfirma NUMBER(2) CONSTRAINT pk_firme PRIMARY KEY,
denfirma VARCHAR2(20) NOT NULL,
loc VARCHAR2(20),
zona VARCHAR2(15) CONSTRAINT ck_zona_firme CHECK (zona IN
('Moldova','Ardeal','Banat','Muntenia','Dobrogea','Transilvania')));

CREATE TABLE agenti


(codagent VARCHAR2(3) CONSTRAINT pk_agenti 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));

Exemplul 2. Se considera activitatea de evidenta a comenzilor incheiate de o societate


comerciala cu diversi clienti prin intermediul angajatilor care detin anumite functii si isi

1
BAZE DE DATE – SEMINAR 2
___________________________________________________________________________

desfasoara activitatea in diverse departamente, aflate in mai multe tari/regiuni/locatii.


Comenzile pot fi plasate si online si contin produse aflate in depozitul societatii.

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

Deschideti de pe site schema BD


http://bd.ase.ro/uploads/bd_seminar_zi/diagrama_hr.jpg
si scriptul de creare a tabelelor
http://bd.ase.ro/uploads/bd_seminar_zi/ru_ldd.txt

CREAREA UNEI TABELE PE BAZA COLOANELOR DIN ALTA TABELA:

CREATE TABLE nume_tabela


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

Exemplul 3. Sa se creeze tabela fosti_agenti pe baza tabelei agenti si care va contine doar o
parte din coloanele tabelei initiale (codagent, numeagent, functia, codfirma)
CREATE TABLE fosti_agenti
AS
SELECT codagent, numeagent, functia, codfirma FROM agenti;

2
BAZE DE DATE – SEMINAR 2
___________________________________________________________________________

MODIFICAREA STRUCTURII TABELELOR - COMANDA ALTER TABLE


Comanda ALTER TABLE permite:
- Modificarea structurii unei tabele avand urmatoarele optiuni:
Adaugare coloana ADD nume_coloana tip_data
Modificare coloana MODIFY nume_coloana tip_nou_data
Stergere coloana DROP COLUMN nume_coloana
Inactivare coloana in vederea stergerii ulterioare SET UNUSED

- Modificarea restrictiilor de integritate avand urmatoarele optiuni:


Adaugare restrictie ADD CONSTRAINT nume_restrictie
tip_restrictie
Modificare restrictie MODIFY CONSTRAINT nume_restrictie
tip_nou_restrictie
Stergere restrictie DROP CONSTRAINT nume_restrictie
Dezactivare/activare restrictie 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 Sa se redenumeasca tabela agenti cu personal
ALTER TABLE agenti RENAME TO personal;
sau
RENAME agenti TO personal;

4.2 Sa se adauge coloanele email si varsta in tabela personal


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

4.3 Sa se modifice tipul de date al coloanei email


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

4.4 Sa se stearga coloana email


ALTER TABLE personal
DROP COLUMN email;

4.5 Sa se inactiveze coloana functia


ALTER TABLE personal
SET UNUSED COLUMN functia;

4.6 Sa se stearga coloanele inactive


ALTER TABLE personal
DROP UNUSED COLUMNS;

3
BAZE DE DATE – SEMINAR 2
___________________________________________________________________________

4.7 Sa se adauge o restrictie pe coloana varsta


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

4.8 Sa se dezactiveze restrictia anterioara


ALTER TABLE personal
DISABLE CONSTRAINT check_varsta;

4.9 Sa se stearga restrictia anterioara


ALTER TABLE personal
DROP CONSTRAINT check_varsta;

STERGEREA TABELELOR – COMENZILE DROP TABLE SI


TRUNCATE TABLE
Comanda permite stergerea unei tabele [inclusiv restrictiile acesteia] cu posibilitate de
recuperare:
DROP TABLE nume_tabela [CASCADE CONSTRAINTS];
FLASHBACK TABLE nume_tabela TO BEFORE DROP;

Sterge definitiv tabela fara posibilitate de recuperare


DROP TABLE nume_tabela PURGE;

Exemplul 5.
5.1 Sa se stearga tabela fosti_agenti
DROP TABLE fosti_agenti;
5.2 Sa se recupereze tabela fosti_agenti
FLASHBACK TABLE fosti_agenti TO BEFORE DROP;

Comanda TRUNCATE TABLE sterge inregistrarile unei tabele si elibereaza spatiul alocat
acestora

Exemplul 6. Sa se stearga inregistrarile tabelei personal


TRUNCATE TABLE personal;

VIZUALIZAREA OBIECTELOR CE APARTIN UNUI ANUMIT UTILIZATOR:


Din dictionarul bazei de date se pot vizualiza o serie de informatii referitoare la obiectele
utilizatorului curent

Exemplul 7. Sa se vizualizeze toate tabelele utilizatorului curent


SELECT * FROM USER_TABLES;

Exemplul 8. Sa se vizualizeze denumirea tabelelor, restrictiile si tipul acestora pentru


utilizatorul curent
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME
FROM USER_CONSTRAINTS;

S-ar putea să vă placă și