Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




SQL (limbaj structurat de interogare) Ce este SQL?

sql


ALTE DOCUMENTE

FIsĂ DE LUCRU "INDEXAREA, OPERAŢII CU TABELE INDEXATE"
SUBIECTE PROPUSE Fox PRo
Programarea bazei de date : Evidenta orelor suplimentare
OmniMEDICO - Baze de Date - administrarea unei retele piramidale de produse naturiste
Se considera o firma care are ca obiect de activitate intermedierea vanzarilor imobiliare
Baze de date distribuite
Notiuni generale privind bazele de date
Baze de date-Visual FoxPro
Limbaje relationale de manipulare a datelor

SQL (limbaj structurat de interogare)

Ce este SQL?

SQL (limbaj structurat de interogare) este limbajul standard pentru sistemele de gestionare a bazelor de date relationale, definit de ANSI (American National Standards Institute).

SQL este un limbaj neprocedural foarte simplu, dar performant, pentru comunicarea cu serverul Oracle. Toate operatiile executate în baza de date Oracle sunt efectuate folosind instructiuni 424d316e SQL.



SQL poseda un set cuprinzator de comenzi pentru o mare diversitate de sarcini, printre care:

Interogarea datelor

Actualizarea, inserarea si eliminarea datelor

Crearea, modificarea si eliminarea obiectelor bazelor de date

Controlul accesului la baza de date

Asigurarea integritatii si consistentei datelor

O instructiune SQL este un set de directive care specifica serverului Oracle sa efectueze o actiune. Aceste instructiuni contin cuvinte rezervate si au o sintaxa specifica. O instructiune SQL incompleta nu poate fi executata; la întâlnirea unei astfel de instructiuni, programul Oracle returneaza o eroare.

Instructiunile SQL se împart în urmatoarele categorii:

Instructiuni DML (Data Manipulation Language - limbaj de manipulare a datelor)

Instructiunile SQL interogheaza sau manipuleaza obiecte existente în schema. De exemplu, ele va permit sa inserati noi Unii într-un tabel sau într-o vedere.

Instructiuni DDL (Data Definition Language -- limbaj de definire a datelor)

Instructiunile DDL definesc sau modifica structura obiectelor din schema. De exemplu, pentru crearea unui tabel, veti folosi instructiuni DDL.

Instructiuni pentru controlul tranzactiilor

Aceste instructiuni gestioneaza toate modificarile efectuate de instructiunile DML. De exemplu, instructiunile pentru controlul tranzactiilor safveaza datele.

Instructiuni SQL încapsulate

Instructiunile SQL încapsulate încorporeaza instructiuni DML, DDL si instructiuni pentru controlul tranzactiilor într-un program scris într-un limbaj procedural. De exemplu, o instructiune SQL încapsulata va permite sa creati si sa eliberati cursori.

Instructiuni pentru controlul sistemului

Exista o singura instructiune pentru controlul sistemului. Instructiunea alter session este utilizata pentru a termina executia proceselor si pentru a gestiona alti parametri de sistem.

Instructiuni pentru controlul sesiunii

Instructiunile pentru controlul sesiunii gestioneaza proprietatile sesiunii unui utilizator. De exemplu, veti folosi instructiuni pentru controlul sesiunii pentru a activa si dezactiva roluri.

De ce se utilizeaza limbajul SQL?

SQL este un limbaj foarte performant de pe urma caruia beneficiaza toate tipurile de utilizatori ai bazelor de date Oracle, si anume:

Administratorii bazei de date

Creatorii de aplicatii

Administratorii de securitate ai bazei de date

Utilizatorii finali

SQL este un limbaj foarte flexibil care va permite sa dezvoltati programe performante. SQL va permite sa lucrati cu grupuri mari de date. în plus, limbajul SQL permite utilizarea rezultatelor unei interogari ca date de intrare pentru o alta instructiune de interogare.

Limbajul SQL va scuteste de efortul de a stabili metoda corecta de acces. Sistemul Oracle utilizeaza propriile capacitati de optimizare pentru a determina cele mai rapide si eficiente mijloace de accesare a datelor. Acest lucru simplifica aplicatiile si reduce eforturile de proiectare.

Prin definirea limbajului SQL ca unic limbaj de accesare a bazei de date, programul Oracle elimina compromisurile potentiale referitoare la securitate si la date.

Cum se utilizeaza limbajul SQL

Limbajul SQL este folosit pentru a crea si a manipula toate obiectele Oracle. Aceste obiecte includ tabele, vederi, grupuri, instantanee, secvente, sinonime, roluri si spatii-tabel.

Paragraful urmator contine informatii de referinta despre elementele de daza ale limbajului SQL.

Stilul si structura limbajului SQL

Limbajul SQL reprezinta mijlocul principal de comunicare cu baza de date Oracle. Ca atare, pentru îmbunatatirea comunicarii cu baza de. date Oracle trebuie întelese câteva stiluri si structuri, printre care:

Programul SQL*Plus trateaza comenzile dumneavoastra în mod nediferentiat indiferent daca sunt tastate cu majuscule sau cu litere mici.

Singura exceptie o reprezinta cazul în care se efectueaza o comparatie.

Instructiunile SQL încep cu comanda SQL, urmata de restul instructiunii.

De exemplu, urmatoarea instructiune SQL foloseste comanda SQL drop table pentru a elimina din baza de date obiectul-tabel ang:

DROP TABLE ang;

Atunci când serverul Oracle genereaza un cod de eroare, acesta are urmatoarea structura:

error: cod eroare: descriere eroare

Denumirea obiectelor

Multe dintre obiectele Oracle sunt compuse din parti pe care trebuie sa le denumiti atunci când creati obiectul. De exemplu, coloanele tabelelor si secventele sunt denumite în timp ce sunt create. Limbajul SQL impune o serie de reguli privind denumirea obiectelor. Regulile urmatoare sunt valabile pentru numele obiectelor, precum si cele ale utilizatorilor bazei de date:



Numele trebuie sa aiba între 1 si 30 de octeti. Numele bazelor de date sunt limitate la opt octeti; legaturile bazelor de date pot avea pâna la 128 de octeti.

Numele nu pot fi încadrate între ghilimele simple (apostroafe).

Nu se face distinctie între majuscule si litere mici.

Numele pot contine numai caractere alfanumerice si caracterele _, $ si #.

Numele legaturilor bazelor de date pot contine si caracterele. si @. Numele trebuie sa înceapa cu un caracter alfabetic'.

Un nume nu poate fi un cuvânt rezervat Oracle sau SQL.

Numele trebuie sa fie unic în propriul spatiu al numelor. Fiecare dintre urmatoarele aliniate reprezinta un singur spatiu al numelor. Toate obiectele enumerate într-un anumit aliniat sunt continute în respectivul spatiu al numelor. Aceasta înseamna, de exemplu, ca un tabel si o vedere se gasesc în acelasi spatiu al numelor drept pentru care nu pot avea nume identice.
Spatiile-tabel se gasesc în alt spatiu al numelor decât indecsii si prin urmare pot avea nume identice.

Tabele, vederi, secvente, instantanee, pachete, sinonime private, proceduri de sine statatoare si functii

Indecsi

Restrictii

Grupuri

Declansatori

Legaturi private de baze de date

Legaturi publice de baze de date

Spatii-tabel

Segmente de revenire

Sinonime publice

Rolurile utilizatorilor

Un nume poate fi încadrat între ghilimele duble. Iata câteva motive pentru folosirea ghilimelelor duble:

Daca numele contine blancuri

Daca vreti ca programul sa faca deosebirea între majuscule si literele mici

Daca vreti sa începeti numele cu orice altceva decât un caracter alfabetic

Este recomandabil ca numele pe care îl atribuiti unui obiect sa fie descriptiv si sugestiv. De asemenea, pentru a descrie acelasi element, este bine sa folositi acelasi nume de coloana în toate tabelele.

Referirea obiectelor Oracle

Sintaxa generala pentru referirea unui obiect sau a unei parti a unui obiect este

schema.nume_obiect.nume_parte_obiect@legatura_baza_de_date

Schema este locul în care se gaseste obiectul. Acest identificator va permite sa faceti referire la un obiect situat în baza de date a altui utilizator. Daca omiteti acest identificator, Oracle considera ca obiectul se gaseste în schema dumneavoastra.

