1. Zobraz meno a poziciu z tabulky EMP.
    SELECT e.ename, e.job FROM emp e;
    mena(X,Y):-emp(_,X,Y,_,_,_,_,_).
  2. Zobraz vsetko o zamestnancoch s platom viac ako 2000.
    SELECT * FROM emp WHERE sal > 2000;
    velky_plat(X):-emp(_,X,_,_,_,S,_,_), S>2000.
  3. Zobraz meno a plat zamestnancov z oddelenia s cislom 10.
    riesenie:
    SELECT ename, sal FROM emp WHERE deptno = 10;
    odd10(X,S):-emp(_,X,_,_,_,S,_,10).
  4. Zobraz vsetkych uradnikov (CLERK) z oddelenia s cislom 20.
    SELECT * FROM emp WHERE job = 'CLERK' and deptno = 20;
    uradnici20(X):-emp(_,X,clerk,_,_,_,_,20).
  5. Zobraz vsetkych uradnikov a manazerov.
    urad_man(X):-emp(_,X,clerk,_,_,_,_,_).
    urad_man(X):-emp(_,X,manager,_,_,_,_,_).
  6. Zobraz vsetky oddelenia konciace na S
    SELECT * FROM dept WHERE dname LIKE '%S';
    ??

  7. Zobraz vsetkych zamestnancov aj s ich nazvom oddelenia.
    SELECT e.ename, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno;
    zam_odd(X,D):-emp(_,X,_,_,_,_,_,DN), dept(DN,D,_).
  8. Zobraz vsetkych zamestnancov z DALLASu.
    riesenie:
    SELECT ename FROM emp e, dept d WHERE e.deptno = d.deptno AND d.loc = 'DALLAS';
    zam_dallas(X):-emp(_,X,_,_,_,_,_,DN), dept(DN,_,dallas).
  9. Zobraz vsetkych uradnikov a analytikov z oddelenia RESEARCH.
    riesenie:
    SELECT ename FROM emp e, dept d WHERE e.deptno = d.deptno AND d.dname = 'RESEARCH' AND (e.job = 'CLERK' OR e.job = 'ANALYST');
    SELECT ename FROM emp e, dept d WHERE e.deptno = d.deptno AND d.dname = 'RESEARCH' AND e.job IN ('CLERK', 'ANALYST');
    urad_research(X):-emp(_,X,clerk,_,_,_,_,DN), dept(DN,research,_).
    urad_research(X):-emp(_,X,analyst,_,_,_,_,DN), dept(DN,research,_).
  10. Zobraz vsetky oddelenia so zamestnancom s platom menej ako 1000.
    riesenie:
    SELECT dname FROM emp e, dept d WHERE e.deptno = d.deptno AND e.sal < 1000;
    lacne_odd(D):-emp(_,_,_,_,_,S,_,DN), dept(DN,D,_),S<1000.
  11. Zobraz vsetkych zamestnancov ktori nepracuju v CHICAGOu.
    SELECT e.ename FROM emp e, dept d WHERE e.deptno = d.deptno AND d.loc != 'CHICAGO';
    zam_odd(X):-emp(_,X,_,_,_,_,_,DN), \+dept(DN,_,chicago).

  12. Zobraz vsetky oddelenia, ktore maju VSETKYCH zamestnancov s platom viac ako 1000.
    SELECT dname FROM dept d WHERE NOT EXISTS (SELECT * FROM emp e WHERE e.sal < 1000 AND e.deptno = d.deptno)
    drahe_odd(D):-dept(_,D,_),\+lacne_odd(D).
  13. Zobrazit vsetky povolania, ktorych platy sa pohybuju IBA v najvyssej platovej skupine (tj.5).
  14. Vypiste ku kazdemu zamestnancovi (,ktory ma manazera,) jeho manazera.
  15. Vypiste vsetky zamestnania, ktorych predstavitelia sefuju len zamestnancom s platom viac ako 1400.
  16. (Bonus)
    Najst hodnotu maximalneho platu (bez pouzitia agregacnych funkcii!!)