Sunteți pe pagina 1din 9

LIMBAJUL SQL - CREAREA TABELELOR

N ORACLE

Prezentare general
Limbajul SEQUEL (Structured English as Query Language) a fost prezentat pentru
prima dat ca un limbaj de interogare n anul 1974, de ctre Chamberlin i Boyce. n 1980,
Chamberlin a schimbat denumirea SEQUEL n SQL (Structured Query Language limbaj
structurat de interogare) [7].
ANSI (Institutul Naional American pentru Standarde) a publicat n 1986 standardul
SQL ANSI 1986, care definea comenzile de baz ale limbajului SQL, inclusiv pentru crearea
de tabele i vederi (create table i create view). Limbajul SQL 86 nu coninea opiuni de
modificare a structurii sau tergere a obiectelor bazei (alter, drop) i comenzi pentru acordare
i revocare de drepturi utilizatorilor (grant i revoke).
In 1989 apare limbajul SQL 89 recunoscut ca fundament al multor SGBD-uri
comerciale. Totui, variantele comerciale ale diferiilor productori erau incompatibile la
nivel de detaliu.
n 1999 a fost publicat un standard SQL 3 care iese din sfera relaionalului i a
normalizrii relaiilor, aa cum au fost formulate de Codd. Principalele orientri ale limbajului
SQL 3 vizeaz transformarea acestuia ntr-un limbaj complet, n vederea definirii i
gestionrii obiectelor complexe i persistente. Astfel, au fost introduse [7]:

Moteniri multiple, polimorfismul, ncapsularea, caracteristici preluate din


limbajele orientate pe obiecte

Tipuri de date definite de utilizator

Suport pentru sisteme bazate pe gestiunea cunotinelor

Interogri recursive i instrumente de administrare a datelor.

Sistemul de gestiune a bazelor de date Oracle respect standardele referitoare la limbajele


de interogare a datelor (SQL) .

Utilizarea sistemului de gestiune a bazelor de date Oracle

Oracle suport baze de date de orice dimensiuni, ncepnd de la civa octei pn la

civa gigaoctei

Oracle suport un numr mare de utilizatori simultan, minimizeaz conflictele i

garanteaz concurena tranzaciilor

Oracle suport un mediu client/server real. El permite mprirea procesrii ntre baza de

date server i programele de aplicaie ale clientului


Utilitarele oferite de sistemul Oracle, versiunea Oracle Database 10g Express
Edition, sunt Administration, Object Browser, SQL, Utilities etc. (figura 1) [1], [7].

Fig. 1. Mediul Oracle Database 10g Express Edition


Utilitarul Administration ofer o interfa grafic pentru efectuarea operaiilor de
gestionare a unei baze de date, a userilor, a memoriei utilizate, vizualizarea fisierelor de date,
a spaiilor tabel, gestionarea accesului HTTP, etc. Aplicaia SQL permite execuia
comenzilor SQL, a programelor PL/SQL i a scripturilor SQL [2].
n cazul conectrii la un cont de user diferit de SYS, este accesibil i utilitarul
Application Builder, care ofer faciliti de realizare i gestionare a aplicaiilor cu interfa
vizual (de tip formular, raport), permite crearea de servicii Web care acceseaz baze de date
Oracle, etc.
Observaie: Toate aplicaiile din sectiunea Limbajul SQL Oracle sunt verificate
folosind versiunea Oracle Database 10g Express Edition.

Tipuri de date. Crearea unei baze de date


Tipurile de date folosite n Oracle sunt prezentate n tabelul 1 [3], [7]:
Tabelul 1.
TIP
VARCHAR2(size)
NUMBER(p,s)
LONG
DATE
RAW(size)
LONG RAW
ROWID
CHAR(size)
BLOB
BFILE

Caracteristici
ir de caractere de lungime variabil
numeric: p (precision) = 1..38, s (scale) =-84..127
ir de caractere de lung>2GB
dat calendaristic
date de tip binar. Maxim size este 2000 bytes.
lungime variabil > 2GB se stocheaz grafice, sunete,
documente
adresa fiecarui rnd din tabel
ir de caractere de lungime fix
binary large object (max 4GB) se stocheaz date
nestructurate (text,imagine, video, date spatiale)
conine un pointer ctre un fiier binar stocat n afara bazei
de date

Crearea unei baze de date necesit cunotine de administrare strict legate de produsul
software de gestiune a bazei de date. Elementele tehnice i fizice ce caracterizeaz serverele
de baze de date, cum ar fi: Oracle, SQL Server, DB2, Informix, sunt [7]:
-

spaiile tabel (table space) folosite pentru alocarea de spaiu pe disc pentru
obiectele bazei

