Documente Academic
Documente Profesional
Documente Cultură
Crearea Bazelor de Date - SQL Server
Crearea Bazelor de Date - SQL Server
O baz de date SQL Server este compus din trei tipuri de fiiere: un fiier cu
extensia .mdf zero sau mai multe fiiere cu extensia .ndf i unul cu extensia .ldf
n fiierul cu extensia .mdf sunt stocate obiectele bazei de date precum tabelele,
indexii, vederile etc. mpreun cu definiiile lor, fiierele cu extensia .ndf sunt fiiere
secundare ce conin numai date, iar fiierul cu extensia .ldf conine jurnalul de tranzacii.
Orice baz de date are asociat un jurnal de tranzacii. Actualizarea unei nregistrri a
bazei de date presupune memorarea n jurnalul de tranzacii a coninutului nregistrrii
dinainte i dup actualizare. Jurnalul de tranzacii este folosit pentru restaurarea bazei de
date n situaia n care apare o eroare ce necesit anularea sau reluarea unor operaii
nregistrate.
Pentru crearea unei baze de date se folosete comanda Create database care n
form simplificat se prezint conform urmtoarelor exemple:
1)
4)
CREATE DATABASE dbMultiFisier
ON PRIMARY
( NAME = F1,
FILENAME = 'L:\db\Fisier1.mdf',
SIZE = 2MB,
MAXSIZE = 10MB,
FILEGROWTH = 10%),
( NAME = F2,
FILENAME = 'L:\db\Fisier2.ndf',
SIZE = 1MB,
MAXSIZE = 10MB,
FILEGROWTH = 10%),
( NAME = F3,
FILENAME = 'L:\db\Fisier3.ndf',
SIZE = 1MB,
MAXSIZE = 10MB,
FILEGROWTH = 10%)
LOG ON
( NAME = F_Log1,
FILENAME = 'L:\DB\Fisier_Log1.ldf',
SIZE = 512KB,
MAXSIZE = 10MB,
FILEGROWTH = 10%),
( NAME = F_Log2,
FILENAME = 'L:\db\Fisier_Log2.ldf',
SIZE = 512KB,
MAXSIZE = 10MB,
FILEGROWTH = 10%)
Exemplu:
BACKUP DATABASE dbStudeti
TO DISK='g:\dbSalvari\dbStudenti.bak' WITH COMPRESSION
Instalarea unei baze de date se poate face i cu ajutorul comenzii create database
cu folosirea clauzei for attach ca mai jos:
create database dbStd
on
(filename='L:\db\Studenti.mdf')
for attach
10-19
20-28
13
29-38
17
-214,748.3648 pn la +214,748.3647.
Obs. Toate tipurile numerice de date cu excepia money i smallmoney sunt
convertite implicit din iruri de caractere n timpul executrii instruciunilor Insert i
Update.
De exemplu
insert into tabelTest(c1) values('45')
va stoca o valoare aproximativ daca c1 este de tip real, dup cum se observa i
din rezultatul furnizat de urmtoarea fraz select:
select c, cast(c as bigint) from t1
1.234568E+11
123456790528
Crearea tabelelor
Comanda CREATE TABLE permite crearea unei noi tabele. Sintaxa sa este
urmtoarea:
CREATE TABLE denumire_tabel
( denumire_coloan1 tip_de_dat [ constrngere_la_nivel_de_coloan]
[, denumire_coloan2 tip_de_dat [ constrngere_la_nivel_de_coloan] ]
[, constrngere1_la_nivel_de_rand]
[, constrngere2_la_nivel_de_rand ]
)
O constrngere este un mecanism care ne asigur c valorile unei coloane sau ale
unei mulimi de coloane satisfac o condiie dat. Dac nu se specific un nume explicit
pentru constrngere atunci sistemul i atribuie unul nume.
Constrngeri la nivel de coloan
Sintaxa
[Constraint denumire_constrngere] constrngere1 [constrangere2 ]
Constrngerea NULL
Specific faptul c sunt permise valori Null pentru coloana respectiv.
Constrngerea NULL este implicit.
Exemplu:
Constrngerea DEFAULT
Specific o valoare implicit care este atribuit cnd nu se specific o valoare
explicit pentru coloana respectiv
Sintaxa:
DEFAULT expresie_constanta
Exemple:
Data SmallDateTime default getdate(),
CodJudet char(2) default 'AG',
Cantitate numeric(8,3) default 0
Constrngerea IDENTITY
Indic o coloan pentru care SQL Server genereaz n mod automat valori
incremental, unice la nivel de tabel
Exemplu
id_detaliu
id bigint
int identity(101,1)
identity
Primul parametru reprezint valoarea atribuit primei tuple, iar al doilea parametru
reprezint valoarea de incrementare. Parametrii pot lipsi, ei au valoarea implicit 1.
Constrngerea PRIMARY KEY
Impune valori unice i nenule pentru coloana n cauz, coloana reprezint cheia
primar a tabelei
Exemplu:
CodFurnizor char(10) primary key
Constrngerea UNIQUE
Impune valori unice pentru coloana n cauz, coloana reprezint o cheie candidat a
tabelei
Exemple:
marca int unique
CNP char(13) constraint ix_cnp unique
Observatie:
Coloanele supuse unor reguli check pot primi valoarea null dac nu se impune
constrngerea not null.