Sunteți pe pagina 1din 6

Sectiunea 16:folosirea clauzelor Lucrul cu randurile, coloanele si caracterele Pentru inceput o sa incerc sa explic descrierea unor functii, comenzi

uzuale de care ne tot vom lovi pe parcursul orelelor urmatoare. Una din aceste comenzi poarta numele de ,,describe. Folosim DESCRIBE pentru a afisa structura unui tabel. DESCRIBE <nume_tabel> Describe are rolul de a returna numele tabelului, indexul, comentariile, precum si tipurile de date, cheile primare cat si alte informatii pe care le poate contine tabelul respectiv. De exemplu avem urmatorul tabel. Tabel departamente Nume department_id departament_nume manager_id locatie_id Tip Numar variable 30 numar numar 6 4 0 0 Lungime Precizie 4 Scara 0 Chei primare 1 Comentarii

Id-ul numelui departamentului Id-ul managerelui Id_locatie unde departamentul este localizat. Chei straine pentru id_locatie, coloana din tabel

Folosind aceasta comanda afisam informatiile continute de tabel si aici ma refer la tabel, nume, tip, lungime, precizie, scara, chei primare si comentarii.(partea de sus) Operatorul de inlantuire Prin inlantuire trebuie sa intelegem faptul ca linkuim, conectam, inlantuim in serie. Simbolul pentru inlantuire este format din doua bare verticale Coloanele(barele) de pe fiecare parte a operatorului sunt intotdeauna in perechi. Sintaxa pentru operatorul de inlantuire este: Sir1 || Sir2 || Sir_n Atunci cand valorile sunt inlantuite, valoarea rezultata este un sir de caractere. In SQL, operatorul de inlantuire poate lega coloane de alte coloane, expresii matematice, variabile constante pentru a forma expresii de caractere Operatorul de inlantuire este folosit pentru a creea iesiri de text lizibil. Probabil nu ati inteles mare lucru dar cu exemplul urmator o sa se clarifice.

(SCRIU PE TABLA) SELECT department_id || departament_nume FROM departamente; Dupa cum puteti vedea au aparut informatii noi pe care probabil nu le cunoastem pana in momentul de fata

O sa revin cu explicatii imediat pentru ,,select si ,,from.

(Scriu pe tabla) Sau in acest exemplu: sintaxa folosita creeaza un spatiu intre dpartament_id si dapartament_nume. Deci setul de ghilimele simple creeaza un spatiu intre variabilele columnelor enuntate.
SELECT department_id || ' ' ||department_name FROM departments;

Legaturi si valori literale Prin valoare literala intelegem o data de tip caracter, numar sau data. De exemplu o valoare literala poate fi: -Dolar -O data precum, 1 ianuarie, 2012 -Are un salariul lunar de -etc
Folosind legaturi si valori literale , putem creea iesiri de tip text care arata ca si propozitiile sau citatele, ne mai trebuind de fiecare data sa pierdem timp pentru redactarea intregii sintaxe. Valorile literale pot fi incluse in lista SELECT cu operatorul de legatura. Caracterele si datele trebuie sa fie incluse in setul de ghilimele simple.

(EXEMPLU TABLA )

In acest Exemplu , ,,Mihai castiga 900 dolari pe luna. Sirul de caractere este, are un salar lunar de cat si dolari, acestea sunt exemple de valori literale. Daca am realiza in SQL o expresie pentru a creea citatul scris, expresia propriu zisa ar fi de forma: SELECT nume_angajat ||' are un salar de ' || salar || ' dolari.' AS plata FROM angajati Atentie la spatiile de dupa ghilimele simple pentru a creea expresia corecta si vizibila. Si cand spun asta ma refer la spatiul dintre ghilimele si cuvinte. (Exemplu tabla) De asemenea putem include si numere printre variabilele literale. In exemplul urmator , numarul 2 este inlantuit in sirul de caractere., ,,castiga si ,,ani. Mihai castiga in 2 ani 21600 dolari. Expresia pentru afisarea acestei sintaxe este: SELECT nume_angajat || ' castiga in ' || 2 || ' ani ' || salar*24 || ' dolari.' AS Pay FROM angajati; Asa cum am promis o sa explic si comanda ,,select . Folosind ,,select preluam efectiv informatii din baza de date. O instruciune SELECT trebuie s