nume obiect este numele obiectului la care se face referire.

nume_parte obiect va permite sa faceti referire la o parte a unui obiect, cum ar fi o coloana a unui tabel. Acest parametru este optional.

legatura_baza_de_date este numele bazei de date care contine obiectul. Aceasta nu poate fi baza dumneavoastra de date - este baza de date a altui utilizator, pe care vreti sa o accesati. Daca este omis acest parametru, programul Oracle presupune ca faceti referire la un obiect din propria dumneavoastra baza de date.

Intr-o instructiune SQL care face referire la un obiect Oracle, programul evalueaza contextul instructiunii SQL si localizeaza obiectul în spatiul numelor corespunzator. Daca programul Oracle nu reuseste sa gaseasca obiectul în spatiul numelor corespunzator, returneaza o eroare. Programul Oracle încearca întotdeauna sa localizeze obiectul în schema dumneavoastra înainte de a lua în considerare spatiile numelor din afara schemei dumneavoastra. Daca obiectul nu se gaseste în schema dumneavoastra, programul Oracle cauta în spatiul numelor care contine sinonimele publice. Daca obiectul nu este gasit, Oracle returneaza un mesaj de eroare.

Analiza instructiunilor SQL

Atunci când o aplicatie lanseaza o instructiune SQL, reprezentarea analizata sintactic a instructiunii SQL este încarcata în zona SQL partajata din server. Analiza presupune efectuarea urmatoarelor operatii:

Verificarea corectitudinii sintactice si semantice a instructiunilor SQL.

Stabilirea faptului daca procesul care a lansat instructiunea SQL poseda privilegiile necesare pentru executarea ei.

Consultarea dictionarului de date în vederea analizarii definitiilor tabelului si ale coloanelor.



Instituirea de blocaje asupra obiectelor necesare astfel încât definitiile acestora sa nu se modifice în timpul executiei.

Determinarea planului optim de executie care urmeaza sa fie utilizat în momentul executarii instructiunii.

Analiza are loc numai daca nu exista nici o alta instructiune SQL identica în zona SQL partajata. Daca în aceasta zona exista deja o copie, sistemul Oracle foloseste copia din memorie în loc sa analizeze copia codului sursa pe care încercati sa o executati, în cazul în care nu exista nici o copie, sistemul Oracle trece la analiza instructiunii. Analiza instructiunii are loc o singura data, indiferent de câte ori este executata instructiunea. Programul Oracle re-executa instructiunea analizata la fiecare referire ulterioara a instructiunii respective.

Validarea sintactica si semantica efectuata în timpul analizei detecteaza numai erorile care pot fi gasite înaintea executiei instructiunii. Exista însa erori pe care analiza nu le poate detecta. De exemplu,' erorile legate de conversia datelor nu pot fi depistate înainte de executia instructiunii.

Procesarea interogarilor

Procesarea interogarilor este putin diferita de a altor tipuri de instructiuni SQL deoarece interogarile returneaza date sub forma de rezultate daca executia instructiunii s-a încheiat cu succes. Instructiunile non-interogative returneaza fie "succesul" fie "esecul", însa o interogare returneaza linii multiple de date. Aceste date sunt prezentate utilizatorului în format tabelar.

Interogarile pot deveni interogari implicite în anumite instructiuni SQL. De exemplu, fiecare dintre instructiunile urmatoare necesita o interogare ca parte a executiei:

update

delete from

create table as

Executia instructiunilor SQL

Lista urmatoare specifica fazele executiei unei instructiuni SQL:

Este creat automat un cursor în asteptarea executiei instructiunii SQL.

Programul Oracle analizeaza instructiunea SQL.

În cazul în care rezultatele unei interogari nu sunt cunoscute, programul Oracle determina caracteristicile (tipul datelor si lungimea) datelor rezultatului.

Programul Oracle defineste domeniile datelor de iesire. Acestea includ locatia, dimensiunea si tipul de date ale variabilelor care urmeaza sa primeasca fiecare dintre valorile preluate.

Programul Oracle efectueaza legarea tuturor variabilelor, cu alte cuvinte, defineste valoarea fiecarei variabile. De exemplu, programul Oracle stabileste valoarea ang_nume în timpul procesului de legare.

În sfârsit, programul Oracle executa instructiunea SQL.

Liniile de date sunt selectate (si ordonate daca este necesar) si fiecare preluare succesiva citeste o noua linie a rezultatului pâna în momentul citirii tuturor liniilor.

SQL si SQL*Plus

SQL este limbajul nativ al serverului Oracle. Este limbajul folosit pentru comunicarea cu baza de date. ANSI a adoptat limbajul SQL drept standard pentru sistemele de gestiune a bazelor de date relationale.

SQL*Plus este un instrument al serverului Oracle care recunoaste si executa instructiuni SQL. SQL*Plus nu este o extensie sau un superset al limbajului SQL.

SQL*Plus reprezinta una dintre cele mai comune cai de comunicare interactiva cu baza de date Oracle. Unul dintre avantajele SQL*Plus este ca puteti sa editati sau sa salvati comenzi SQL care se gasesc în tamponul SQL.

Tamponul SQL este o portiune a memoriei gestionate de SQL*Plus care stocheaza o singura comanda SQL la un moment dat. Aceasta comanda SQL ramâne în tamponul SQL pâna când este lansata o noua comanda.

Procesarea vectoriala a comenzilor SQL

Ori de câte ori aplicatia dumneavoastra transmite o instructiune serverului Oracle, aplicatia efectueaza un apel de functie. Aceste apeluri de functii necesita procesari suplimentare care conduc la scaderea performantelor serverului. Daca aceste apeluri sunt efectuate în retea, scaderea performantelor poate fi semnificativa.

Procesarea vectoriala permite aplicatiei dumneavoastra sa execute o singura instructiune SQL de mai multe ori cu un singura apelare a programului Oracle. De exemplu, folosind procesarea vectoriala, aplicatia dumneavoastra poate efectua un singur apel pentru a executa o instructiune SQL de 50 de ori. In lipsa procesarii vectoriale, aplicatia dumneavoastra ar trebui sa lanseze aceasta instructiune SQL de 50 de ori. Prin reducerea numarului de apelari ale programului Oracle, se reduc procesarile suplimentare si cresc performantele serverului.

Instrumentele Oracle cum sunt SQL*Forms, SQL*Plus si SQL*Loader utilizeaza automat procesarea vectoriala.

Partajarea instructiunilor SQL

Programul Oracle detecteaza daca doua sau mai multe aplicatii transmit serverului instructiuni SQL identice. Atunci când programul receptioneaza o instructiune SQL duplicat, el nu analizeaza aceasta a doua instructiune SQL.

Programul consulta zona SQL partajata pentru a detecta instructiuni identice. Aceste instructiuni pot proveni de la aplicatii, de la utilizatorii interactivi sau chiar de la instructiuni SQL recursive.

Atunci când sunt detectate instructiuni SQL duplicate, prima aparitie a instructiunii respective este utilizata în comun de toate celelalte procese care au nevoie de ea. Utilizarea zonei SQL partajate reduce gradul de utilizare a memoriei serverului bazei de date, ducând la îmbunatatirea performantelor.

Rezumat

SQL este singurul limbaj de comunicare cu baza de date Oracle. Acest limbaj poseda propria structura si sintaxa, dupa cum a fost ilustrat în acest capitol.

Limbajul SQL faciliteaza interactiunea cu baza de date. El va permite sa lucrati cu obiectele de nivel înalt ale schemei în locul liniilor individuale. In plus, limbajul SQL limiteaza magistralele prin intermediul carora puteti interactiona cu serverul, îmbunatatind astfel securitatea serverului si reducând' riscul compromiterii datelor.

Puteti comunica interactiv cu baza de date Oracle prin folosirea limbajului SQL. în plus, chiar aplicatiile dumneavoastra utilizeaza limbajul SQL pentru a accesa baza de date. Folosirea limbajului SQL este simpla; exista doar câteva reguli care trebuie respectate la crearea instructiunilor SQL, lucru care sporeste flexibilitatea si puterea acestor instructiuni.




Document Info


Accesari: 7758
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )