Tag: oracle


Oracle-ing Myself – Lesson 4 Özeti

March 15th, 2009 — 5:23am
SELECT first_name,
  last_name,
  salary
FROM employees
WHERE salary >
  (SELECT salary
   FROM employees
   WHERE last_name = 'Abel')
;
 
 
SELECT first_name,
  last_name,
  salary
FROM employees
WHERE salary < ANY
  (SELECT salary
   FROM employees
   WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';
 
 
SELECT first_name,
  last_name,
  salary
FROM employees
WHERE salary <
  (SELECT MAX(salary)
   FROM employees
   WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';
 
 
SELECT first_name,
  last_name,
  salary
FROM employees
WHERE salary < ALL
  (SELECT salary
   FROM employees
   WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';
 
 
SELECT first_name,
  last_name,
  salary
FROM employees
WHERE salary <
  (SELECT MIN(salary)
   FROM employees
   WHERE job_id = 'IT_PROG')
AND job_id <> 'IT_PROG';
 
 
SELECT employee_id,
  department_id
FROM job_history
WHERE employee_id = 200
UNION ALL
SELECT employee_id,
  department_id
FROM employees
WHERE employee_id = 200;
 
 
SELECT employee_id,
  department_id
FROM job_history INTERSECT
SELECT employee_id,
  department_id
FROM employees;
 
 
SELECT employee_id
FROM employees minus
SELECT employee_id
FROM job_history;
 
 
SELECT employee_id,
  department_id
FROM job_history
WHERE employee_id = 200
UNION ALL
SELECT employee_id,
  department_id
FROM employees
WHERE employee_id = 200;
 
 
SELECT employee_id,
  department_id
FROM job_history INTERSECT
SELECT employee_id,
  department_id
FROM employees;
 
 
SELECT employee_id
FROM employees minus
SELECT employee_id
FROM job_history;
 
 
SELECT location_id,
  department_name "department",
  to_char(NULL) "warehouse location"
FROM departments
UNION
SELECT location_id,
  to_char(NULL) "department",
  state_province "warehouse location"
FROM locations;
 
 
SELECT employee_id,
  job_id,
  salary,
  hire_date
FROM employees
UNION
SELECT employee_id,
  job_id,
  0,
  sysdate
FROM job_history;
 
 
SELECT department_id
FROM departments INTERSECT
SELECT department_id
FROM employees
WHERE job_id <>('ST_CLERK');
 
 
SELECT country_id,
  country_name
FROM countries minus
SELECT DISTINCT x.country_id,
  x.country_name
FROM locations l,
  countries x
WHERE l.country_id = x.country_id
 AND l.location_id IN
  (SELECT DISTINCT location_id
   FROM departments)
;
 
 
--insert tabloyu kilitler! update, delete satırı kilitler.
INSERT
INTO departments(department_id,   department_name,   manager_id,   location_id)
VALUES(280,   'Serdar',   100,   1700);
 
 
 
INSERT
INTO departments(department_id,   department_name)
VALUES(290,   'Serdar 2' );
 
 
rollback;
 
 
 
CREATE TABLE emp2 AS
SELECT *
FROM employees;
 
commit;
 
INSERT
INTO emp2
SELECT *
FROM emp2;
 
 
INSERT
INTO emp2(last_name,      salary,      email,      hire_date,      job_id)
SELECT last_name,
     salary,
     email,
     hire_date,
     job_id
FROM emp2;
 
 
UPDATE emp2
SET salary = 24000
WHERE employee_id = 100;
 
 
UPDATE emp2
SET department_id =
     (SELECT department_id
      FROM employees
      WHERE employee_id = 100)
WHERE job_id = 'AD_ASST';
 
 
DELETE FROM emp2
WHERE employee_id = 101;
 
 
TRUNCATE TABLE emp2;
  • Facebook
  • Twitter
  • StumbleUpon
  • del.icio.us
  • Digg

Comment » | Sql

Oracle-ing Myself – Lesson 3 Özeti

March 15th, 2009 — 3:01am
SELECT department_id,
  job_id,
  AVG(salary)
FROM employees
WHERE SUBSTR(first_name,   0,   1) = 'A'
GROUP BY job_id,
  department_id HAVING AVG(salary) > 5000
ORDER BY department_id,
  job_id;
 
 
SELECT SUM(salary) AS
toplam,
  AVG(salary) AS
ortalama,
  MIN(salary) AS
mini,
  MAX(salary) AS
maxi,
  STDDEV(salary) AS
standartsapma,
  VARIANCE(salary) AS
karakok,
  COUNT(salary) AS
sayi
FROM employees;
 
 
SELECT AVG(nvl(commission_pct,   0)) AS
tumcomisyonlar,
  AVG(commission_pct) AS
nullolmayankomisyonlar
FROM employees;
 
 
SELECT ROUND(MAX(AVG(salary)))
FROM employees
GROUP BY department_id;
 
 
SELECT department_id,
  job_id,
  SUM(salary)
FROM employees
GROUP BY rollup(department_id,job_id) HAVING SUM(salary) > 10000
ORDER BY department_id;
 
 
SELECT department_id,
  job_id,
  SUM(salary)
FROM employees
GROUP BY cube(department_id,job_id) HAVING SUM(salary) > 10000
ORDER BY department_id;
 
 
SELECT COUNT(DISTINCT manager_id)
FROM employees;
 
 
SELECT COUNT(*) AS
"TOTAL",
  COUNT(
CASE to_char(hire_date,   'YY')
WHEN '95' THEN 1
END) "1995",
  COUNT(
CASE to_char(hire_date,   'YY')
WHEN '96' THEN 1
END) "1996",
  COUNT(
CASE to_char(hire_date,   'YY')
WHEN '97' THEN 1
END) "1997",
  COUNT(
CASE to_char(hire_date,   'YY')
WHEN '98' THEN 1
END) "1998"
FROM employees;
 
 
SELECT COUNT(*) AS
"TOTAL",
  SUM(decode(to_char(hire_date,   'YY'),   '95',   1,   0)) "1995",
  SUM(decode(to_char(hire_date,   'YY'),   '96',   1,   0)) "1996",
  SUM(decode(to_char(hire_date,   'YY'),   '97',   1,   0)) "1997",
  SUM(decode(to_char(hire_date,   'YY'),   '98',   1,   0)) "1998"
FROM employees;
 
 
SELECT job_id,
  SUM(
CASE department_id
WHEN 20 THEN salary
END) "Dept 20",
  SUM(
CASE department_id
WHEN 50 THEN salary
END) "Dept 50",
  SUM(
CASE department_id
WHEN 80 THEN salary
END) "Dept 80",
  SUM(
CASE department_id
WHEN 90 THEN salary
END) "Dept 90",
  SUM(salary)
FROM employees
GROUP BY job_id;
 
 
SELECT job_id,
  SUM(decode(department_id,   20,   salary,   0)) "Dept 20",
  SUM(decode(department_id,   50,   salary,   0)) "Dept 50",
  SUM(decode(department_id,   80,   salary,   0)) "Dept 80",
  SUM(decode(department_id,   90,   salary,   0)) "Dept 90"
FROM employees
GROUP BY job_id;
 
 
SELECT *
FROM employees minus
SELECT *
FROM employees
WHERE job_id = 'IT_PROG';
 
 
SELECT *
FROM user_constraints;
--R foreign key
--P primart key
--U unique
--C check
 
 
SELECT employees.last_name,
  employees.department_id,
  departments.department_name,
  locations.city
FROM employees 
JOIN departments ON employees.department_id = departments.department_id 
JOIN locations ON departments.location_id = locations.location_id;
 
 
SELECT e.last_name,
  e.department_id,
  d.department_name,
  l.city
FROM employees e,
  departments d,
  locations l
WHERE e.department_id = d.department_id
 AND d.location_id = l.location_id;
 
 
SELECT department_id,
  department_name,
  location_id,
  city
FROM departments NATURAL JOIN locations;
 
 
SELECT employee_id,
  last_name,
  location_id,
  department_id
FROM employees JOIN departments USING(department_id)
WHERE department_id = 50;
 
 
--and whereden daha performansli çalisir
SELECT e.employee_id,
  e.last_name,
  d.location_id,
  e.department_id
FROM employees e JOIN departments d ON(e.department_id = d.department_id)
 AND d.department_id = 50;
 
 
SELECT e.employee_id,
  e.last_name,
  m.last_name
FROM employees e JOIN employees m ON(e.manager_id = m.employee_id);
 
 
SELECT e.last_name,
  e.department_id,
  d.department_name
FROM employees e RIGHT
OUTER JOIN departments d ON(e.department_id = d.department_id);
 
 
SELECT e.last_name,
  e.department_id,
  d.department_name
FROM employees e,
  departments d
WHERE(e.department_id(+) = d.department_id);
--(+) right outher ise sol tarafa koyuyoruz artiyi
 
 
SELECT e.last_name,
  e.department_id,
  d.department_name
FROM employees e FULL
OUTER JOIN departments d ON(e.department_id = d.department_id);
 
 
SELECT e.last_name,
  e.department_id,
  d.department_name
FROM employees e,
  departments d
WHERE(e.department_id = d.department_id(+))
UNION
SELECT e.last_name,
  e.department_id,
  d.department_name
FROM employees e,
  departments d
WHERE(e.department_id(+) = d.department_id);
 
 
SELECT last_name, department_name
FROM employees CROSS JOIN departments;
 
 
SELECT last_name, department_name
FROM employees, departments;
  • Facebook
  • Twitter
  • StumbleUpon
  • del.icio.us
  • Digg

Comment » | Sql

Oracle-ing Myself – Lesson 2 Özeti

March 11th, 2009 — 1:40pm
SELECT  upper(substr(FIRST_NAME,0,1)) ||'. '|| initcap(LAST_NAME) AS "Özel Ad",
        concat(FIRST_NAME,LAST_NAME), 
        length(LAST_NAME),
        lower(LAST_NAME),        
        instr(LAST_NAME,'s'),
        lpad(SALARY, 6,'0'),
        rpad(EMAIL, 10,'-'),
        REPLACE(LAST_NAME,'i',' I '),
        trim('K' FROM LAST_NAME)
FROM EMPLOYEES
WHERE upper(last_name) = Upper('KiNg')
  OR substr(JOB_ID,4)='PROG';
 
SELECT substr('SERDAR',1,3)
FROM DUAL;
 
SELECT round(45.926,2), round(45.926,-1), round(155.926,-2), 
           round(43.926,-1), round(45.926)
FROM DUAL;
 
SELECT trunc(45.926, 2), trunc(45.926), trunc(45.926,-1)
FROM DUAL;
 
SELECT SALARY, mod(salary,1000), round(salary*1.18)
FROM EMPLOYEES;
 
SELECT sysdate+7,sysdate
FROM DUAL;
 
SELECT HIRE_DATE,round(sysdate-HIRE_DATE) AS GUNSAYISI,
                  round((sysdate-HIRE_DATE)/7) AS HAFTA
FROM EMPLOYEES
ORDER BY GUNSAYISI;
 
SELECT months_between(sysdate, HIRE_DATE), 
        add_months(HIRE_DATE,5),
        next_day(HIRE_DATE,'monday'),
        last_day(sysdate)    
FROM EMPLOYEES;
 
 
SELECT round(sysdate,'month'),
       round(sysdate,'year'),
        trunc(sysdate,'month'),
        trunc(sysdate,'year') 
FROM DUAL;
 
 
ALTER session SET nls_date_format ='DD-MM-YYYY HH24:MI:SS';
ALTER system SET nls_date_format ='DD-MM-YYYY HH24:MI:SS';
 
SELECT to_char(sysdate,'FMDAY - MONTH - YEAR'),to_char(sysdate,'DAY-MONTH-YEAR')
FROM dual;
 
SELECT to_char(salary,'$99,999.99')
FROM employees;
 
SELECT sysdate,lower(to_char(sysdate,'fmddspth - month - year')) 
FROM dual;
 
SELECT last_name, to_char(hire_date,'dd - Mon - yyyy')
FROM employees
WHERE hire_date < to_date('01-Jan-90','dd-mon-rr');
 
SELECT nvl(to_char(commission_pct),'Komisyon Almıyor'), 
        nvl2(commission_pct,'Komisyon Alıyor','Komisyon Almıyor'),
        nullif(length(last_name),length(first_name)) AS dif,
        coalesce(to_char(commission_pct),to_char(manager_id),'bişey yok')        
FROM employees;
 
SELECT last_name, job_id,
  case job_id when 'IT_PROG' then 1.10*salary
              when 'ST_CLERK' then 1.15*salary
  else salary
  end "CASEDEN DONEN SALARY", department_id
FROM employees;
 
SELECT last_name, job_id,
  decode(job_id,'IT_PROG',1.10*salary,
                'ST_CLERK',1.15*salary,
  salary)
  REVISED_SALARY
FROM employees;
  • Facebook
  • Twitter
  • StumbleUpon
  • del.icio.us
  • Digg

Comment » | Sql

Back to top