Category: Sql


Oracle-ing Myself – Lesson 5 Özeti

March 22nd, 2009 — 12:06pm
commit;
 
INSERT
UPDATE
CREATE --create anında auto commit olur
DELETE
 
rollback; --create cümlesinin sonrasına dönebiliriz...
 
 
--for update, select ile gelen kolonları kilitliyor...
SELECT employee_id,
 salary,
 job_id
FROM employees
WHERE job_id = 'SA_REP'
FOR UPDATE
ORDER BY employee_id;
 
CREATE TABLE my_employee(
id NUMBER(4) NOT NULL,
last_name VARCHAR2(25),
first_name VARCHAR2(25),
userid VARCHAR2(8),
salary NUMBER(9,   2));
 
DESC my_employee;
 
INSERT INTO my_employee VALUES (1,'Patel','Ralph','rpatel',895);
 
INSERT INTO my_employee (id,last_name,first_name,userid,salary) VALUES
(2,'Dancs','Betty','bdancs',860);
 
INSERT INTO my_employee (id,last_name,first_name,userid,salary) VALUES
(&id,'&last_name','&first_name','&userid',&salary);
 
commit;
 
SELECT * FROM my_employee;
 
UPDATE my_employee
SET last_name ='Drexler'
WHERE id=3;
 
UPDATE my_employee
SET salary = 1000
WHERE salary<900;
 
SELECT * FROM my_employee;
 
DELETE FROM my_employee WHERE last_name='Dancs' AND first_name='Betty';
 
DELETE FROM my_employee
WHERE rowid='AAARW6AAEAAAAGPAAE';
 
commit;
 
savepoint A;
 
DELETE FROM my_employee;
 
rollback TO savepoint A;
 
commit;
 
INSERT INTO my_employee (id,last_name,first_name,userid,salary)
VALUES (&id,'&&last_name','&&first_name',lower(substr('&first_name',0,1))
|| lower(substr('&last_name',0,7)),&salary);
 
 
--number(3,2)  maximum 9.99 tutar
CREATE TABLE tbl(col1 NUMBER(3,   2) NOT NULL,   col2 VARCHAR2(20),
col3 DATE);
 
DESC tbl;
 
INSERT
INTO tbl
VALUES(1,   'Serdar',   sysdate);
 
SELECT *
FROM tbl;
 
CREATE TABLE tbl2(col1 NUMBER(3,   2) NOT NULL,   col2 VARCHAR2(20),
col3 DATE DEFAULT sysdate);
 
DESC tbl2;
 
INSERT
INTO tbl2 (col1,col2)
VALUES(1,   'Serdar');
 
SELECT * FROM tbl2;
 
 
-- data types
 
* varchar2              - değişken uzunluklu karakter tutmak içIN
* char                  - sabit uzunluklu DATA tutmak içIN 
(char varchar a göre çok yer tutar ama daha performanslıdır.)
* number                - sayı tutar
* date                  - tarif tutar
* long                  - değişken uzunluklu karakter DATA max 2gb
* clob                  - değişken uzunluklu karakter DATA max 4gb
* raw AND long raw      - raw BINARY DATA
* blob                  - BINARY DATA (max 4gb)
* bfile                 - BINARY DATA bir klasörde tutulur pathi alana yazılır.
 
* rowid                 - her bir satır içIN oluşturulan sıra numarasıdır. 
 
 
--constraints
 
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
 
--
 
ALTER TABLE emp5 READ only;
 
ALTER TABLE emp5 READ WRITE;

Comment » | Sql

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;

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;

Comment » | Sql

Page 2 of 41234

Back to top