Extras din curs
Capitolul 5. SQL
SQL este un acronim pentru Structured Query Language şi a fost dezvoltat pentru
sistemul de gestiune a bazelor de date System R, creat de IBM Research Laboratory, San Jose,
California la sfârşitul anilor ’70. SQL a fost standardizat şi a devenit limbajul de referinţă pentru
bazele de date relaţionale. SQL nu este numai un limbaj de interogare. El conţine proprietăţile
unui limbaj de definire a datelor, LDD (comenzi pentru definirea unei scheme a unei baze de
date relaţionale) şi proprietăţile unui limbaj de manipulare a datelor, LMD (comenzi pentru
modificarea şi interogarea unei instanţe a unei baze de date relaţionale).
De-a lungul timpului au existat mai multe versiuni de SQL, prima definiţie a unui
standard pentru SQL fiind promulgată în 1986 de ANSI (the American National Standards
Institute). Acest prim standard conţinea multe din elementele de bază pentru formularea
interogărilor, oferind în acelaşi timp un suport limitat pentru definirea schemei şi manipularea ei.
În 1989 a apărut versiunea SQL-89, care adaugă la versiunea anterioară definiţia integrităţii de
referinţă. Următoarea versiune, compatibilă în cea mai mare parte cu versiunea anterioară, dar
care conţinea un număr mare de caracteristici noi, a fost publicată în 1992, fiind cunoscută sub
numele de SQL-2. SQL-3 este cea mai recentă versiune de SQL, compatibilă în totalitate cu
SQL-2, dar nu a fost încă adoptat ca standard.
5.1 Definirea datelor în SQL
În această secţiune vom ilustra utilizarea SQL pentru definirea schemei unei baze de date.
Înainte de aceasta se prezintă notaţiile folosite în sintaxa limbajului. Cuvintele cheie vor fi scrise
cu caractere normale iar variabilele cu caractere italice. De asemenea:
- parantezele unghiulare <***> marchează termenii;
- parantezele pătrate [***] indică faptul că termenii delimitaţi sunt opţionali (pot să nu
apară sau să apară doar o singură dată);
- acoladele {***} indică faptul că termenul din interior poate să nu apară sau poate fi
repetat de un număr arbitrar de ori;
- barele verticale indică faptul că unul dintre termenii delimitaţi de acestea trebuie să apară.
Parantezele rotunde trebuie privite întotdeauna ca şi cuvinte cheie ale SQL.
5.1.1 Domenii elementare
SQL pune la dispoziţie şase familii de domenii elementare, care pot fi utilizate pentru
definirea domeniilor asociate atributelor schemei.
1) Caracter
Domeniul caracter permite reprezentarea caracterelor sau a şirurilor de caractere.
Lungimea şirurilor poate fi fixă sau variabilă. În cazul şirurilor de lungime variabilă trebuie
specificată lungimea maximă. Pentru fiecare schemă este specificat un set de caractere implicit
(latin, chirilic, grecesc etc.). În cazul în care este necesară folosirea a mai mult de un set de
caractere se specifică acest lucru pentru fiecare domeniu.
Sintaxa este:
character [varying] [(Lungime)] [character set NumeSetCaracter]
Dacă lungimea nu este specificată, domeniul reprezintă un singur caracter.
Exemplu - şir de caractere de lungime variabilă, cu lungimea maximă de 1000 caractere,
setul de caractere grecesc
character varying (1000) character set Greek
2) Bit
Acest domeniu, introdus in SQL-2, este utilizat pentru atribute ce pot avea doar două
valori: 0 sau 1. Se foloseşte pentru reprezentarea atributelor de tip flag (specifică dacă un obiect
are sau nu o anumită proprietate). SQL pune la dispoziţie de asemenea domeniul „şir de biţi”,
lungimea şirului fiind specificată ca parametru. Şirurile de biţi sunt utile pentru reprezentarea
unui grup de proprietăţi.
Sintaxa este:
bit [varying] [(Lungime)]
Exemplu - şir de biţi de lungime variabilă, cu lungimea maximă de 100 caractere
bit varying (100)
3) Domenii numerice exacte
Această familie conţine domenii ce permit reprezentarea valorilor exacte, de tip întreg sau
cu parte fracţionară. SQL pune la dispoziţie patru domenii numerice diferite:
- numeric [(Precizie [,Scală])]
- decimal [(Precizie [,Scală])]
- integer
- smallint
Domeniile numeric şi decimal reprezintă numere în baza 10. Parametrul Precizie
specifică numărul total de digiţi, iar parametrul Scală indică numărul de digiţi folosiţi pentru
partea fracţionară.
Conținut arhivă zip
- Capitolul 5 - SQL.pdf