Standardul
SQL3 (SQL '98) defineste modelul obiect-relational de baze de date.
Structura sintactica: limbajul este compus din
instructiuni (comenzi). O comanda SQL este o secventa de elemente componente (token).
Elementele componente pot fi: cuvinte cheie, identificatori, caractere speciale
si constante (literali).
Acestia au o structura
lexicala identica. Lexical, un cuvant cheie sau un identificator inseamna o
secventa de litere si caracterul '_'.
Din punct de vedere semantic, cuvintele cheie sunt
elemente cu semnificatie fixa in limbaj:
nume de comenzi (clauze): SELECT, INSERT, etc;
tipuri de date: integer, numeric, char, varchar, etc.
Limbajul SQL nu diferentiaza caracterele mari de cele mici:
este case insensitive.
Identificatorii au aceeasi structura lexicala; din
punct de vedere semantic reprezinta nume intr-o comanda si pot fi: nume de
tabele, de coloane, etc. SQL foloseste termenii de tabel, coloana si linie
pentru relatie, atribut si tuplu (cei subliniati sunt cei
folositi in definirea matematica a modelului relational).
Identificatorii sunt:
obisnuiti (simpli): Sectie, ANGAJAT, etc;
delimitati: reprezinta un nume pus intre
ghilimele, care poate sa contina orice fel de caractere. Un identificator
delimitat este folosit, in general, un nume mai mare de tabel.
Cuvintele cheie si identificatorii nu pot fi deosebiti intre
ei decat daca cunoastem limbajul.
Constantele pot fi:
de tip numar intreg: ex 1234 (reprezentate pe 4 octeti);
de tip numar real: ex 12.5, 12e5 (reprezentate de 8 octeti, in formatul double);
de tip sir de caractere: ex "Acesta este un sir";
de tip NULL: constanta speciala, reprezinta
lipsa de informatie.
operatori (+,-,.);
";" termina o comanda;
punctul zecimal (constante reale, codificari ale coloanelor);
separatorii: blank, TAB, CR ; sunt ceruti
uneori intre elemente.
Operatorii SQL: pot
fi reprezentati prin unul sau mai multe caractere speciale (+, <,.) sau prin
cuvinte cheie (AND, OR, NOT, UNION).
Operatorii pot fi clasificati:
operatori binari: au nevoie de doi operanzi;
operatori unari: se aplica unui singur operand si pot fi postfixe sau
prefixe.
Operatori:
aritmetici: +, -, <, <=, <> (!=);
logici: AND, OR, NOT.
Operatorii logici se aplica asupra unor valori ternare (o
valoare ce reprezinta un operand ce poate avea valoare TRUE (1), FALSE (0) si
NULL (lipsa de informatie)).
Nu exista tipul de date boolean asupra caruia sa se
aplice operatorii logici dar operatorii de comparatie returneaza o valoare
booleana.
Operatorii de comparatie evalueaza orice expresie la o
valoare logica (bool): TRUE, FALSE. Tipul boolean exista insa incepand
din SQL3. Operatorii de comparatie pot fi:
O expresie SQL este o expresie formata din operanzi,
operatori si paranteze. Operatorii, in general, sunt nume de coloane (se va
folosi valoare atributului definit de acea coloana) sau o constanta.
Orice expresie se evalueaza la o valoare care poate
fi apoi folosita in alte operatii.
Functiile SQL:
functii totalizatoare (de grupare): calculeaza anumite valori pentru coloane din tabele: SUM, AVE, MIN, MAX, .;
functii matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;
functii pentru siruri;
functii pentru date calendaristice;
functii pentru conversii.
Tipurile de date(SQL2): sunt destul de putine:
NUMERIC
reprezinta cu o precizie si scala stabilita de implementarea limbajului:
Numeric(3)=precizie 3;
Numeric(7,3)=precizie 7; scala 3;
Numerele in acest format sunt memorate ca secventa de cifre,
iar atunci cand se opereaza cu ele, precizia de calcul este mult mai mare decat
la cele in virgula flotanta;
Domenii de definitie: SQL nu asigura exact notiunea matematica. In SQL2 se folosesc ca domenii ale atributelor tipurile fundamentale ale limbajului. Ceea ce lipseste la o astfel de definitie este semantica (intelesul).
SQL este foarte sarac in precizarea semanticii domeniilor folosite pentru atribute.
Exista doua tipuri de comenzi:
SQL asigura toate operatiile care se considera necesare intr-o baza de date.
Vederile permit restrictionari diferentiate ale drepturilor utilizatorilor. Vederile sunt intotdeauna la zi, o modificare in tabelul de baza se vede si in vedere.
Definirea vederilor reprezinta o imixtiune a nivelului utilizator in nivelul conceptual.
CREATE TABLE nume_tabel(
nume_col1 tip_date [constrangeri_coloana],
nume_col2 tip_date [constrangeri_coloana],
.
nume_coln tip_date [constrangeri_coloana]);
Obs:
Ex:
Sectie (Numar, Nume, Buget);
Angajat(Nume, Prenume, Data Nasterii, Adresa, Functia, Salariul)
CREATE TABLE sectie(
Numar integer,
Nume varchar(20),
Buget numeric(12,2));
CREATE TABLE angajat(
Nume varchar(20),
Prenume varchar(20),
DataNasterii DATE,
Adresa varchar(20),
Salariul numeric(6,2));
DROP TABLE nume_tabel;
Sterge complet tabelul
ALTER TABLE nume_tabel..
Se pot sterge coloane, se pot adauga coloane, etc.
CREATE VIEW nume_vedere AS SELECT..
Rezultatul selectiei reprezinta vederea respectiva.
DROP VIEW nume_vedere;
Sterge complet vederea.
SELECT
, cea mai importanta comanda de manipulare a datelor. Reprezinta comanda de interogare de baza de date. Este o instructiune foarte puternica, folosita si in alte scopuri nu numai pentru interogare.
SELECT [DISTINCT] lista_coloane FROM lista_tabele WHERE conditie [clauze_secundare];
Exista trei clauze (parti) principale ale comenzii:
Clauza SELECT: este urmata de o lista de coloane care vor fi coloanele rezultatului. Rezultatul unei comenzi SELECT este, de regula, un tabel;
Clauza FROM introduce numele unuia sau mai multor tabele. Rezultatul va contine tupluri ale produsului cartezian ale tuturor tabelelor date in clauza FROM, pe coloanele indicate de clauza SELECT care respecta conditia introdusa de clauza WHERE;
Conditia din WHERE evalueaza la o valoare booleana (TRUE, FALSE). In rezultat se admit acele tupluri pentru care conditia este verificata. Clauza WHERE este optionala (!!). Obs:
Suita de tabele trebuie sa fie astfel data incat toate coloanele date in lista sa fie gasite in acele tabele;
Numele coloanelor din lista de coloane trebuie sa fie unice. Daca nu sunt unice, se diferentiaza fie prin denumire, fie prin calificare;
"*" pentru clauza SELECT inseamna toate coloanele posibile.
Ex:
SELECT * FROM sectie;
SELECT * FROM sectie, angajat; = corect, desi avem nume de
coloane identice, SQL stie sa le diferentieze
SELECT Nume, Nume, Prenume, Salariu,. ; = eroare
SELECT sectie.Nume, angajat.Nume, Prenume, Salariu FROM
sectie, angajat; = corect
SELECT Nume, Prenume FROM angajat WHERE Salariu>=1800;
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |