Академический Документы
Профессиональный Документы
Культура Документы
Obiective
Comanda SELECT extrage informatii din bazele de date. Folosind comanda SELECT , poti face
urmatoarele :
SELECTIE (SELECTION): poate fi folosita pentru a alege liniile de care ai nevoie din tabelele
de date. Poti folosi criterii diferite de selectie limitind ceea ce vrei sa vezi.
PROIECTARE (PROJECTION): poate fi folosita pentru a alege coloanele din tabele de care ai
nevoie in interogarea rezultat. Poti alege oricate coloane de tabele ai nevoie.
COMBINAREA (JOIN) : poate fi folosita pentru a uni datele aflate in tabele diferite prin
crearea unei legaturi intre coloanele tabelelor de unde provin datele. Vei invata mai multe
despre COMBINARE intr-o lectie ulterioara.
1
De exemplu, SELECT * FROM emp este o instructiune SQL.
SQL> SELECT *
2 FROM dept;
2
Poti deasemenea afisa toate coloanele din tabela scriind toate coloanele dupa cuvantul cheie
SELECT. De exemplu, urmatoarea instructiune SQL, ca in exemplul din slide, afiseaza toate
coloanele si toate liniile din tabela DEPT.
DEPTNO LOC
------ -------- -- --------- -----------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON
LOC DEPTNO
----- ----- ---------------------
NEW YORK 10
DALLAS 20
CHICAGO 30
BOSTON 40
Aliniere implicita
Stinga – date calendaristice si caractere
Dreapta – date numerice
Afisarea implicita : Litere mari
3
ENAME HIREDATE SAL
----- -------- ------ ------- ----- - -------------
KING 17-NOV-81 5000
BLAKE 01-MAY-81 2850
CLARK 09-JUN-81 2450
JONES 02-APR-81 2975
MARTIN 28-SEP-81 1250
ALLEN 20-FEB-81 1600
Capul de coloana de date calendaristice sau caractere poate fi trunchiat, dar capul de coloana
numerica nu poate fi trunchiat. Coloanele cap de tabel sunt afisate implicit cu litere mari. Tu poti
rescrie titlul coloanelor cu un alias. Folosirea alias-urilor va fi prezentata intr-o lectie ulterioara.
Expresii aritmetice
Operator Descriere
+ Adunare
- Scadere
* Inmultire
/ Impartire
Expresii aritmetice
E posibil sa ai nevoie sa modifici felul in care sa afisezi datele, executind calcule . Acest
lucru este posibil utilizind operatiile aritmetice. Expresiile aritmetice pot contine nume de coloane,
constante numerice si operatori aritmetici.
Operatori aritmetici
In tabelul de mai sus gasiti operatorii aritmetici disponibili in SQL. Poti folosi acesti
operatori in orice clauza SQL exceptind clauza FROM.
4
Folosirea operatorilor aritmetici
In exemplul dat s-a folosit operatorul adunare pentru a mari salariile cu 300$ pentru toti
angajatii si afisarea noii coloane SAL+300 la iesire. In urma adunarii coloana rezultat (SAL+300)
nu este o noua coloana in tabela EMP; aceasta este doar pentru afisare. Implicit, denumirea noii
coloane vine de la operatia care a generat-o, in acest caz SAL+300.
NOTA: SQL*Plus ignora spatiile din fata si din spatele operatorilor aritmetici.
Prioritatea operatorilor
* / + -
Prioritatea operatorilor
Daca o expresie aritmetica contine mai mult de un operator, inmultirea si impartirea sunt
evaluate primele. Daca operatorii folositi intr-o expresie sunt de aceeasi prioritate, evaluarea se va
face de la stinga la dreapta. Poti folosi parantezele pentru a forta expresia din paranteze sa fie
evaluata prima.
NOTA Folosirea parantezelor pentru a intari ordinea fireasca a operatiilor va arata astfel :
(12*SAL)+100 operatie care nu va schimba rezultatul.
Folosirea parantezelor
5
Poti modifica regulile precedentei operatorilor folosind parantezele pentru a specifica
ordinea in care operatorii sa fie folositi.
In exemplul dat sunt afisate numele, salariul si compensatia anuala a salariatilor . Aceasta
este formata din salariul lunar plus o prima, totul inmultit cu 12. Datorita parantezelor, adunarea are
prioritate fata de inmultire.
TURNER SALESMAN 0
Valoarea nul
Daca o linie nu are date pentru o coloana particulara, aceasta valoare se numeste nula.
Valoarea nul este nedisponibila, neatribuita, necunoscuta sau inaplicabila. Valoarea nul nu
este aceeasi cu zero sau spatiu. Zero este numar iar spatiul este un caracter.
Coloanele din orice tip pot contine valoarea vida, cu exceptia celor care au fost definite
nenule sau Key primare in coloanele create.
In coloana COMM din tabela EMP, esti atentionat ca doar un vinzator (SALESMAN) poate
cistiga comision. Alti angajati nu sunt indreptatiti sa primeasca comisioane. Valoarea vida
reprezinta un fapt. Trebuie subliniat faptul ca vinzatorul are comisionul 0 nu null.
Daca o coloana dintr-o expresie aritmetica contine valoarea nula, rezultatul este nul. De
exemplu, daca incerci sa executi o impartire la zero, obtii o eroare. Oricum , daca imparti un numar
cu valoarea nula, rezultatul este nul sau necunoscut.
In exemplul de sus , angajatul KING nu este vinzator (salesman) si nu primeste comision.
Deoarece coloana COMM in expresia aritmetica este nula, rezultatul este nul.
6
Definirea alias-urilor pentru coloane
Cind afisam rezultatul unei interogari, SQL* Plus foloseste normal numele coloanei ca si cap de
tabel. In multe cazuri, acest cap de tabel nu este sugestiv si de aici dificultatea de a intelege. Poti
schimba numele coloanei folosind aliasul.
Specifica aliasul dupa numele coloanei in lista SELECT , folosind spatiul ca separator. Implicit,
capul de tabel obtinut prin alias este scris cu litere mari. Daca aliasul contine spatii, caractere
speciale (ca $ sau #), sau au importanta literele mari (mici), scrie aliasul intre ghilimele (“”).
NAME SALARY
-------------- -------------------
………
Primul exemplu afiseaza numele si salariul lunar al tuturor angajatilor. Astfel cuvintul cheie
AS a fost folosit inainte de alias. Rezultatul interogarii trebuie sa fie acelasi daca civintul cheie AS
este folosit sau nu. Un alt aspect este ca name si salary au fost scrise cu litere mici iar afisarea s-a
facut cu litere mari. Deci , implicit capul de coloana apare cu litere mari.
In cel de-al doilea exemplu afisam numele si salariul anual al angajatilor. Deoarece Annual
Salary implica folosirea spatiului, aliasul trebuie scris cu ghilimele. Astfel va fi afisat exact ceea ce
este scris in expresia SELECT.
Operatorul de concatenare
Concateneaza coloanele sau sirurile de caractere cu alte coloane
Este reprezentat de doua bare verticale (||)
Rezulta o coloana care este o expresie caracter
Poti lega coloane la alte coloane, expresii aritmetice sau valori constante pentru a creea expresii
caracter folosind operatorul de concatenare (||). Coloanele de o parte si de alta a operatorului
sunt combinate pentru a face o singura coloana de iesire.
7
SQL> SELECT ename || job AS “Employees”
2 FROM emp;
Siruri de caractere
Un “literal” este un caracter, expresie sau numar inclus in lista SELECT
Valorile literale pentru datele calendaristice si caractere trebuie incluse intre ghilimele simple
Fiecare sir de caractere este afisat o data pentru fiecare rand intors
Exemplul de mai sus afiseaza numele si meseriile tuturor angajatilor. Coloana are titlul Detaliile
angajatului. Observati spatiile dintre ghilimelele simple din instructiunea SELECT. Spatiile
imbunatatesc lizibilitatea iesirii.
In exemplul urmator, numele si salariul fiecarui angajat este concatenat cu un literal pentru a da
randurilor mai mult inteles.
SQL> SELECT ename || ‘: ‘ || ‘1’ || ‘ Month salary = ‘ || sal Monthly
2 FROM emp;
Rinduri duplicate
In mod predefinit interogarile afiseaza toate rindurile, incluzand rindurile duplicate.
SQL*Plus va afisa rezultatul interogarii fara a elimina rindurile duplicate, decat daca ii este
indicat. Exemplul de mai sus afiseaza toate numerele de departamente din tabelul EMP.
Se pot specifica coloane multiple dupa clauza DISTINCT. Aceasta clauza afecteaza toate
coloanele selectate, si rezultatul reprezinta o combinatie de coloane distincta.
8
Interactiunea SQL si SQL*Plus
SERVE
R
SQL*Plus
Raport
Formatat
SQL si SQL*Plus
SQL este un limbaj de comenzi pentru comunicarea cu Serverul Oracle din orice instrument
sau aplicatie. SQL Oracle contine multe extensii. Cand se introduce o instructiune SQL, aceasta este
stocata intr-o parte a memorie numita buffer-ul SQL si ramane acolo pana cand se introduce o noua
instructiune.
SQL*Plus este un instrument Oracle care recunoaste si trimite instructiuni SQL la server
pentru executie si contine propriu limbaj de comenzi.
Caracteristicile SQL
Poate fi folosit de o larga gama de utilizatori, inclusiv cei neprogramatori
Este un limbaj neprocedural
Reduce timpul necesar pentru crearea si mentenanta sistemelor
Este un limbaj cu sintaxa in engleza
Caracteristicile SQL*Plus
Accepta instructiuni ad-hoc
Accepta fisiere cu instructiuni SQL
Furnizeaza un editor in mod linie pentru modificarea instructiunilor SQL
Controleaza setarile de mediu
Formateaza rezultatele interogarilor in rapoarte
Acceseaza bazele de date locale si la distanta
SQL SQL*Plus
Este un limbaj pentru comunicarea cu serverul Recunoaste instructiuni SQL si le trimite la
Oracle pentru accesarea datelor server
Este bazat pe standardul ANSI SQL Este o interfata proprietate Oracle pentru
executarea instructiunilor SQL
Manipuleaza date si definiti de tabele in baze de Nu permite manipularea valorilor in baze de date
date
O instructiune se stocheaza in bufferul SQL pe Este permisa o comanda pe linie si nu este tinuta
una sau mai multe linii in bufferul SQL
Nu are caracter de continuare Are caracterul (-) pentru continuarea unei
comenzi daca aceasta nu incape pe o linie
9
Foloseste un caracter de terminare pentru Nu are nevoie de caractere de terminare. Se
executarea imediat a comenzii executa imediat
Nu pot fi abreviate Pot fi abreviate
Foloseste functii pentru anumite formatari Foloseste comenzi pentru formatari
Sumar SQL*Plus
Te poti loga in SQL*Plus
Poti afla structura unei tabele
Poti edita instructiuni SQL
Poti executa instructiuni SQL din SQL*Plus
Poti salva instructiuni SQL in fisiere
Poti executa fisierele salvate
Poti incarca comenzi din fisier in buffer pentru editare
Comenzi SQL*Plus
Categorie Scop
Mediu Afecteaza comportamentul general al instructiunilor SQL pentru sesiunea
respectiva
Formatare Formateaza rezultatele interogarii
Manipulari de fisiere Salveaza, incarca si ruleaza fisiere de script
Executie Trimite instructiuni SQL din bufferul SQL la serverul Oracle
Editare Modifica instructiuni SQL in buffer
Interactiune Permite crearea si trimiterea variabilelor la instructiuni SQL, afisarea
variabilelor si listarea mesajelor pe ecran
Amestecate Are diferite comenzi pentru conectarea la baza de date, manipularea
mediului SQL*Plus si afisarea coloanelor
Conectarea la SQL*Plus
SQL*Plus se poate apela in functie de tipul sistemului de operare sau a mediului Windows in
care rulezi. Pentru conectarea intr-un mediu Windows:
1. Start -> Programs -> Oracle for Windows NT -> SQL*Plus8.0
2. Se completeaza: username, parola si baza de date
Pentru conectarea intr-un mediu de tip linie de comanda:
1. Te conectezi la masina
2. Lansezi urmatoarea comanda:
Sqlplus [username[/password[@database]]]
unde username = numele utilizatorului din baza de date
password = parola de conectare la baza de date
@database = sirul de conectare la baza de date
Nota: Pentru a nu desconspira parola, se introduce numele utilizatorului si apoi la prompterul
Password se introduce parola si sirul de conectare.
10
Afisarea structurii unei tabele
Se foloseste comanda SQL*Plus: DESC[RIBE] tablename, unde tablename = este numele unei
tabele existente, a unei vizualizari sau sinonim accesibil utilizatorului.
DESCRIBE dept
Se afiseaza informatii despre structura tabelei DEPT. Null? Indica daca o coloana
trebuie sa contina date; NOT NULL indica faptul ca acea coloana trebuie sa contina
date. Type afiseaza tipul de date al coloanei.
Tip de date Descriere
NUMBER(p,s) Valori numerice avand un numar maxim de p cifre, unde s este
numarul de cifre din dreapta virgulei
VARCHAR2(s) Sir de caractere de lungime variabila cu lungime maxima s
DATE Date calendaristice intre 1 ianuarie 4712 i.c. si 31 decembrie 9999 d.c.
CHAR(s) Sir de caractere de lungime fixa s
Nota: Poti introduce doar o singura comanda SQL*Plus la prompterul SQL. Aceste comenzi nu
sunt stocate in bufer. Pentru a continua o comanda pe linia urmatoare se pune (-).
11
@ filename - la fel ca START
ED[IT] - lanseaza editorul si salveaza continutul bufferului intr-un fisier
afiedt.buf
ED[IT] filename - lanseaza editorul pentru editarea continutului unui fisier salvat
SPO[OL] [filename] - stocheaza rezultatul unei interogari intr-un fisier. OFF inchide
OFF | OUT fisierul. OUT inchide fisierul si il trimite la imprimanta sistem
EXIT - iese din SQL*Plus
REZUMAT
Practica
Selectarea tutror datelor din diferite tabele
Descrierea structurii tabelelor
Efectuarea calculelor aritmetice si specificarea aliasurilor de coloana
Folosirea editorului SQL*Plus
12