You are on page 1of 16

CREATE SQL

Sau cum crem tot felul de chestii n SQL


Definirea datelor n SQL
SQL folosete termenii tabel, rnd, coloan echivaleni cu
termenii din modelul relaional formal relaie, tuplu, atribut.
Comanda SQL pentru definirea datelor este CREATE care
poate fi folosit pentru crearea
schemelor,
tabelelor,
domeniilor.
Conceptul de schem n SQL
Conceptul de schem SQL a fost introdus n standardul SQL2
pentru a grupa mpreun tabele i alte structuri care apar in
aceleai baze de date.

Schema SQL este identificat de nume, identificator de


autorizare care indic utilizatorul sau contul care este
proprietarul schemei, descriptorii pentru fiecare element al
schemei bazei de date.

Elementele schemei bazei de date includ tabele, constrngeri,


vederi, domenii.
Conceptul de schem n SQL
O schem este creat cu comanda CREATE SCHEMA care
poate s includ toate definiiile elementelor.
Alternativ, schemei ii poate fi asociat doar numele i
identificatorul de autorizare, iar elementele pot fi definite ulterior.

CREATE SCHEMA VLAICU AUTHORIZATION AUREL;

n general, nu toi utilizatorii sunt autoriza i sa creeze scheme


sau elemente n schem.

Privilegiile pentru a crea scheme, tabele sau alte structuri


trebuie explicit acordate utilizatorilor sau conturilor de ctre DBA
sau administratorul de sistem.
Conceptul de catalog n SQL
n SQL2 a fost introdus conceptul de catalog care reprezint o
colecie de scheme ntr-un sistem de gestiune a bazelor de
date.
Comanda CREATE TABLE
Comanda CREATE TABLE este folosit pentru a specifica o
nou relaie sau tabel cu un nume, o list de atribute i
constrngeri.

Atributele sunt specificate prin numele lor, tipul de date i


constrngeri, cum ar fi NOT NULL, PRIMARY KEY, etc.

Constrngerile asupra atributelor (cheie primar, chei externe,


check, default, not null) pot fi specificate fie la crearea tabelului,
dup ce atributele sunt declarate, sau pot fi adugate mai trziu
folosind comanda ALTER TABLE.
Comanda CREATE TABLE
Schema tabelei poate fi specificat i n comanda de crearea a
tabelei (CREATE TABLE).
CREATE TABLE FIRMA.Angajat ...

n loc de: CREATE TABLE Angajat . . .

Relaiile declarate cu comanda CREATE TABLE sunt numite


tabele de baz sau relaii de baz.

Aceasta nseamn c relaia i tuplurile sunt create i stocate


fizic n SGBD.
Exemplu
Create table Angajat
( Nume char(15) not null,
Salariu int not null,
Data_ang date
)
Creeaz tabela Angajat, cu 3 cmpuri:
Nume tip caracter, dimensiune 15 caractere
Salariu tip ntreg
Data_ang- tip dat
Exemplu
Create table elev
( Nume char(20),
Clasa char(3),
Medie dec(5,2),
Baiat boolean
)
CREATE TABLE elev (nume char(20), clasa char(3), medie
dec(5,2), baiat boolean)
Constrngeri
Constrngerile de baz n SQL pot fi descrise ca i parte a
definiiei tabelelor i includ:
constrngeri de cheie primar,
constrngeri de cheie extern,
resctricii pe domeniile atributelor i NULL,
Constrngeri DEFAULT, UNIQUE, CHECK,
constrngeri pe tuplurile unei relaii.
Constrngeri - NOT NULL
Deoarece SQL permite NULL ca si valoare pentru atribute,
constrngerea NOT NULL poate fi specificat dac valorea
NULL nu este permis pentru un anumit atribut.

Aceast constrngere este ntotdeauna specificat implicit


pentru atributele care sunt parte a cheii primare dintr-o rela ie.

Exemplu: CREATE TABLE angajati ( Nume char(15) NOT null,


Salariu int NOT null, Data_ang date)
Constrngeri - DEFAULT
Este de asemenea posibil definirea unei valori implicite (default
value) pentru un atribut, prin adugarea clauzei DEFAULT
<valoare> la definirea unui atribut.
Valoarea implicit este adugat n fiecare nou tuplu, dac o
alt valoare explicit nu este dat acelui atribut.
Dac nu se specific nici o clauz DEFAULT, valoarea implicit
pentru un atribut este NULL dac acestuia nu i-a fost adugat
constrngerea NOT NULL.
Exemplu: CREATE TABLE elev (nume char(20), clasa char(3),
medie dec(5,2) default 6, baiat boolean)
Obs. Pentru a funciona trebuie creat nainte o baz de date cu
CREATE DATABASE nume
Constrngeri - UNIQUE
Valorile atributului care are constrngerea UNIQUE trebuie sa
fie unice.
Atributul poate avea si valori NULE.

Exemplu: CREATE TABLE elev (nume char(20) unique, clasa


char(3), medie dec(5,2) , baiat boolean)
Constrngeri - CHECK
Un alt tip de constrngere poate restric iona atributul sau
valorile domeniului, folosind clauza CHECK urmat de un
atribut sau definiia unui domeniu.

Exemplu: CREATE TABLE elev2 (nume char(20) unique, clasa


char(3), medie number(5,2) check(medie>1 AND medie <10),
baiat boolean)
Obs. Pentru a funciona trebuie creat nainte o baz de date cu
CREATE DATABASE nume
Constrngeri cheie primar
Deoarece cheile i integritatea referenial (cheile externe) sunt
foarte importante, exist clauze speciale n cadrul comenzii
CREATE TABLE pentru a le putea a specifica.

Clauza PRIMARY KEY specific unul sau mai multe atribute


care alctuiesc cheia primar a unei relaii.

Dac cheia primar este alctuit dintr-un singur atribut, atunci


clauza poate urma imediat dup atribut.
Constrngerile de cheie extern
Integritatea referenial este specificat prin clauza FOREIGN
KEY.
Regulile de integritate referenial pot fi nclcate cnd se
insereaz tupluri noi sau cnd sunt terse tupluri, sau cnd
valorile cheilor primare sau externe sunt modificate.
Aciunea implicit pe care SQL o ia la nclcarea integrit ii
refereniale este de a rejecta operaia care a cauzat nclcarea
integritii. Proiectantul bazei de date poate specifica explicit
aciunea alternativ pe care o poate lua SQL cnd integritatea
referenial este nclcat:
ON DELETE or ON UPDATE SET NULL
ON DELETE or ON UPDATE CASCADE
ON DELETE or ON UPDATE SET DEFAULT

You might also like