21 februarie 2011

Exemple introductive in SQL (SQL*Plus)

* creare tabel
CREATE TABLE nume_tabel (nume_col1 tip, nume_col2 tip, ... )
tipurile pot fi: CHAR, VARCHAR2, NUMBER, DATE, etc

* descriere tabel - info despre coloane si tipul acestora
DESC nume_tabel

* introducere date
INSERT INTO nume_tabel VALUES (val1, val2, ... )
valorile trebuie sa fie conform coloanelor si tipurilor acestora.
- insertia in anumite coloane:
INSERT INTO nume_tabel(colx, coly) VALUES (x, y)

* vizualizare date din tabela
SELECT * FROM nume_tabel
SELECT colx, coly FROM nume_tabel WHERE [conditie]

* modificare date dintr-un tabel
UPDATE nume_tabel SET coloana=valoare WHERE [conditie] and [alta_conditie]

* stergeri
- a unor randuri
DELETE FROM nume_tabel WHERE [conditie]
- completa a tabelului
DROP nume_tabel

* variabile substituite: &var
Variabila se seteaza din consola cu o anumita valoare: DEFINE var=valoare;
ex_1:
DEFINE functie = 'CLERK';
SELECT * FROM emp WHERE job = '&functie';
ex_2:
DEFINE text = '* FROM emp';
SELECT &text;

* rularea de scripturi - se face in consola prin: @'C:\..cale script.\script.txt' [param_1] ... [paramk]

ex: Crearea unei tabele salarii ce are drept coloane nume si salariu. Scriptul va insera doua randuri in tabel: pt primul insert numele si salariul se introduc ca parametri din linia de comanda, pentru al doilea insert se va cere introducerea din tastatura a numelui si a salariului (acesta din urma fiind stelat ***)

insert into salarii(nume,salariu) values ('&1', &2);
accept name char prompt 'numele sefului:';
accept sal number prompt 'salariul sefului:' hide;
insert into salarii(nume,salariu) values('&name', &sal);
undefine name;
undefine sal;
select * from salarii;

ex. Script pt afisarea numelor angajatilor dintr-un tabel care au salariul anual>o valoare intro de la tst. Se selecteaza doar angajatii dintr-un anumit departament.

select ename || '**' || sal from emp where deptno=&1 and sal*12+nvl(comm,0)>=&2;

|| = operator de concatenare
&1 = primul parametru ce reprezinta departamentul dorit
&2 = al doilea parametru ce repr. limita minima a salariului anual
nvl(val1, val2) = inlocuieste val1 cu val2 in cazul in care val1 este NULL

Niciun comentariu: