Sunteți pe pagina 1din 4

BAZE DE DATE SEMINAR 2

___________________________________________________________________________

Comenzi LDD (Data Definition Language Limbaj de Definire a


Datelor)
Comanda
CREATE
ALTER
DROP

Scop
Creaza un obiect nou: TABLE, INDEX, CLUSTER, TABLESPACE,
SEQUENCE, VIEW, MATERIALIZED VIEW, USER, ROLE,
PROCEDURE, FUNCTION, TRIGGER
Modifica o parte dintre proprietatile unui obiect
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 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));
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

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;

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;

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