introducere_in_sql_sectiunile_12_15_16_17
Post on 14-Apr-2016
3 Views
Preview:
DESCRIPTION
TRANSCRIPT
Introducere în SQLAnatomia unei instrucţiuni SQL
Lucrul cu coloane, caractere şi rânduriOperatori de comparare
SortareaFuncţii single-row şi multiple-row
Introducere în SQL
• Structured Query Language este folosit pentru interogarea bazelor de date.
• Cele mai simple dintre comenzile SQL sunt:– Comanda DESCRIBE afişează structura tabelului. Sintaxa este:
DESCRIBE <table name>;– Comanda SELECT * afişează toate liniile unui tabel. Sintaxa:
SELECT * FROM <table name>;– Pentru a obţine un subset al datelor, modificăm instrucţiunea SELECT
astfel:SELECT <column name 1, column name 2, etc.>FROM <table name>WHERE <condition>
Anatomia unei instrucţiuni SQL• Cuvântul cheie este SELECT.• Noţiuni.
– Arithmetic expression– Arithmetic operator– Clause– Column– Column alias– FROM clause– JOIN– NULL– Projection– SELECT clause– Selection– SELECT statement– Statement
Lucrul cu coloane, caractere şi rânduri• DESCRIBE (DESC)• Se foloseşte pentru a afişa structura tabelului: denumirile coloanelor,
tipurile de date ale acestora, dimensiunea, tipul de cheie, dacă acceptă sau nu valori nule şi constrângerile structurale.
DESC departments;
Lucrul cu coloane, caractere şi rânduri
• Adaugarea unei coloane:ALTER TABLE <nume_tabel>ADD (<nume_coloana_noua> <tip>);
• Stergerea unei coloane:ALTER TABLE <nume_tabel>DROP COLUMN <nume_coloana>;
Lucrul cu coloane, caractere şi rânduri
• Inserarea unui rând se realizeaza folosind INSERT INTO <nume_tabel>VALUES (valoare1, valoare2,…);
• Stergerea unui rând:DELETE FROM <nume_tabel>WHERE <nume_coloana>=<valoare>;
Lucrul cu coloane, caractere şi rânduri
• Concatenarea şi alias-urile permit construirea unor şiruri complexe pentru afisarea rezultatelor intr-un mod mai prietenos.
• Se folosesc || , literali între ‘apostrofuri’ şi AS pentru a construi denumirea coloanei de iesire (output).
• 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 PayFROM employees;
Lucrul cu coloane, caractere şi rânduri
• În afară de cazul în care se cere altfel, rezultatul unei interogări SQL va afişa rezultatele fără a elimina rândurile duplicat. Pentru a obţine rândurile o singură dată se foloseşte clauza DISTINCT.
• Folosind clauza DISTINCT, afişarea este ordonată alfabetic, iar la interogările cu mai multe coloane se obţin toate combinaţiile distincte.
Limitarea rândurilor selectate
• Clauza WHERE se foloseşte pentru a efectua o selecţie a rândurilor afişate de interogarea SELECT, pe baza îndeplinirii de către acestea a unei condiţii logice. Logica utilizată este trivalentă (true, false, null), iar clauza WHERE reţine doar rândurile pentru care condiţia are valoarea true.
• Clauza WHERE urmează imediat ca execuţie după instrucţiunea SELECT.
• Nu se poate folosi un alias în clauza WHERE.
Operatori de comparare
• În construcţia unei expresii logice se pot folosi operatorii relaţionali cunoscuţi: <, <=, >, >=, =, < >, !=, ^= (ultimii 3 sunt echivalenţi) precum şi operatorii logici AND, OR, NOT.
• Logica utilizată fiind trivalentă (TRUE, FALSE, NULL), trebuie acordată atenţie situaţiilor în care cel puţin unul din operanzi este NULL: va rezulta totdeauna NULL (“nu ştiu”).
• Nu sunt corecte construcţiile= NULL< > NULL, != NULL, ^= NULL
• În locul lor se folosesc operatoriiIS NULLIS NOT NULL
Operatori de comparare
• Se poate folosi operatorul BETWEEN x AND y pentru a înlocui o construcţie de tipul (>= x) AND (<= y). Performanţa executării instrucţiunii este aceeaşi, se obţine doar un câştig de lizibilitate.
• Apartenenţa unui element la o mulţime poate fi testată cu ajutorul operatorului x IN (a, b, c, …). Există şi combinaţia NOT IN.
• Atenţie la construcţii de tipul x NOT IN (100, 200, NULL), care vor produce totdeauna NULL. Se va folosi NOT NULL.
Operatori de comparare
• Pentru comparaţii generice cu date de tip numeric, dată sau caracter se poate folosi operatorul LIKE.
• Constructorii de expresii-tip folosesccaracterul “%” pentru un şir de 0 sau mai multe caracterecaracterul “_” pentru un singur caracter oarecare
• Pentru a folosi în expresie chiar caracterele “_” sau “%”, acestea vor fi precedate de caracterul ESCAPE “\”.
• Exemplu:SELECT last_nameFROM employeesWHERE last_name LIKE '_o%'
Operatori – ordinea evaluării expresiilor
• Evaluarea expresiilor se face ţinând cont de prioritatea operatorilor şi de ordinea scrierii acestora.
Sortarea rândurilor
• Pentru a sorta rândurile rezultate în urma unei interogări SQL se poate folosi clauza ORDER BY, care se plasează ultima în interogare.
• Exemplu:SELECT employee_id, first_name AS “Nume”FROM employeesWHERE employee_id < 105ORDER BY “Nume”, birth_date;
• Se pot folosi şi mai multe (oricâte, maxim numărul de coloane al tabelului) coloane drept criterii de sortare, primele având prioritate.
Sortarea rândurilor
• Implicit sortarea este ascendentă, dar se poate preciza DESC pentru fiecare criteriu în parte (NULL este ultimul în ordine crescătoare).
• Se poate folosi un alias în clauza ORDER BY.• Coloana după care se sortează nu trebuie
neapărat să facă parte dintre cele returnate de interogarea SELECT.
• Ordinea execuţiei interogării: FROM, WHERE, SELECT, ORDER BY.
Funcţii single-row şi multiple-row• Funcţiile efectuează operaţii asupra datelor de intrare şi produc rezultate
(date de ieşire).• Există două tipuri de funcţii:
– Funcţii single-row, care operează asupra datelor dintr-o singură linie a tabelului, producând un rezultat pentru fiecare linie.
– Funcţii multiple-row (sau funcţii de grup), care operează asupra unor grupuri de linii din tabel şi produc un rezultat pentru fiecare grup de linii.
Funcţii single-row
• Funcţiile single-row efectuează operaţii asupra:– Caracterelor şi şirurilor de caractere
(convertesc litere mici în mari şi invers, concatenează şiruri, extrag subşiruri, calculează lungimea şirului, etc.)
– Numerelor (rotunjesc, trunchiază, calculează restul împărţirii)
– Datelor (ziua curentă, adaugă luni, zile, rotunjesc, fac scăderi, etc.)
– Conversii (între tipul caracter şi tipurile numeric sau dată)
– Generale (verificări şi înlocuiri ale valorilor NULL, expresii condiţionale)
Funcţii multiple-row
• Funcţiile multiple-row operează asupra datelor din mai multe linii şi obţin un rezultat pentru fiecare grup de linii:– AVG calculează media aritmetică a datelor numerice– COUNT returnează numărul de linii– MAX (MIN) calculează valoarea maximă (minimă) a datelor
numerice, calendaristice sau de tip caracter– SUM calculează suma datelor numerice– VARIANCE calculează variaţia datelor numerice– STDDEV calculează abaterea standard a datelor numerice
top related