Sie sind auf Seite 1von 22

Restrikcije i sortiranje podataka

Ciljevi
Poslije kompletiranja ove lekcije trebalo bi se biti u mogunosti da:
Izvre ogranienja slogova pri izvrenju upita Sortiranaju slogovi prema speficinom pogledu na vraene podatke iz DB-a

Oranienje na nivou selekcije


EMPNO 105 106 201 KING ENAME DEPTNO 60 30 30 30 196 204 STEVE KING-I JONES

"vraa sve "vra zaposlene iz odjela 10"

CLARK

30 EMPNO 105 196 201 204 KING ENAME KING-I JONES DEPTNO 30 30 30

CLARK

30

Oranienje slogova pri slekeciji


Za restrikciju vraanja slogova prilikom dohvatanja putem upita iz DB-a koristi se WHERE klauzula WHERE klauzula uvijek slijedi nakon SELECT klauzule upita
SELECT FROM [WHERE [DISTINCT] {*| column [alias], ...} table condition(s)];

WHERE klauzula
SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job='CLERK';

ENAME ---------JAMES SMITH ADAMS MILLER

JOB DEPTNO --------- --------CLERK 30 CLERK 20 CLERK 20 CLERK 10

Stringovi i datumi
Karakterni stringovi i datumi su vrijednosti koji se definiu putem jednostrukih znaka navoda Karakterne vrijednosti su case sensitive Default-ni format za datum je DD-MON-YY
SQL> SELECT 2 FROM 3 WHERE ename, job, deptno emp ename = 'JAMES' ;

Operatori poreenja
Operator

= >

Znaenje Jednako Vee od

>= < <= <>

Vee od ili jednako Manje od Manje od ili jednako

Razliito (!= ima isto znaenje)

SQL> SELECT ename, sal, comm 2 FROM emp 3 WHERE sal<=comm;

ENAME SAL COMM ---------- --------- --------MARTIN 1250 1400

Operator

Ostali operatori poreenja


Znaenje Operator koji povezuje vrijednosti na osnovu def. paterna Jednako NULL vrijednosti Povezuje neku od vrijednosti definisane u listi vrijednosti

IN (lista vrijednosti) LIKE IS NULL

BETWEEN a AND b Izmeu vrijednosti a i b uzimajui u obzir i vrijednosti a i b

SQL> SELECT 2 FROM 3 WHERE

ename, sal emp sal BETWEEN 1000 AND 1500;

ENAME SAL ---------- --------- >= Donje Gornje ogranienje ogranienje MARTIN 1000 TURNER 1250 WARD 1250 ADAMS 1500 MILLER 1300 <=

Operator IN
Putem operatora IN u WHERE klauzuli vraaju se sve one vrijednosti koje su jednake nekoj od vrijednosti u listi vrijednosti
SQL> SELECT 2 FROM 3 WHERE empno, ename, sal, mgr emp mgr IN (7902, 7566, 7788);

EMPNO --------7902 7369 7788 7876

ENAME SAL MGR ---------- --------- --------FORD 3000 7566 SMITH 800 7902 SCOTT 3000 7566 ADAMS 1100 7788

Koritenje LIKE operatora


Pretraivanje validnih vrijednosti u stringovima Uslovi pretraivanja mogu sadravati bilo kakve karakterne vrijednosti i brojeve, pri emu je:
% oznaava nula(0) ili vie znakova _ oznaava jedan (1) znak
SQL> SELECT 2 FROM 3 WHERE ENAME ---------MARTIN JAMES WARD ename emp ename LIKE '_A%';

NULL oparator
Blanko znak - , i nula (0) nije isto to i NULL vrijednost Poreenje sa NULL vrijednostima vri se putem IS NULL oparatora poreenja, a ne putem jednakosti sa nula (0) ili blanko znakom ( ), tj. NULL = ili NULL = 0
SQL> SELECT 2 FROM 3 WHERE ename, mgr emp mgr IS NULL;

ENAME MGR ---------- --------KING

Operator AND OR NOT SQL> 2 3 4

Vraa TRUE ako su obje poredbene komponente vraaju TRUE Vraa TRUE ako ma koja poredebena komponenta ima TRUE Vraa TRUE ako je slijedio uvijet sa FALSE SELECT FROM WHERE AND empno, ename, job, sal emp sal>=1100 job='CLERK';

Znaenje

