--tablolar uzerinde belirli bir olay olduktan sonra otomatik olarak calısan sistemlere denir.
-- after ,before olmak uzere 2 tiptedir.
--after :işlemler yapıldıktan sonra calısır
--before : normal kosullarda calıstırılmasaı gereken kodların yerine bunu calıstırır.
-- sql serverdaki inserted ve deleted tablolarının yerine :NEW ve :OLD tabloları bulunmaktadır.
--Ornek : urunler tablosuna bir eleman eklendikten sonra o urunadı alınır ve yedek tablosuna aktarılır..
CREATE OR REPLACE TRIGGER DENEME
AFTER INSERT
ON URUNLER
FOR EACH ROW
DECLARE
V_USERNAME VARCHAR2(20);
BEGIN
SELECT USER INTO V_USERNAME FROM DUAL;
INSERT INTO URUNLER_YEDEK(URUNADI,KAYITYAPAN)
VALUES
(
:NEW.URUNADI,V_USERNAME
);
END;
--TEST------
INSERT INTO URUNLER(URUNADI) VALUES('CIZI');
SELECT * FROM URUNLER_YEDEK;
Oracle etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Oracle etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
23 Ekim 2010 Cumartesi
ORACLE SWITCH CASE YAPILARI
--sadece esitlik durumuna bakan bu sistem if yapısına gore daha hızlı calısmaktadır...
DECLARE
OGRCOUNT NUMBER;
BEGIN
SELECT COUNT(*) INTO OGRCOUNT FROM STUDENTS;
CASE OGRCOUNT
WHEN 1 THEN
DBMS_OUTPUT.PUT_LINE('BIR OGRENCI OLSUN YETER BANA');
WHEN 0 THEN
DBMS_OUTPUT.PUT_LINE('OGRENCI YOK');
ELSE
DBMS_OUTPUT.PUT_LINE('BU KADARI DA FAZLA AMA');
END CASE;
END;
DECLARE
OGRCOUNT NUMBER;
BEGIN
SELECT COUNT(*) INTO OGRCOUNT FROM STUDENTS;
CASE OGRCOUNT
WHEN 1 THEN
DBMS_OUTPUT.PUT_LINE('BIR OGRENCI OLSUN YETER BANA');
WHEN 0 THEN
DBMS_OUTPUT.PUT_LINE('OGRENCI YOK');
ELSE
DBMS_OUTPUT.PUT_LINE('BU KADARI DA FAZLA AMA');
END CASE;
END;
ORACLE KOSUL IFADELERI
--IF ELSIF ELSE YAPILARI
--sorgularınızdan gelen nesnelerin durumlarına bakarak işlemler yapmak için kullanılır.
DECLARE
OGRCOUNT NUMBER;
BEGIN
SELECT COUNT(*) INTO OGRCOUNT FROM STUDENTS;
IF OGRCOUNT >1
THEN
DBMS_OUTPUT.PUT_LINE('SINIFIN DURUMU IYI');
ELSIF OGRCOUNT <1
THEN
DBMS_OUTPUT.PUT_LINE('HIC OGRENCI YOK NORMAL DEGIL');
ELSE
DBMS_OUTPUT.PUT_LINE('BIR OGRENCI OLSUN YETER BANA');
END IF;
END;
--sorgularınızdan gelen nesnelerin durumlarına bakarak işlemler yapmak için kullanılır.
DECLARE
OGRCOUNT NUMBER;
BEGIN
SELECT COUNT(*) INTO OGRCOUNT FROM STUDENTS;
IF OGRCOUNT >1
THEN
DBMS_OUTPUT.PUT_LINE('SINIFIN DURUMU IYI');
ELSIF OGRCOUNT <1
THEN
DBMS_OUTPUT.PUT_LINE('HIC OGRENCI YOK NORMAL DEGIL');
ELSE
DBMS_OUTPUT.PUT_LINE('BIR OGRENCI OLSUN YETER BANA');
END IF;
END;
ORACLE FUNCTION YAPILARI
--yapılan işlemlerden sonra geriye deger donduren sistemlere denir...
--return anahtar kelimesi nesneyi dondurur.
CREATE OR REPLACE FUNCTION KDVLIGETIR(DEGER NUMBER, KDVORAN NUMBER)
RETURN NUMBER
AS
BEGIN
RETURN DEGER * KDVORAN;
END;
-- CALISTIRILMASI
SELECT KDVLIGETIR(100,1.18) FROM DUAL;
--DUAL : FUNCTION GIBI YAPILARIN CALISTIRILABILMESI ICIN GEREKLI OLAN SANAL TABLODUR.
--sadece functionlar matematiksel işlemler için kullanılmaz. select sorguları gibi soruglar
--içinde kullanılabilir.
CREATE OR REPLACE FUNCTION IDYEGORE(OGRID NUMBER)
RETURN VARCHAR2
AS
V_NAME VARCHAR2(40);
BEGIN
SELECT STUDENTNAME INTO V_NAME FROM STUDENTS WHERE STUDENTID=OGRID;
RETURN V_NAME;
END;
----------CALISTIRILMASI
DECLARE
OGRID NUMBER;
v_Return VARCHAR2(200);
BEGIN
OGRID := 2;
v_Return := IDYEGORE(
OGRID => OGRID
);
DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
END;
-- DBMS denilen yapı sorgu sonuclarının goruntulenebilmesi için yaratılmıs bir cıktı merkezidir.
--bu yapı varsayılan olarak kapalıdır. acabilmek için ust menu => Vıew=> Dbms output
-- yesil + işaretine basarak kendinize bir oturum acın...
--return anahtar kelimesi nesneyi dondurur.
CREATE OR REPLACE FUNCTION KDVLIGETIR(DEGER NUMBER, KDVORAN NUMBER)
RETURN NUMBER
AS
BEGIN
RETURN DEGER * KDVORAN;
END;
-- CALISTIRILMASI
SELECT KDVLIGETIR(100,1.18) FROM DUAL;
--DUAL : FUNCTION GIBI YAPILARIN CALISTIRILABILMESI ICIN GEREKLI OLAN SANAL TABLODUR.
--sadece functionlar matematiksel işlemler için kullanılmaz. select sorguları gibi soruglar
--içinde kullanılabilir.
CREATE OR REPLACE FUNCTION IDYEGORE(OGRID NUMBER)
RETURN VARCHAR2
AS
V_NAME VARCHAR2(40);
BEGIN
SELECT STUDENTNAME INTO V_NAME FROM STUDENTS WHERE STUDENTID=OGRID;
RETURN V_NAME;
END;
----------CALISTIRILMASI
DECLARE
OGRID NUMBER;
v_Return VARCHAR2(200);
BEGIN
OGRID := 2;
v_Return := IDYEGORE(
OGRID => OGRID
);
DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
END;
-- DBMS denilen yapı sorgu sonuclarının goruntulenebilmesi için yaratılmıs bir cıktı merkezidir.
--bu yapı varsayılan olarak kapalıdır. acabilmek için ust menu => Vıew=> Dbms output
-- yesil + işaretine basarak kendinize bir oturum acın...
ORACLE STORE PROCEDURE
--database içerisinde compile edilmiş yani derlenmiş hazır bir halde bekleyen kodlara procedure denilir.
--normal kodlara gore daha hızlı calıslır. kodlar database içerisinde saklandıgı işçin daha guvenlidir.
CREATE OR REPLACE PROCEDURE CEKLE
(
CNAME IN VARCHAR2
)
AS
BEGIN
INSERT INTO CLASSES(CLASSNAME) VALUES(CNAME);
END;
--CALISTIRILMASI
DECLARE
CN VARCHAR2(30);
BEGIN
CN:= 'YV35203';
CEKLE(CNAME=>CN);
END;
--TEST
SELECT * FROM CLASSES;
-- Procedure olarak adlandırdıgımız bu yapılar sql serverda oldugu gibi direkt select sorgularını calıstıramaz.
-- eger select sorgunuzu yazmak isterseniz geriye dondureceginiz tiplerin out parametreli olması gerekir.
CREATE OR REPLACE PROCEDURE IDYEGORESINIF
(
CID IN NUMBER,
CNAME OUT VARCHAR2
)
AS
BEGIN
SELECT CLASSNAME INTO CNAME FROM CLASSES WHERE CLASSID = CID;
END;
ORACLE VIEWLER
-- karmasık select sorgularının defalarca yazılması yerine bunları takma bir ad ile kaydetmek ve
--kısaca cagırmak suretiyle calısır.
--CREATE OR REPLACE : yoksa yarat varsa eskisini sil yenisini yarat...
--Force : eger sistem içerisinde view olusturmak istediğiniz tablo yok ise view için izin verir.
--nonforce : olmayan bir tablo için view yaratılmaz. varsayılan guvenlik ayarıdır.
--with check option : eger sorgunuzda where kriteri var ise ve siz view uzerinden insert yapmak istiyor iseniz
--where kriterine uygun bilgi girmek zorundasınız...
--alias : sorguda yer alan kolonlarınıza yeni ad vermek için kullanılır.. as gibi ....
CREATE OR REPLACE VIEW SINIFLARIGETIR
AS
SELECT * FROM CLASSES;
--CALISTIRILMASI
SELECT * FROM SINIFLARIGETIR;
----**********
CREATE OR REPLACE VIEW IDYEGOREOGRENCI
AS
SELECT STUDENTNAME,STUDENTCLASS FROM STUDENTS WHERE STUDENTCLASS = 1
WITH CHECK OPTION CONSTRAINT SINIFBASKISI;
--***TEST
INSERT INTO IDYEGOREOGRENCI
VALUES('YUCEL','1');
ORACLE VERI TIPLERI
--CHAR : 2000 karaktere kadar olan verileri tutar. sabit uzunluklu bilgileri saklamak için kullanılır.
--NCHAR : char gibidir ancak diger dillerdeki karsılıkları da saklar. Unicode..
--VARCHAR2 : 4000 karaktere kadar bilgi saklar.
--NVARCHAR2 : varchar2 gibidir ancak Unicode degerleri de saklar.
-- NUMBER : int ,tinyint ,money,decimal farketmez hepsini numberda yakalayabilirsiniz.
--kullanımı sqldeki decimal gibidir. Number(x,y) => Number(5,2)
--toplam karakter sayısı 5 : ondalık kısmı 2 olacak demektir. 123,99
--Date : MÖ 1 ocak 4712 ile MS 31 aralık 9999 arasındaki tarihleri temsil eder.
--CLOB : character large object : 4 gba kadar lık metinsel bir ifadeyi saklayabilir.
--varchar(max)a denk gelir.
--BLOB : Binary large onject : 4gblık bir filei dbde saklayabilir. resim,video,mp3,pdf,exe,xls,doc
--varbinarye karsılık gelen tiptir.
--NCHAR : char gibidir ancak diger dillerdeki karsılıkları da saklar. Unicode..
--VARCHAR2 : 4000 karaktere kadar bilgi saklar.
--NVARCHAR2 : varchar2 gibidir ancak Unicode degerleri de saklar.
-- NUMBER : int ,tinyint ,money,decimal farketmez hepsini numberda yakalayabilirsiniz.
--kullanımı sqldeki decimal gibidir. Number(x,y) => Number(5,2)
--toplam karakter sayısı 5 : ondalık kısmı 2 olacak demektir. 123,99
--Date : MÖ 1 ocak 4712 ile MS 31 aralık 9999 arasındaki tarihleri temsil eder.
--CLOB : character large object : 4 gba kadar lık metinsel bir ifadeyi saklayabilir.
--varchar(max)a denk gelir.
--BLOB : Binary large onject : 4gblık bir filei dbde saklayabilir. resim,video,mp3,pdf,exe,xls,doc
--varbinarye karsılık gelen tiptir.
ORACLE TABLESPACE YARATILISI
--tabloların birbirine karısmasını engellemek amacı ile kullanılan mantıksal bir kumedir.
--sqldeki database denk gelmektedir.
CREATE TABLESPACE OKUL DATAFILE 'C:\oraclexe\oradata\XE\OKUL.DBF' SIZE 5M;
-- tablespace yaratıldıktan sonra bu tablo alanını kullanacak olan kisiyi yaratmalısınız.
CREATE USER STUDENT
IDENTIFIED BY HAKAN
DEFAULT TABLESPACE OKUL
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON OKUL;
-- kullanıcının yaratılması baglanabilirsiniz anlamına gelmez. SYS isimli kullanıcının yetki
--vermesi gerekir. Connect rolune dahil edilmemis birisi Oracle ' a baglanamaz. !!!
-- Other User klasorunun içerisine git -- kullanıcını bul --sag click Edit --
--Rol ve privligies ayarlarını yap...
--yetkilernizi verdikten sonra bu kullanıcı için bir connection yaratabilirsiniz.
Onemli Oracle Kullanıcıları
--SYS : sql serverdaki sa ya denk gelmektedir.
--SYSTEM : sys kadar olmasa da bazı sistem tablolarından sorumlu admin duzeyindeki kisidir.
--DBSNMP : veri tabanı hakkında istatistiksel verilere ulasabilmek ve raporlarmak için
--gerekli olan kisidir.
--SYSMAN : Enterprise editionda SYS nin karsılıgıdır..
--SYSTEM : sys kadar olmasa da bazı sistem tablolarından sorumlu admin duzeyindeki kisidir.
--DBSNMP : veri tabanı hakkında istatistiksel verilere ulasabilmek ve raporlarmak için
--gerekli olan kisidir.
--SYSMAN : Enterprise editionda SYS nin karsılıgıdır..
Oracle Tablespaceleri
-- Sistemin tablespace uzantısı : DBF tir. database filedir.
--SYSTEM : oraclein tum aktivitelerini duzenlemesini saglayan sistem tablolarıdır. oracleın ilk
--zamanlarından beri var olan bir tablespacedir.
--SYSAUX: 10g versiyonuna kadar sistemin tum yukunu SYSTEM tablespace cekmisti.
--gunumuzde bu agırlıkla basa cıkamayacagı için yardımcı bir yapı geliştirdi.
--USERS : oracle içerisinde kullanıcıların adlarını ve yetkilerini tutan sistemdir.
--UNDO: transaction işlemleri sırasında işlemler onaylanana kadar eski bilgilerin
--saklandıgı yere denir.
--TEMP: gecici tabloların bulundugu yere temp denilir.
--Control : oracle içerisinde calısan servislerin ve bazı hizmetlerin kontrolunden sorumlu
--birimdir. istatistiksel calısır.
--SYSTEM : oraclein tum aktivitelerini duzenlemesini saglayan sistem tablolarıdır. oracleın ilk
--zamanlarından beri var olan bir tablespacedir.
--SYSAUX: 10g versiyonuna kadar sistemin tum yukunu SYSTEM tablespace cekmisti.
--gunumuzde bu agırlıkla basa cıkamayacagı için yardımcı bir yapı geliştirdi.
--USERS : oracle içerisinde kullanıcıların adlarını ve yetkilerini tutan sistemdir.
--UNDO: transaction işlemleri sırasında işlemler onaylanana kadar eski bilgilerin
--saklandıgı yere denir.
--TEMP: gecici tabloların bulundugu yere temp denilir.
--Control : oracle içerisinde calısan servislerin ve bazı hizmetlerin kontrolunden sorumlu
--birimdir. istatistiksel calısır.
ORACLE EDITIONLAR
Express Edition : 10g surumu en son surumdur. 4 gb veri sınırı bulunmaktadır.
network ortamından birileri servera baglanırsa sayı 15-20 arasındadır.. ancak internet
ortamından gelen istekler soz konusu oldugunda sayı sınırsızdır...
Standart Edition : orta olcekli firmalarda kullanılan sistemdir. yada buyuk firmaların
subelerinde kullanılan sistemdir.
Enterprise Edition: Sınırsız ve en geniş surumdur. Grid Teknolojisine sahiptir.
Grid teknolojisi birden fazla makina bir araya gelerek tek bir makina gibi calısabilir.
network ortamından birileri servera baglanırsa sayı 15-20 arasındadır.. ancak internet
ortamından gelen istekler soz konusu oldugunda sayı sınırsızdır...
Standart Edition : orta olcekli firmalarda kullanılan sistemdir. yada buyuk firmaların
subelerinde kullanılan sistemdir.
Enterprise Edition: Sınırsız ve en geniş surumdur. Grid Teknolojisine sahiptir.
Grid teknolojisi birden fazla makina bir araya gelerek tek bir makina gibi calısabilir.
ORACLE NEDIR
--1973 yılında ortaya cıkmıstır.
--1521 nolu portu kullanır..
--Microsoft sql server database yonetim sistemidir , Oracle ise veritabanın kendisidir.
Kaydol:
Kayıtlar (Atom)