Oracle-ing Myself – Lesson 6 Özeti

CREATE VIEW vwsal AS
SELECT last_name lname,
     department_id deptid,
     salary sal
FROM employees
WHERE department_id = 50;
 
SELECT *
FROM vwsal;
 
UPDATE vwsal
SET sal = sal + 10;
 
CREATE OR REPLACE VIEW vwsal AS
SELECT last_name lname,
     department_id deptid,
     salary sal
FROM employees
WHERE department_id = 60;
 
CREATE OR REPLACE VIEW vwsal AS
SELECT last_name lname,
     department_id deptid,
     salary sal
FROM employees
WHERE department_id = 20 WITH CHECK OPTION;
--WITH CHECK OPTION where şartındaki kolonun değiştirlimemesini kontrol ediyo
 
CREATE OR REPLACE VIEW vwsal AS
SELECT last_name lname,
     department_id deptid,
     salary sal
FROM employees
WHERE department_id = 20 WITH READ ONLY;
--WITH READ ONLY sadece select için bir view
--raporlar genelde bu şekilde oluşturulur
 
 
DROP VIEW vwsal;
 
CREATE sequence dept_seq increment 
BY 10 START WITH 120 maxvalue 9999 nocache nocycle;
 
CREATE sequence dept_seq increment 
BY 10 START WITH 120 maxvalue 9999 cache 50 nocycle;
 
CREATE sequence seq;
 
INSERT
INTO departments
VALUES(seq.NEXTVAL,      'deneme',      100,      1000);
 
SELECT seq.currval
FROM dual;
 
 
CREATE synonym em FOR employees;
--tabloya nickname verdik
 
SELECT * FROM em;
 
 
CREATE INDEX dept_name ON dept(name);
 
 
SELECT * FROM dictionary;
SELECT * FROM dict;
 
 
--kullanıcı yaratmak
CREATE user serdar IDENTIFIED BY sr
 
 
--session hakkı vermek
GRANT CREATE session TO serdar;
 
 
--select hakkı vermek
GRANT SELECT ON hr.employees TO serdar;
 
 
--kendi şemasında tablo oluşturma hakkı
GRANT CREATE TABLE TO serdar;
 
--tüm şemalarda tablo oluşturma hakkı
GRANT CREATE any TABLE TO serdar;
 
--user kiilitlemek
ALTER user serdar account LOCK;
 
--user kilitlenmişse açmak
ALTER user serdar IDENTIFIED BY sr account UNLOCK;
 
 
GRANT CREATE session, CREATE TABLE, CREATE sequence, CREATE VIEW TO demo;
 
 
--rol yaratmak
CREATE role rol;
 
--role hak vermek
GRANT CREATE session, CREATE TABLE, CREATE sequence TO rol;
 
--user a rol vermek
GRANT rol TO serdar;
 
 
--sifre değiştirmek
ALTER user serdar IDENTIFIED BY '123';
 
 
--verdiğim yetkiyi dağıtabilir şekilde ver, with grant option
GRANT SELECT ON employees TO serdar WITH GRANT OPTION;
 
 
--herkese yetki ver, to public
GRANT SELECT ON alice.departments TO public
 
 
--hak almak
REVOKE SELECT,INSERT ON departments FROM serdar cascade constraints;
--casced daha önce bu haklardan dağıtmışsa onlarıda alır...
 
--kolon ekle
ALTER TABLE employees ADD(kolon varchar2(20));
 
--kolon değiştir
ALTER TABLE employees MODIFY(kolon varchar2(30));
 
--kolon sil
ALTER TABLE employees DROP(kolon);
 
--kolonu kullanılamaz yapmak
ALTER TABLE employees
SET unused(salary);
--çok data olan bir kolon drop edildiğinde 2-3 dakika sürebilir
--unused anında kolonu kullanılamaz yapar
--kolon datası hala arkaplanda duruyordur ama getirilemez
--ikinci adımda drop ederek arkaplandanda sileriz
 
--constraint eklemek
ALTER TABLE emp2
ADD constraint emp_mgr_fk
FOREIGN KEY(manager_id)
REFERENCES emp2(employee_id);
 
ALTER TABLE emp2 MODIFY employee_id PRIMARY KEY;
 
ALTER TABLE emp2 MODIFY employee_id PRIMARY KEY deferrable initially deferred;
 
ALTER session
SET constraints = immediate;
 
ALTER TABLE dept2
DROP PRIMARY KEY cascade;
 
ALTER TABLE emp2
disable constraint emp_dt_fk;
 
ALTER TABLE emp2
enable constraint emp_dt_fk;
 
ALTER TABLE emp2
DROP COLUMN employee_id cascade constraints;
 
ALTER TABLE emp2
RENAME COLUMN employee_id TO eid;
 
ALTER TABLE emp2
RENAME constraint mktg_pk TO newmktg_pk;
  • Facebook
  • Twitter
  • StumbleUpon
  • del.icio.us
  • Digg

Category: Sql - Comment »


Leave a Reply



Back to top