Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Introducere n SQL
Anatomia unei instruciuni SQL
Lucrul cu coloane, caractere i
rnduri
Operatori de comparare
Sortarea
Funcii single-row i multiplerow
Introducere n SQL
Structured Query Language este folosit pentru
interogarea bazelor de date.
Cele mai simple dintre comenzile SQL sunt:
Comanda DESCRIBE afieaz structura tabelului. Sintaxa
este:
al
datelor,
modificm
DESCRIBE (DESC)
Se folosete pentru a afia structura tabelului:
denumirile coloanelor, tipurile de date ale acestora,
dimensiunea, tipul de cheie, dac accept sau nu valori
nule i constrngerile structurale.
DESC departments;
Exemple:
SELECT first_name ||' ' || last_name AS "DJ on
Demand Clients
FROM d_clients;
SELECT first_name,last_name AS "DJ on
Demand Clients
FROM d_clients;
SELECT last_name ||' has a monthly salary of '
|| salary || ' dollars' AS Pay FROM employees
SELECT last_name ||' has a '|| 1 ||' year salary
of '|| salary*12 ||' dollars' AS Pay
FROM employees;
Operatori de comparare
n construcia unei expresii logice se pot folosi operatorii
relaionali cunoscui: <, <=, >, >=, =, < >, !=, ^= (ultimii 3
sunt echivaleni) precum i operatorii logici AND, OR, NOT.
Logica utilizat fiind trivalent (TRUE, FALSE, NULL), trebuie
acordat atenie situaiilor n care cel puin unul din operanzi
este NULL: va rezulta totdeauna NULL (nu tiu).
Nu sunt corecte construciile
= NULL
< > NULL, != NULL, ^= NULL
n locul lor se folosesc operatorii
IS NULL
IS NOT NULL
Operatori de comparare
Se poate folosi operatorul BETWEEN x AND
y pentru a nlocui o construcie de tipul (>=
x) AND (<= y). Performana executrii
instruciunii este aceeai, se obine doar un
ctig de lizibilitate.
Apartenena unui element la o mulime
poate fi testat cu ajutorul operatorului x IN
(a, b, c, ). Exist i combinaia NOT IN.
Atenie la construcii de tipul x NOT IN (100,
200, NULL), care vor produce totdeauna
NULL. Se va folosi NOT NULL.
Operatori de comparare
Pentru comparaii generice cu date de tip numeric,
dat sau caracter se poate folosi operatorul LIKE.
Constructorii de expresii-tip folosesc
caracterul % pentru un ir de 0 sau mai multe
caractere
caracterul _ pentru un singur caracter oarecare
Pentru a folosi n expresie chiar caracterele _ sau
%, acestea vor fi precedate de caracterul ESCAPE
\.
Exemplu:
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%'
Sortarea rndurilor
Pentru a sorta rndurile rezultate n urma unei
interogri SQL se poate folosi clauza ORDER
BY, care se plaseaz ultima n interogare.
Exemplu:
SELECT employee_id, first_name AS Nume
FROM employees
WHERE employee_id < 105
ORDER BY Nume, birth_date;
Se pot folosi i mai multe (oricte, maxim
numrul de coloane al tabelului) coloane drept
criterii de sortare, primele avnd prioritate.
Sortarea rndurilor
Implicit sortarea este ascendent, dar se
poate preciza DESC pentru fiecare criteriu
n parte (NULL este ultimul n ordine
cresctoare).
Se poate folosi un alias n clauza ORDER BY.
Coloana dup care se sorteaz nu trebuie
neaprat s fac parte dintre cele returnate
de interogarea SELECT.
Ordinea execuiei interogrii: FROM, WHERE,
SELECT, ORDER BY.
Funcii single-row
Funciile single-row
operaii asupra:
efectueaz
Caracterelor i irurilor de
caractere (convertesc litere mici
n mari i invers, concateneaz
iruri, extrag subiruri, calculeaz
lungimea irului, etc.)
Numerelor (rotunjesc, trunchiaz,
calculeaz restul mpririi)
Datelor (ziua curent, adaug
luni, zile, rotunjesc, fac scderi,
etc.)
Conversii (ntre tipul caracter i
tipurile numeric sau dat)
Generale (verificri i nlocuiri ale
valorilor
NULL,
expresii
condiionale)
Funcii multiple-row
Funciile multiple-row opereaz asupra datelor din mai
multe linii i obin un rezultat pentru fiecare grup de linii:
AVG calculeaz media aritmetic a datelor numerice
COUNT
returneaz numrul de linii
MAX (MIN) calculeaz valoarea maxim (minim) a
datelor numerice, calendaristice sau de tip caracter
SUM calculeaz suma datelor numerice
VARIANCE calculeaz variaia datelor numerice
STDDEV calculeaz abaterea standard a datelor
numerice