includ cel puin o clauz SELECT i o clauz FROM.Clauza WHERE este opional.
SELECT*|{[DISTINCT] coloana | expresia]..} FROM tabel [WHERE conditia/iile)]; ---optionala

Clauza Unde ( Where? ) Atunci cnd preluarea datelor din baza de date, poate fi necesara pentru a limita rnduri de date care sunt prezentate. Folosim pentru aceasta clauza WHERE. O clauz WHERE conine o condiie care trebuie ndeplinit, i-l urmeaz n mod direct clauza FROM ntr-o declaraie SQL.
Sintaxa pentru clauzele where arata cam asa:

WHERE numele_coloana comparison_condition column_names, constants or list of values Examinand exemplul bazei de date din SQL al unui tabel compus din urmatoarele: id 11 22 33 nume Lapusneanu Mihalcea Giangos prenume Mihai Alex Carmen

SELECT id, nume, prenume FROM d_partneri; Aplicand: SELECT nume, prenume FROM d_partners WHERE id=22;

Se va afisa : id 22

nume Mihalcea

prenume Alex

Dup cum ai vzut in exemplul anterior, semnul = poate fi utilizat n clauza WHERE. n plus fa de egal ali operatori de comparaie pot fi folositi pentru a compara o expresie respectiv o valoare: = Egal cu > Mai mare dect > = Mai mare sau egal cu <Mai puin de <= Mai mic sau egal cu <> Nu este egal cu ( diferit)

Operatorii de comparatii Suntem deja familiarizat cu operatori de comparaie, cum ar fi egal cu (=), mai puin de (<) i mai mare dect (>). SQL are ali operatori care se adaug funcionalitate pentru preluarea seturi specifice de date. Acestea includ:

ntre ... i (beetwen, and) N (in) SIMILAR ( like) ntre ... i ,,ntre ... i operator este utilizat pentru a selecta i afia rndurile bazate pe o serie de valori. Atunci cnd este utilizat cu clauza WHERE, ntre ... i condiie va returna o serie de valori ntre limitele specificate inferioare i superioare incluzand ambele valori. In exemplul alaturat baza de date contine titlul cat si anul aparitiei unei melodii sintaxa alaturata va returna valorile specificate. . De asemenea, valoarea cea mai mic se va lista prima.
SELECT titlu, an FROM d_cds WHERE an BETWEEN 1982 AND 2001;

Titlu Beat It Vara nu dorm No woman no cry La grange IN (IN)

an 1982 2012 1974 2001

,,n este, de asemenea, cunoscut sub numele de "starea de membru." Acesta este utilizat pentru a testa dac o valoare este ntr-un set de valori specificat. De exemplu, am putea folosi pentru a identifica elevii ale cror numere de identificare sunt 2349, 7354 sau 4333 sau oameni a cror apel internaional al codului de telefon este:1735, 82 sau 10.
SELECT title, type_code FROM d_songs WHERE type_code IN (77,12);

titlu Somebody that Like Minor Copacelul

id 12 85 12 77

LIKE Ai plecat vreodat cumprturi s cautati ceva ce ati vzut ntr-o revist sau la televizor, dar nu erai sigur de numele exact? E cam la fel cu bazele de date. Un manager stie c numele unui angajat ncepe cu "S", dar nu tie numele angajatului intreg. Din fericire, n SQL, condiia LIKE v permite s selectai rndurile care se potrivesc fie caractere, date sau modele numerice. Dou simboluri (%) i underline (_) - numite metacaractere, pot fi folosite pentru a construi un ir de cutare. Simbolul procent (%) este folosit pentru a reprezenta orice secven de zero sau mai multe caractere.Underline este utilizat pentru a reprezenta un singur caracter. (Exemplu tabla) n exemplul de mai jos, toi angajaii al caror nume ncep cu o oarecare litera urmata de litera "O" i apoi urmat de orice alt numr de litere vor fi afisate. Cosmin, Ioana, Ionut, Monica.

SELECT last_name FROM employees WHERE last_name LIKE '_o%';