segmentele de rollback sunt obiecte utilizate de sistem pentru salvarea datelor


necesare validrii tranzaciilor

fiierele de date i procesele sistem asociate sistemelor de gestiune a bazelor de


date.

Exemplu - Se consider activitatea de eviden a comenzilor ncheiate de o societate


comercial cu diverse firme prin intermediul agenilor angajai n cadrul societii. Comenzile
conin produse aflate n depozitul societii, iar pentru fiecare produs se cunoaste n
permanen stocul existent (figura 1).

Fig. 1. Tabelele aplicaiei

Comenzile DDL (DATA DEFINITION LANGUAGE Limbaj de Definire a Datelor)


utilizate n Oracle sunt urmtoarele:
Comanda

Aciune

CREATE

Creaz un obiect nou: TABLE, INDEX, CLUSTER, TABLESPACE,


SEQUENCE, VIEW, MATERIALIZED VIEW, USER, ROLE, PROCEDURE,
FUNCTION, TRIGGER

ALTER

Modific o parte dintre proprietile unui obiect

DROP

terge un obiect din baza de date

n continuare, vor fi prezentate detaliat comenzile DDL folosite pentru crearea tabelelor,
modificarea structurii i tergerea acestora.

Crearea tabelelor
Pentru a crea o tabel, se specific urmtoarele [4]:
-

definiiile atributelor

modul de organizare a tabelei

restriciile de integritate

spaiul de tabel

caracteristicile de stocare

clusterul

datele (dac se preiau dintr-o alt tabel)

definiiile partiiilor
4

Restricii de integritate: n Oracle exist urmtoarele tipuri de restricii [5]:


o NOT NULL
o UNIQUE
o PRIMARY KEY
o FOREIGN KEY
o CHECK
Precizarea restriciilor se poate face n 2 moduri:
-

in-line la definirea coloanei pe care se impune restricia i

out-of-line separat, fie la sfritul comenzii CREATE TABLE, fie prin comanda
ALTER
Comanda de creare a unui tabel n limbajul SQL versiunea Oracle:
CREATE TABLE nume_tabel ( camp1 tip_de_date_1 [definitie_cmp], camp2

tip_de_date_2 [definitie_cmp] [, ] )
unde cmp1, cmp2, sunt coloanele tabelului nume_tabel, iar definiie_cmp poate
conine clauze pentru iniializarea unui atribut cu o valoare implicit sau restricii precum
cheie primar, unicitate, null, o restricie definit de utilizator i cheie extern.
Scriptul care creeaz tabelele bazei i stabilete relaiile dintre ele i restriciile, este
urmtorul [7]:
create table firme
(codfirma number(2) constraint PK_firme primary key,
denfirma varchar2(20) not null,
loc varchar2(20),
zona varchar2(15)
CONSTRAINT ZONA_CK check (zona in ('MUNTENIA',
'MOLDOVA','ARDEAL','BANAT', 'DOBROGEA','TRANSILVANIA')));
create table agenti
(codagent varchar2(3) constraint pk_agent primary key,
nume varchar2(25) not null,
zona varchar2(15) CONSTRAINT AGZONA_CK check (zona
in('MOLDOVA','ARDEAL','BANAT','MUNTENIA','DOBROGEA', 'TRANSILVANIA')),
functie varchar2(20));
5

create table comenzi


(nrcom number(4) constraint pk_comenzi primary key,
codfirma number(2) not null, codagent varchar2(3) not null,
data date default sysdate,
CONSTRAINT FKAgent FOREIGN KEY (codagent) REFERENCES agenti(codagent),
CONSTRAINT FKFirme FOREIGN KEY (codfirma) REFERENCES firme(codfirma));
Crearea unui tabel pe baza cmpurilor din alt tabel se poate efectua folosind comanda:
CREATE TABLE nume_tabela
AS SELECT [*, nume campuri]
FROM nume_tabela_sursa WHERE [conditie];
Exemplu: Tabela nume_firme va conine numele firmei, codul i localitatea:
CREATE TABLE nume_FIRME
AS SELECT codfirma, denfirma, loc FROM FIRME;
Comanda DESCRIBE sau DESC permite vizualizarea structurii unei tabele.
Exemplu: S se vizualizeze structura tabelei AGENTI (figura 2):
DESC AGENTI;

Fig. 2. Tabelul AGENTI

Adugarea restriciilor
n limbajul SQL se pot declara toate tipurile de restricii pentru o baz de date
relaional [6]:
-

cheie primar atributul PRIMARY KEY;

valori obligatorii (nenule) opiunea NOT NULL;

restricii utilizator implementate sub forma regulilor de validare la nivel de cmp,

nregistrare sau pot fi incluse n declanatoare;


-

restricii refereniale apar datorit existenei cheilor strine (clauza FOREIGN KEY).

Restriciile refereniale pstreaz integritatea bazei de date la execuia anumitor operaii,


6

precum: inserarea unei linii ntr-o tabel copil sau modificarea unei chei strine; la tergerea
unei linii dintr-o tabel printe (fie se efectueaz tergerea n cascad n tabelul copil, fie se
interzice tergerea).

Modificarea structurii tabelelor


O bun analiz i proiectare a aplicaiei permite reducerea modificrilor structurii
tabelelor i a restriciilor. Totui, schema bazei de date poate fi modificat la anumite operaii
precum [7]:

apariia unui nou atribut (coloan); modificarea lungimii unui atribut

ncrcarea bazei dintr-o alt aplicaie; salvri, restaurri sau alte operaii in care sunt
necesare dezactivarea temporar a unor restricii si reactivarea lor ulterioar.
Modificarea structurii bazei de date n Oracle poate fi efectuat utiliznd comanda

ALTER TABLE, care are urmtoarea sintax:


ALTER TABLE nume_tabel
ADD ( coloana <definitie_coloana>)
| MODIFY (coloana<modificare_coloana>)
| RENAME TO <nume_nou>
| ADD (CONSTRAINT nume_constrangere <definitie_restrictie>)
| DROP| DISABLE CONSTRAINT <nume_restrictie>
Comanda ALTER TABLE realizeaza urmatoarele [7]:
-

Modificarea structurii tabelei: ADD, MODIFY, DROP COLUMN, SET UNUSED

Modificarea

restriciilor

de

integritate:

ADD,

MODIFY,

DROP,

DISABLE

CONSTRAINT
-

Redenumete tabela: RENAME

Clauza ADD adaug o coloan sau o restricie, clauza MODIFY modific definiia unei
coloane, iar DROP terge o coloan sau o restricie.
Toate restriciile (PRIMARY KEY, UNIQUE, CHECK i FOREIGN KEY) pot fi
declarate ulterior crerii tabelei i pot fi anulate dac este necesar.
Dup fiecare comand se poate vizualiza structura tabelei cu:
DESCRIBE nume_tabel sau DESC nume_tabel Exemplu: DESCribe firme
7

Exemple:
- Redenumii tabelul comenzi n com i revenii la vechea denumire:
ALTER TABLE comenzi RENAME TO com; RENAME com TO comenzi;
- Adugai coloana adresa la tabelul comenzi
ALTER TABLE comenzi
ADD (adresa VARCHAR2(10) );
- modificai coloana adresa la tipul VARCHAR2(30) n tabelul comenzi:
ALTER TABLE comenzi
MODIFY (adresa VARCHAR2(30));
- adugai la tabelul comenzi restricia de validare pentru coloana codfirma: s aib valori
ntre 10 i 100:
ALTER TABLE comenzi
ADD (CONSTRAINT c1 CHECK (codfirma > 10 and codfirma < 100));
- dezactivai restricia de validare pentru coloana codfirma n tabelul comenzi:
ALTER TABLE comenzi
DISABLE CONSTRAINT c1;
- tergei restricia de validare pentru coloana codfirma n tabelul comenzi:
ALTER TABLE comenzi DROP CONSTRAINT c1;

tergerea tabelelor
Comenzile DROP i TRUNCATE TABLE realizeaz tergerea unui tabel [7]
DROP TABLE nume_tabel CASCADE CONSTRAINTS;
Ex: DROP TABLE comenzi CASCADE CONSTRAINTS;
TRUNCATE terge nregistrarile unei tabele i elibereaza spaiul alocat ei:
TRUNCATE TABLE angajati;
8

Bibliografie
1.

Oracle Database Express Edition Help Online

2.

Oracle Database SQL Reference 10g Release 1 (10.1), 2003

3.

PL/SQL User's Guide and Reference Oracle 10g Release 1 (10.1), 2003

4.

Tudor N. L., Visual Foxpro Limbajul SQL ndrumar de Laborator, Editura


Universitii din Ploieti, 2005

5.

Marin Fotache, SQL Dialecte DB2, Oracle, Visual Foxpro, Editura Polirom, 2001

6.

Tudor N. L., SISTEME INFORMATICE SI GESTIUNEA BAZELOR DE DATE


ORACLE, Editura MATRIX ROM, Bucureti, ISBN 978-973-755-745-2, 2011, 109
pag.

7.

Tudor N. L., SISTEME INFORMATICE SI GESTIUNEA BAZELOR DE DATE,


Editura Universitii din Ploieti, 2007

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