Serdar » Sql » 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;Category: Sql - Comment »