Logiki operatori

EMPNO --------7876 7934

ENAME ---------ADAMS MILLER

JOB SAL --------- --------CLERK 1100 CLERK 1300

OR operator
OR operator vraa TRUE ako ma koja poredbena komponenta vraa TRUE
SQL> 2 3 4 SELECT FROM WHERE OR empno, ename, job, sal emp sal>=1100 job='CLERK'; JOB SAL --------- --------PRESIDENT 5000 MANAGER 2850 MANAGER 2450 MANAGER 2975 SALESMAN 1250 CLERK 950

EMPNO ENAME --------- ---------7839 KING 7698 BLAKE 7782 CLARK 7566 JONES 7654 MARTIN ... 7900 JAMES ... 14 rows selected.

NOT operator
SQL> SELECT ename, job 2 FROM emp 3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST');

ENAME ---------KING MARTIN ALLEN TURNER WARD

JOB --------PRESIDENT SALESMAN SALESMAN SALESMAN SALESMAN

Red izvrenja 1 2 3 4 SQL> 2 3 4 5

Pravila prvenstva nad operatorima


Operator NOT Svi operatori poreenja AND

OR SELECT FROM WHERE OR AND

ename, job, sal emp job='SALESMAN' job='PRESIDENT' sal>1500; JOB SAL --------- --------PRESIDENT 5000 SALESMAN 1250 SALESMAN 1600 SALESMAN 1500 SALESMAN 1250

ENAME ---------KING MARTIN ALLEN TURNER WARD

Pravila prvenstva nad operatorima


Zagradama se forsiranju prvenstva izvrenja operatora
SQL> 2 3 4 5 SELECT FROM WHERE OR AND ename, job, sal emp (job='SALESMAN' job='PRESIDENT') sal>1500;

ENAME ---------KING ALLEN

JOB SAL --------- --------PRESIDENT 5000 SALESMAN 1600

ORDER BY klauzula
Sortiranje slogova putem ORDER BY klauzule za:
ASCending za vrijednosti od manje ka veoj (default-o podeena vrijednosti pri sortiranju) DESCending za vrijednosti od vee ka manjoj

ORDER BY klauzula dolazi na posljednjem mjestu SELECT izkaza


SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate; ENAME JOB DEPTNO HIREDATE ---------- --------- --------- --------SMITH CLERK 20 17-DEC-80 ALLEN SALESMAN 30 20-FEB-81 ... 14 rows selected.

Sortiranje od veeg ka manjem


SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate DESC; ENAME JOB DEPTNO HIREDATE ---------- --------- --------- --------ADAMS CLERK 20 12-JAN-83 SCOTT ANALYST 20 09-DEC-82 MILLER CLERK 10 23-JAN-82 JAMES CLERK 30 03-DEC-81 FORD ANALYST 20 03-DEC-81 KING PRESIDENT 10 17-NOV-81 MARTIN SALESMAN 30 28-SEP-81 ... 14 rows selected.

Sortiranje po alijas koloni


SQL> SELECT empno, ename, sal*12 annsal 2 FROM emp 3 ORDER BY annsal;

EMPNO ENAME ANNSAL --------- ---------- --------7369 SMITH 9600 7900 JAMES 11400 7876 ADAMS 13200 7654 MARTIN 15000 7521 WARD 15000 7934 MILLER 15600 7844 TURNER 18000 ... 14 rows selected.

U order by klauzuli navode se sve kolone po kojima se vri sortiranje, razdvojene zarezima Soritranje se moe vriti za sve kolone tabele, pa ak i one koje nisu navede u okviru SELECT klauzule
SQL> SELECT ename, deptno, sal 2 FROM emp 3 ORDER BY deptno, sal DESC; ENAME DEPTNO SAL ---------- --------- --------KING 10 5000 CLARK 10 2450 MILLER 10 1300 FORD 20 3000 ... 14 rows selected.

Sortiranje po viestrukim kolonama

Kratak pregled
Prikaz podataka sa promjenom redoslijeda kolona u odnosu na kolone tabele Ogranienja u izvrenju upita putem WHERE klauzule
SELECT FROM [WHERE [ORDER BY [DISTINCT] {*| column [alias], ...} table condition(s)] {column, expr, alias} [ASC|DESC]];

Restrikcije i sortiranje podataka

Das könnte Ihnen auch gefallen