You are on page 1of 34

SQL

ID AD MAAS } Kolon ad (field) 1 Kazm 10000 } 2 Metin 75000 } Kayt (rows) .. .. } Kolon Kolon Kolon Table : Database'de saklanan kolonlarn birleiminden oluan kmedir. Table'n data tipi yoktur. Row : Tek kayt demektir. Column : Table'daki kolon adna ait kaytlardr. rnein, 'AD' kolonu demek 'AD' kolonuna girilen verilerin tmdr. Field : Kolon balklar ile kayt bal olanlardr. Primary Key : Unique + not null (Tek olmal ve bo geilemez.) Foreign Key : Primary key gibidir. Fakat null deerler alabilir. Table'lar ilikisel veri taban(compact) olmaldr. Tablolar arasnda bir iliki kurulmaldr. Oracle database'i ile kullanc arasnda SQL_NET iliki kurar. Protokoller belirlenir, bir isim altnda konfigurasyonlar birletirilir. Bylece database ismi tanmlanmasyla ona ait tm konfigurasyonlar oluturulur. RDBMS : Oracle'n server tarafndaki protokoludr. Hzl eriim salar. Gvenlik son derece gldr. Client / server desteklidir. TCP/IP : Oracle'n server tarafndaki protokoludr.IP numaralar sayesinde client / server mimarisi iletiimi kurulur. RDBMS gibi ortak zellikler tar. Referantional : Tablolar arasndaki referanslarn belirtilmesidir. Bazen bir kolonun deerlerinin baka bir tablodaki kolonlardan veri lamas gerekmektedir. bu durumda referans verilir. Bir projeye balarken u aamalar yaplr;

i. ii. iii. iv. v. vi. vii. viii. ix. x.

yi bir analiz Analizin tablolara gre dizayn ve aralarndaki ilikiler Ak emas ve dkman hazrlanmas Test edilmesi retime geilmesi

Database'e zerinde giri,deiiklik,silme vb. lemlersql ile olur. Tablolar fiziksel olarak gzkmezler. Database iinde sakldrlar. Operatrler kullanlabilir. Data Dictionary: Database'deki kullanclar, yaratlan tablolar vb. Nesneler hakknda detayl bilgiler bulunan tablodur. Belli bal fonksiyonlarla ulalabilir. SQL : Tablolar arasnda iletiim kurar, sorgulama yapar. SQL *Plus : Ek olarak bloklar oluturulabiliyor. Mantksal dngler ve komutlar oluturulabiliyor. IF, FOR vb. PL / SQL : Server'a balanp insert, update, delete vb. Database zerinde direkt ilemler yaplabilir. Database'e en hzl ulam ve sorgulama biimidir.

Yazlan komutlar bufferda ilem yapar. O yzden her yeni komut yazldnda nceki komutu siler. Yazlm kontrolu(syntax) her satrn sonunda kontrol edilir. eitli formatlarla kt alnabilir. Direkt komut sonunda sonu alnr., Select ile data okunur. nsert, update,delete (DML) ile var olan bir tablo zerinde deiiklikler yaplabilir. Create,alter,drop,rename, truncate(DDL) ile yapsal deiiklikler yaplabilir. Commit,rollback,savepoint (tranaction) ile yaplan ileri onaylar veya geri alr, iptal edilebilir. Grant,revoke (DCL) ile objelerin kullanlmasna hak vermek veya geri almak iindir. Gvenlik kurulur. Exit (^D) ile SQL'den k salanr. Bylece yaplan ilemler iptal olur.

NOT: Tnsnames.ora Database hakknda bilgiler bu dosyada sakldr. Listener.ora Server tarafnda bulunan config dosyasdr. NOT: Komut yazlmdaki keli parantezler o alann zorunlu olmadn belirtir. {} iaretleri o alan iin birden fazla deer alacan gsterir. Byk harf yazlanlar oldugu gibi yazlr. Kk harf yazanlar aklamadr.

SQL de deiken tanmlamak


DESC tablo_ad; Kolon tiplerinden bazlar; NUMBER(rakam,ondalk) Saysal ifadelerdir. Rakam alan saynn max alabilecei tamsay ksmn verir. Ondalk alan ise max. decimal deerini verir. VARCHAR2(say) Karakter ifadelerdir. Say ile belirtilen alan, max. karakter saysdr. DATE Tarih ve saat ifadeleridir. lke kodu desteiyle eitli formatlarda databasede tutulurlar. CHAR(say) Karakter ifadesidir. VARCHAR2den tek fark databasede saklanma eklidir. Max 255 karakter alabilir. Say ile belirtilen alan, max. karakter saysdr.

SELECT komutu
Select komutu ile database'den istenilen kriterlere gre veri getirlir.

Yazlm: SELECT [DISTINCT] {*,column [alias] ,.} FROM Tablo [WHERE koullar] [ORDER BY {column,expr} [ASC|DEXC] ] ; SELECT :Seilen kolonlar alr. DISTINCT :Belirtilen kolondaki ayn deerlere sahip verilerden sadece birini alr. rnein personel kodu xxx olann personel ad gibi. alias :Kolon adlarnn daha ak olmas iin tanmlanr. FROM table :Belirtilen tabloyu aar. WHERE :Belirli kriterler koullar oluturulur. Tablolar arasnda birletirmeler yaplabilir. ORDER BY :Seilen kolona gre sral kayt getirir. ASC :Artan srada listelenir. Varsaylan budur. DESC : Artan srada listelenir. Varsaylan budur. * : Tm kolonlar seilmi anlamndadr. Listelemede rakamlar saa yanak, karakterler sola dayal gzkr. Kolon adlar byk harf grntlenir.Aritmatik ilemler kullanlabilir (+,-,/,*). rnein; Select maas+maas*0.10 From Personel_Table; Bazen bir matematiksel ilemler daha uzun veya daha karmak olabilir. Fonksiyon tanmlayarak kolona sorgulatp bir sonu retebiliriz. Matematiksel ilemlerde ncelik sras;

i. ii. iii. iv. v. vi.

Parantezler (,) *,/,+,soldan saa doru ncelik sras,

eklindedir. Column Alias : Kolon bana aklayc isim verilebilir. Trnak iaretleri (") ile aklayc kelime belirtilir. Tek kelime iin " iareti kullanlmasada olur. rnein; Select ad AS "Ad" From Personel_Table; Concatenation Operator: Birden fazla stringi veya kolonu yan yana birletirip listelemek iin kullanlr. fadeler string olmaldr. Zaten karakter ve tarih formatndaki deerler trnak( ' ) iaretleri ierisinde belirtilir. rnein; Select ad||' ' ||soyad AS "Ad Soyad" From Personel_Table; Null : Deeri hi girilmeyen kolonlar NULL deerini alrlar. NULL sfr veya boluk karakteri deildir. Yokluk demektir. Bir rakam ile NULL deer zerinde matematiksel ilemler yaplamaz. NVL Fonksiyonu: Null deeri yerine yeni deer atar. Alan tipi ne turde ise alaca deer o trde olmaldr. Yazlm: NVL (null_deeri_alan,yeni_deer) rnein; NVL(Maas,0); Maas kolonundaki null deerlerin yerine sfr atar. veya NVL(Ad,' '); Ad kolonundaki null deerlerin yerine bos karakter atar. En nemli kullanm amac hesplamalara ilemin yarda kesilmesini engellemek iindir. rnein maasa zam miktar eklensin. Ama baz personele zam yaplmad varsaylrsa bu kiiler icin zam kolon deeri null'dur. Buna gre; SELECT maas+NVL(zam,0) From Personel_Table; Tab : Tm tablolarn adlarnn sakland alandr. rnein tm tablolarn listesini vermek iin aadaki iki yazlm da kullanabiliriz.; Yazlm; SELECT * From Tab; SELECT table_name From user_tables;

Desc : Tablonun kolonlarnn adlarn, kolonlarn tipini ve null deer alp alamayaca durumlarn gosterir.

Order by komutu
ORDER BY : Seilen kolona gre sralama yapar. DESC artan srada, ASC azalan srada listeler. Null deerler sralamaya alnmazlar. rnein azalan srada ada gore liste alnsn; SELECT ad,soyad FROM Personel_Table ORDER BY ad DESC; Eer kolonlar birden fazla ise kolon numaras ile de tanm belirtilebilir; SELECT ad,soyad FROM Personel_Table ORDER BY 1 DESC; Eer birden fazla kolona gre sralama yaplmak istenirse, nce yazlan kolon baz alnarak dier kolona gre sral listeler. SELECT ad,soyad FROM Personel_Table ORDER BY 1,2 DESC;

Where komutu
WHERE : Sorgulamalar snrlandrmak amacyla koullar konulur. rnein departman 38 kodlu personel listesi; SELECT ad ||' ' ||soyad FROM Personel_Table WHERE Dept_Id=38; <,>, >=, <= gibi karlatrma karakterleri kullanlabilir. Bunlar dnda baz SQL operatrleri ile daha rahat koullar konulabilmektedir.

Between komutu
BETWEEN Min AND Max: Belirtilen Min. ve Max. deerler arasnda deer alabilir. Yani belirtilen iki deer arasnda deerler alr. rnein ya 18 ile 30 arasndaki personeller; SELECT ad ||' ' ||soyad FROM Personel_Table WHERE yas BETWEEN 18 AND 30;

IN komutu
IN (liste) : Liste olarak tanmlanan deerleri alr. Yani bir ekilde OR ifadesine denktir. rnein ya 18, 25 ile 30 olan personeller; SELECT ad ||' ' ||soyad FROM Personel_Table WHERE yas=18 OR yas=25 OR yas=30; Veya SELECT ad ||' ' ||soyad FROM Personel_Table WHERE yas IN(18,25,30);

Like komutu

LIKE : Benzerlik vermek iin kullanlr. '%' karakteri tum karakterler yerine geer. '_' karakteri ise tek karakter yerine geer. Sadece _ iaretini karmak iin ' \_ ' iareti kullanlr. Kk byk harf ayrm vardr. '%t' t harfiyle balayanlar. '%t%' t harfi geen tm kaytlar. 'B_K%' B ba harfi ile balayan ve 3. Harfi K olan tm kaytlar. karakterleri arasnda deer girilirse kolon iinde rnein soyad 'M' ile balayan personeller; SELECT ad ||' ' ||soyad FROM Personel_Table WHERE soyad LIKE ' M% ' ;

Is null komutu
IS NULL : Kaydn null olup olmadn kontrol eder. rnein maa null olan kaytlar listelesin; SELECT ad ||' ' ||soyad FROM Personel_Table WHERE maas IS NULL ; NOT : Belirtilen koulun tam ters koulunu verir. rnein maa null olmayan kaytlar listelesin; SELECT ad ||' ' ||soyad FROM Personel_Table WHERE maas IS NOT NULL ;

SQL *Plus zerinde Sorgu Hazrlanmasnda Kullanlacak Yardmc Komutlar


Sql komutlar sadece hafzada tutulurlar. letilen her komut hafza tutulur. O yzden kullancnn iini kolaylatrmak iin baz ek komutlara ihtiya duyulmutur. Sql Plusa girmek iin komut satrnda u ekilde girilir; SQLPLUS [kullanc ad [/ifre [@Database]]] A[PPEND] Text Satr sonuna kelime ekler. C[HANGE] /eski/yeni eski text yerine yeni text ekler. Yeni alan bo braklrsa eski alan olarak belirtilen text silinir. CL[EAR] BUFF[ER] SQL hafzasndaki tm satrlar siler, hafzay boaltr. DEL Aktif olarak bulunduu satr siler. Satr no belirtilirse o satr siler. I[NPUT] Text Satr arasna Text ifadesiyle belirtilen cumleyi ekler. L[IST] Hafzadaki tm satrlar listeler. L[IST] m n Sadece m ile n arasndaki satrlar listeler. R[UN] Hafzadaki SQL satrn altrr. Ayn ilevi "R,r,/, ; " karakterleride yapar. n Text n satrndaki cmleyi Text ifadesi belirtilen alana yazlan cmle ile deitirir.

0 Text Bulunduu satrdan bir nceki satra yeni alan aar ve texti oraya ekler. SAVE Dosya Hafzadaki komutu belirtilen dosya ad altnda saklar. GET Dosya Belirtilen dosyay hafzaya yukler. START Dosya Belirtilen dosyay direkt altrr. Hafzaya yuklemez. @ iaretide ayndr. ED[IT] Dosya Belirtilen dosyay bir editr iinde aar. SPOOL Ekranda yaplan her trl ii dosyaya atar. SPOOL OFF ile dosyaya kayt ilemini durdurur. EXIT SQLden k salar. HELP Komut Belirtilen komut iin aklayc bilgi verir.

SQL Plus Fonksiyonlar


Fonksiyonlar sayesinde; Datalar zerinde hesap yapabilir, Datalar zerinde deiiklikler yaplabilir, Grup oluturularak bu kaytlar iin kullanlabilir. Tarih datas eitli formatlarda grntlenebilir, Kolon tipleri deitirilebilir. ie fonksiyonlar tanmlanabilir. ncelikle iteki fonksiyon alr. kan sonuca gre dtaki fonksiyon ilem grr.

Sys.Dual : Oracle databaseinde bulunan tek kolon ve tek satrdan oluan bir tablodur. Belirli bir tablodan deerler almadan fonksiyonlarn kullanlmas gerektiginde bu tablo kullanlr.

Karakter Fonksiyonlar
LOWER(Text) : Text olarak belirtilen alan kk harfe evirir. UPPER(Text) : Text olarak belirtilen alan byk harfe evirir. INITCAP(Text) : Text olarak belirtilen alann ba harfini byk dierlerini kk harfe evirir. CONCAT (Text1,Text2) : Text1 olarak belirtilen alan ile Text2 alann birletirir. || simgeside ayndr.

SUBSTR(Text,m,n) : Text alannn m. karakterinden itibaren (m. karakter dahil) n kadar karakter alr. LENGTH(Text) : Text alann karakter uzunluunu saysal olarak verir. NVL(KOLON,DEER) : Kolonun ald deer null ise deer alannda belirtilen deeri verir.

Karakter Fonksiyonlar
LOWER(Text) : Text olarak belirtilen alan kk harfe evirir. UPPER(Text) : Text olarak belirtilen alan byk harfe evirir. INITCAP(Text) : Text olarak belirtilen alann ba harfini byk dierlerini kk harfe evirir. CONCAT (Text1,Text2) : Text1 olarak belirtilen alan ile Text2 alann birletirir. || simgeside ayndr. SUBSTR(Text,m,n) : Text alannn m. karakterinden itibaren (m. karakter dahil) n kadar karakter alr. LENGTH(Text) : Text alann karakter uzunluunu saysal olarak verir. NVL(KOLON,DEER) : Kolonun ald deer null ise deer alannda belirtilen deeri verir.

Saysal Fonksiyonlar
ROUND(Say,m): Say alanna girilen rakam, m olarak belirtilen ondalk kadar yuvarlar. rnein; ROUND(45.923,2) 45.92 ROUND(45.923,0) 46 ROUND(45.923,-1) 50 ROUND(45.951,2) 45.92 ROUND(45.929,2) 45.93 TRUNC(Say,m): Say alanna girilen rakam, m olarak belirtilen ondalk kadar sondan keser. TRUNC(54.923,2) 45.92

TRUNC(54.923,-1) 40 TRUNC(54.929,2) 45.92 MOD(m,n) : m says n saysna bolundugunde kalan rakam bulur.

Zamansal Fonksiyonlar ve lemleri


Tarih + say Tarihe say kadar gun ekler. Tarih - say Tarihe say kadar gun karr. Tarih - Tarih ki tarih arasndaki gn farkn saysal olarak verir. Tarih + say / 24 Tarihe say kadar saat ekler.

SYSDATE Sistem tarihini verir. Oraclen varsaylan tarih format DD-MON-YY eklindedir. zerinde aritmatiksel ilemler yaplabilir.

MONTHS_BETWEEN(tarih1,tarih2) ki tarih arasn ay olarak bulur. ADD_MONTHS (tarih,n) Tarihe n kadar ay ekler. NEXT_DAY(tarih,' gn' ) tarih'den sonraki gnn ilk tarihini verir. LAST_DAY(tarih,' gn' ) tarih'den nceki gnn ilk tarihini verir. ROUND(tarih[,' fmt '] ) tarih'I belirtilen formata gre aya veya yla gre yuvarlar. TRUNC(tarih[,' fmt '] ) tarih'I belirtilen formata gre aya veya yla gre keser.

evirme Fonksiyonlar
TO_CHAR(Say,[fmt]) : Girilen tarih veya sayy karakter tipine evirir. Tarih parametreleri; YYYY Yl rakamsal olarak gosterir. YEAR Yl yazsal olarak verir.

BC Millattan once ve sonras icin zaman verir. MM Ay rakamsal olarak gsterir. MONTH Ay yazsal olarak verir. Belirtilen lkenin tarih yazsyla

verir.

MON Ay yazsal sadece ilk 3 harfini verir. Belirtilen lkenin tarih

yazsyla verir.

RM Ay roma rakamyla gsterir. DD Gn rakamsal olarak gsterir. DAY Gn yazsal olarak verir. Saysal parametreleri;

9. Rakamdr. 1. Sfr rakam verir.


$ Rakamn bana $ iareti koyar. . Ondalk haneye ayrr. , Rakam 3er hane ayrarark aralarna virgl koyar. MI Negatif saylar iin sonuna itareti koyar. rnein " x nolu kii xxx'dir." Formatnda ekrana liste oluturalm (id number); SELECT TO_CHAR(id) || ' nolu kisi ' ||name||'dir.' rnein sistem tarihini DD-MM-YYYY olarak gsterelim; SELECT TO_CHAR(sysdate,' DD-MM-YYYY') rnein sistem zamann HH:MI olarak gsterelim; SELECT TO_CHAR(sysdate,' HH:MI' ) TO_NUMBER (Karakter) : Girilen karakteri saysal ifadeye evirir. TO_DATE(char, [fmt]) : Girilen karakteri belirtilen formatta tarih formatna evirir. rnein tarih kolonundaki deerleri, 7 /11/1998 tarihine eit olanlarn listesini oluturalm. Ama kolon deerleri string olarak ayn uzun ad, gn ve yl saysal olarak kaytldr. Bu sorunu zmek iin kullanlr; SELECT no, maas FROM Personel WHERE MAAS_TARIH=TO_DATE('KASIM 7, 1998', 'Month dd,YYYY')

Tablolar Arasnda liki Kurulmas (JOIN)


* Birden fazla tabloyla iliki kurularak ortak sorgulama yaplmasdr. Tablolar belli bir ortak kolona gre birletirmek iin join yntemi kullanlr. Bunun iin ncelikle tablolardaki kolonlar ayn tipte ve ayn byklkte olmaldr.

Yazlm: SELECT table1.kolonlar,table2.kolonlar FROM table1, table2 WHERE table1.kolon1=table2.kolon2 ki tabloyu birletirmek iin iki tabloda ortak bulunan kolonlar where kotulu iinde etitleriz. rnein personel ad ve bulunduu departman listesi icin; SELECT a.*,b.* FROM personel a , departman b WHERE a.dept_id=b.dept_id Bylece personel tablosundan personel ad ve soyad, departman tablosundan departman ad bilgisi getirilir. * Baz durumlarda tablo birletirme koulu bir aralk eklinde oluabilir. Yani tablolar birletirirken anahtar sahalarn belirli bir aral seilebilir. SELECT table1.kolonlar, table2.kolonlar FROM table1, table2 WHERE table1.kolon1 BETWEEN table2.min2 AND table2. max2 * (OUTER JOIN) Bir dier durumda tablodaki verilerin deerleri null olabilir. Fakat biz null deerlere sahip olanlarda birlertirmek istersek eksik olan tablonun yanna (+) iareti eklenir. SELECT table1.kolonlar, table2.kolonlar FROM table1, table2 WHERE table1.kolon1 (+) = table2.kolon2 * (SELF JOIN) Bir baka durumda ayn tablodaki kendi iindeki kolonlar arasnda iliki kurulabilir. Baz durumlarda kolonlardaki deerleri eit olma durumlarna gre sorgu dzenlenebilir.

SELECT table1.kolonlar FROM table1 a, table1 b WHERE table1.a = table1. b

Grup (GROUP) Fonksiyonlar

Bazen belli bir koula uygun belli bir topluluk iin sorgu kurulabilir. Bu durumda grup ilemi yaplr. rnein departmanlara gre grup oluturulup o departmandaki personel says hesaplanabilir. Grup fonksiyonlar sadece grup ifadeleriyle kullanlabilir.

Yazlm: SELECT kolonlar, grup fonksiyonlar FROM table [WHERE kotul] [GROUP BY grup_kolonu] [HAVING group_kotulu] [ORDER BY kolon]

GROUP BY satr ile kolonlar zerinde kk gruplar oluturulur. HAVING satr ile bu oluturulan grup iin grup koullar tanmlanabilir. Where koulundan fark WHERE kayt zerinde koul koyar, HAVING ise sadece grup kaytlar zerinde koul konabilir ve grup fonksiyonlar kullanlabilir.

AVG(Kolon) : Belirtilen kolonun ortalamasn bulur. COUNT(Kolon) : Belirtilen kolonun kayt saysn bulur. Count(*) ile o grupta oluturulan kayt says hesaplanr. Null deerler iin nvl fonksiyonu kullanlr. nk kolon iindeki null deerler ileme alnmaz. MAX(Kolon) : Belirtilen kolondaki kaytlarn deerlerinin maksimum deerini bulur. Saysal, karakteristik veya tarihsel olarak kendi iinde sralama yapabilir.

MIN(Kolon) : Belirtilen kolondaki kaytlarn deerlerinin minimum deerini bulur. Saysal, karakteristik veya tarihsel olarak kendi iinde sralama yapabilir. SUM(Kolon) : Belirtilen kolondaki kaytlarn deerlerinin saysal toplamn bulur. VARIANCE(Kolon) : Belirtilen kolondaki kaytlarn deerlerinin matematiksel varyansn bulur.

rnein bir personel listesindeki departmanlarn ayr ayr departman iindeki personelin max ve min maas alan kiilerin maaslarn isteyelim; SELECT Departman_id, MAX(Maas) , MIN(maas) TABLE Personel GROUP BY Departman_id Veya 38 nolu departmandaki personel saysn bulalm; SELECT COUNT(*) TABLE Personel WHERE Departman_id = 38 Veya tm departmanlardaki maalarnn ortalamas 80.000.000 den byk olanlarn listesini oluturalm; SELECT Departman_id, AVG(Maas) TABLE Personel GROUP BY Departman_id HAVING AVG(maas) > 80000000 Baz durumlarda i ie grup oluturulmas istenebilir. Bu durumda u ekilde yazlr. GROUP BY Kolon1, Kolon2 , rnein Departman adna ve personel yasna gre grup oluturalm. SELECT Departman_id, Yas TABLE Personel GROUP BY Departman_id, Yas

Altsorgular(SUBQUERY)

Subquery, bir sorgu oluturulurken, bu sorguya ait kriterleri baka bir sorgu belirleme durumudur. Ksaca sonucu bilinmeyen koullar olduunda bu yntem kullanlr.

Yazlm: SELECT .. FROM WHERE kolon=( SELECT FROM . WHERE .)

Select cmlesi parantes iinde tanmlanr. = koulu kondu ise select cmlesi tek deer dndrmek zorundadr. Eer birden fazla deer iin koul konulmas gerekirse " in, not in " kelimesi kullanlr. Tek kayt dndnde = yerine >,>=, <, <=, <> kontrol ifadeleride kullanabiliriz. Bir nemli nokta da koula eitlenecek deer 2. Select cmlesi iindeki kolon deerine e olmaldr. Yani tipleri eit olmaldr.

Subquery sorgulama tekniinde order by kullanlamaz. Having grup kotulu iinde select cmlesi kullanabiliriz.

rnein;

1. sorgu : Kazm' n departman numaras katr? 2. SELECT dept_id,name


FROM Personel WHERE name='Kazm'

3. sorgu : Departman numaras 38 olan kiilerin listesinden ad kazm olan var m incele? 4. SELECT dept_id,name
FROM Personel WHERE dept_id=38

5. sorgu : Bu iki sorgunun birleimi istenirse, yani departman 38 olan kazm adl personel bigisi ?

SELECT dept_id,name
FROM Personel WHERE dept_id=( SELECT dept_id

FROM Personel
WHERE name='Kazm')

alma Annda Sorguya Dardan Deer Alma


Bir sorgu oluturulurken bazen baz alanlarn deerleri deikendir. Bu yzden sorguya dardan deer girilmesi ve bu deere gre bir sorgu oluturulmas gerekir. Bunun iin anahtar kelimenin bana & karakteri getirilir. rnein istenilen departmankoduna gre personelin ad ve soyad listeleyelim; SELECT ad,soyad FROM Personel WHERE Dept_id = &Departman_kodu Ekran: Departman_kodu iin deer gir: 38 eski 1: select ad,soyad from Personel where Dept_id = &Departman_kodu yeni 1: select ad,soyad from Personel where Dept_id = 38 Eer sorgu yazlm sorunlu ise bu giri yapldktan sonra anlalr ve kesinlikle girilen deer kolon tipine e olmaldr. rnein &anahtar_kelime eklinde trnak arasnda belirtilmise giri olarak sadece text deer girilir. Ama &anahtar_kelime trnak iinde belirtilmemise giri yaplrken trnak iinde giri yaplmaldr. Birden fazla &anahtar_kelime tanmlanrsa srayla sorgu sorulur ve tm deerler girildikten sonra sorgu oluturulur. Eer where koulunda &anahtar_kelimesi kullanlmsa giri yaplrken matematiksel koul eklinde giri yapabiliriz. Eer anahtar kelimenin bana && konulursa sorgu srasnda sadece bir kerelik sorgu sorulur. Bundan sonra anahtar kelimenin deeri ilk girilen deer olarak geerlidir. DEFINE deiken=deer : Belirtilen deikene karakter atanr. ACCEPT : Kullancya aklayc mesaj verilerek istenilen tipte veri girii yaplmas salanr. & iaretiyle yaplan ilemin daha kontrollu eklidir. Yazlm : ACCEPT deiken [datatipi] [ FORMAT ] [PROMPT text] [HIDE]

Deiken Giri yaplacak verinin deerinin tutulduu anahtar kelimedir. Datatipi Girii yaplacak verinin veri tipidir. FORMAT Giri yaplacak verinin giri dzeni salanr. rnein rakam iin 9999 (4 haneli say) , karakter iin A10 (10 karakterlik yer) . PROMPT Kullancya girecei deer iin aklayc mesaj grntler. HIDE Giri yaplrken verinin grntlernmeden giri yaplmas salanr. rnein ifre girilerinde. rnekler; ACCEPT adi PROMPT Adnz giriniz: ACCEPT yas NUMBER PROMPT Yanz giriniz: ACCEPT yil NUMBER FORMAT 9999 PROMPT Bulunduunuz yl giriniz: ACCEPT sifre CHAR PROMPT Tifrenizi giriniz: HIDE rnek: Personel adna gre personel bilgilerini gsterelim. Bunun iin bir .sql uzantl dosyada yazalm. Bu program start ile altralm. Ornek.sql SET ECHO OFF ACCEPT adi PROMPT Adnz Giriniz: SELECT * FROM Personel WHERE UPPER(Personel.ad) LIKE UPPER(&adi) / SET ECHO ON Start Ornek.sql yazlarak sql altrlr.

Bazen parametre girilerini daha balangta vermek istenirse; Start Dosya_ad Parametreler, rnein yukardaki rnek iin Start Ornek Kazm

Tablolarn Yaratlmas

Databasede verilerin saklanmas amacyla tablolar yaratlr. Tablo yaratabilmek iin o kullancnn buna yetkisi olmaldr. Ayn zamanda limitsiz tablespace hakkna sahip olmaldr. Yazlm : CREATE TABLE [kullanc.]table (kolon datatipi(boyutu) [DEFAULT deer] [CONSTRAINT constraint_name] constraint_type] [table_constraint] [PCTFREE integer] [PCTUSED integer] [TABLESPACE tablespace] [STORAGE storage_clause] [CACHE] [ENABLE enable_clause] [DISABLE disable_clause] [AS subquery]

Kullanc Tablonun yaratcsdr. Onun sahip olduu haklara ve mekana sahiptir. Kolon Tablonun kolon adlarn belirler. Bir tablodaki kolon says 1-254 arasnda olmaldr. Datatipi Bir kolonun veri tipini belirler.

Varchar2(boyut): Boyut ile belirtilen max miktar kadar karakterdir.Max deeri 2000dir.
Char(boyut) : Boyut ile belirtilen max miktar kadar karakterdir.Max.

deeri 255dir.

Number : e38 e kadar olan tm saysal deerlerdir.

Number(m,n) : m kadar (max e38) saynn n kadar ondalk alan iin


deer alr.

Date : Tarih ve saat deerlerini bir tutar.

Boolean : Mantksal ifadeleri saklar. Yani doru ise True,

yanl ise false.

Long : Max 2GB a kadar byk olan alanlar iin yer tutar. Raw : Grafiksel yapdaki veriler iin tanmlanr. DEFAULT Herhangi bir kolona deer girilmezse, direkt olarak deer atamaya yarar. Girilen deerin veri tipi ile ayn olmas gerekir. CONSTRAINT O kolon iin daha aklayc olmas asndan ve yaps asndan kullanlr. table_constraint O tablo iin daha aklayc olmas asndan belirtilen etikettir. PCTFREE Tablo zerinde yaplan kayt gncelleme ilemleri iin, kayt bloklarndaki ayrlacak rezervasyon yzde deeridir. 1-99 arasnda bir tamsaydr. 0, tm bloklara yeni kayt giriine izin verilir. Varsaylan deer 10dur. Yani gncelleme iin her bloun %10unu rezerve eder. Geri kalan %90nn ise yeni kayt girilerine ayrr. PCTUSED Tablonun her veri blou iin Oraclenin koruduu, kullanlm alann min yzdesini verir. 1-99 arasnda bir tamsaydr.Varsaylan deeri 40dr. Verilen parametre deerinin altna dek blok iin, yeni kayt girii seimliktir. PCTFREE+PCTUSED <100 olmak zorundadr. TABLESPACE Oraclen tabloyu yarataca tablo boluunu belirler. Eer tanmlanmazsa allmakta olan kullancnn tablo boluunda yaratlr. STORAGE Tablonun depolama karakteristiini belirler. Byk tablolarda perfonmans dzenleyici olarak kullanlr. CACHE Tablo zerinde arama yaplrken, hafza cachenin en ok kullanlanlar zerinde yer almasn salar. ENABLE Btn snrlamalar geerli klar. DISABLE Btn snrlamalar iptal eder. AS query Tablo yaratlrken, alt sorgu aracl ile geriye dndrlen satrlar tabloya yerlettirilir. (insert)

Data Dictionary

Database ile ilgili her trl bilgiyi buraya atar. Buradan verilere ulaabiliriz. Kullanclar, tablolar, indexler, constraintsler vb. birok aklayc bilgiler tutulur. Btn tablo ve viewerlarn adlarn ve aklamalarn grnek iin ; SELECT * FROM Dictionary; Dictionarynin yapsn grmek iin; DESC dictionary sim Tip -------------------- -------------------------TABLE_NAME VARCHAR2(30) COMMENTS VARCHAR2(2000) Dictionaryde bulunan objelerden bazlar; User_tables Hangi kullanc ile login olundu ise o kullancya ait tablolar listeler. All_tables Btn kullanclarn yaratt tablolar listeler. Dba_tables Database ile ilgili her trl tablolar listelenir. V$_tables Systemin performansn lmek iin tutulan bilgilerdir. V$_librarycache Cachein yeterli olup olmadn anlamak iin baklr. V$_rollstat Rollback segmentinin yeterli olup olmadn anlamak iin baklr. rnek : Login sifresiyle giren kullancnn yaratt tablolarn listesini alalm; SELECT table_name FROM user_tables

rnek: Tm obje isimlerinin listesini alalm; SELECT object_name FROM user_objects

Database zerinde Transaction Kontrol Komutlar

Transaction, datann tutarl ekilde korunmasn salayan yntemdir. Database zerinde kayt yapma , silme, dzeltme vb. ilemlerin yaplabilmesi iin aadaki komutlara ihtiya vardr;

INSERT INTO : Tabloya yeni bir kayt eklenmesini salar. Yazlm; INSERT INTO table [(kolon1, kolon2, )] VALUES (deer1, deer2, )

Kolon Tablonun kayt yaplaca kolon adlarn belirler. Bir tablodaki kolon says 1-254 arasnda ve o tabloda var olmaldr. Deer O kolon iin alaca deer verilir. Kolon tipiyle ayn olmaldr. Eer kolon adlar belirtilmezse deerler kolon srasna gre deer almaldr. Deerlere sysdate, user vb. hazr fonksiyonlar aktarlabilir. Eer bir alana deer verilmesi istenmiyorsa, yani bo deer verilmesi isteniyorsa NULL deeri verilir. rnek: Personel tablosuna yeni bir personel giriti yapalm; INSERT INTO personel (ad,soyad,maas,ayrilma_tarihi,kayit_giris_tarihi) VALUES (Kazm,Sarkaya,400000000,NULL,SYSDATE)

Ayn rnek iin kolon srasn bildiimiz dsnlrse u ekildede yazlabilir; INSERT INTO personel VALUES (Kazm,Sarkaya,400000000,NULL,SYSDATE)

Sadece tek kayt girii yaplyorsa, rahat veri girii yaplmas iin deerlere deiken tanmlayarak veri girii salayabiliriz. Bylece table her altnda yeni veri girii yaplr.

rnek: Personel tablosuna her altrdmzda yeni bir personel girii yapalm; INSERT INTO personel (ad,soyad,maas,ayrilma_tarihi,kayit_giris_tarihi) VALUES (&Adi,&Soyadi,&maas,NULL,SYSDATE)

rnek: Daha gvenli ve rahat giri yaplacak ekilde kayt yaplacak script yazalim; SET ECHO OFF

ACCEPT ad PROMPT Adn giriniz: ACCEPT soyad PROMPT Soyad giriniz: ACCEPT maas PROMPT Maan giriniz: INSERT INTO personel(ad,soyad,maas,ayrilma_tarihi,kayit_giris_tarihi) VALUES (&ad,&soyad,&maas,NULL,SYSDATE) / SET ECHO OFF Kayt yaplacak kolonlarn deerleri bilinmiyorsa veya baka bir tablodan deer alnmas gerekiyorsa aadaki yap kullanlr; Yazlm; INSERT INTO table [(kolon1, kolon2, )] Altsorgu

rnek: Personel tablosuna departman tablosundan departman kodu 38 olan personellerin deerlerini aktaralm; INSERT INTO personel(ad,soyad,maas,ayrilma_tarihi,kayit_giris_tarihi) SELECT adi,soyadi,maasi,ayrilma,kayit_giris

FROM departman
WHERE dept_id=38

UPDATE : Tablodaki kolonlarn deerlerini deitirmek iin kullanlr. Yazlm; UPDATE table SET kolon1=deer1, kolon2=deer2, [WHERE kotul]

Kolon Tabloda deiiklik yaplacak kolon addr. Bir tablodaki kolon says 1-254 arasnda ve o tabloda var olmaldr. Deer O kolon iin alaca deer verilir. Kolon tipiyle ayn olmaldr. Eer kolon adlar belirtilmezse deerler kolon srasna gre deer almaldr. Deerlere sysdate, user vb. hazr fonksiyonlar aktarlabilir. Eer bir alana deer verilmesi istenmiyorsa, yani bo deer verilmesi isteniyorsa NULL deeri verilir.

rnek: 41 nolu departmann maan %13 artralm; UPDATE Personel SET maas=maas+maas*13/100 WHERE dept_id=41

rnek: 649 nolu personelin departman kodu 10 olsun; UPDATE Personel SET dept_id=10 WHERE personel_id=649

Eer WHERE koulu konulmazsa tm tablo iin kolon deerini deitirir. Koulu SET ile deitirdiimiz kolona veremeyiz.

DELETE : Tabloda belirtilen kayd siler. Yazlm; DELETE FROM table [WHERE kotul]

rnek : Personelin maalar 100.000.000 dan kk olan kaytlar silelim; DELETE FROM Personel WHERE maas<100000000

Bir tablodaki tm kaytlar silmek istersek koul konmaz. Tablo silinmez, sadece kaytlar silinir. rnein DELETE FROM Personel

Foreign key veya primary key silinecek kaytda varsa silinme hatas verir. nk baka tablo ile iliki kurulduundan(join), dier tablonun kulland kayt vardr. O yzden bu kayd silebilmek iin, ilikide bulunduu tm kaytlar nce silmek gerekir. Ayn zamanda tablo zerinde alan kullanc varsa

kaytlar silinemez. ROLLBACK komutu ile silinen kaytlar kurtarabiliriz(Tabi ki en son COMMIT komutu kullanlana kadar).

COMMIT : Btn yaplan ilemleri kesin olarak kalc olmasn salar. Bylece yaplan deiiklikleri varsa dier kullanclarda grr. SAVEPOINT x : lemi belirli bir yere ynlendirmek iin kullanlr. X ile belirtilen alan iin iaret konularak istenildiinde bu iarete kadar ilemler yaplabilir. ROLLBACK x : Btn yaplan ilemleri kesin olarak iptal eder. SAVEPOINT komutu ile belirlenen x kodlu alana kadar olan tm itleri iptal eder. Yazlm; ROLLBACK [TO SAVEPOINT x]

rnek: UPDATE personel .. SAVEPOINT dn DELETE FROM Personel INSERT INTO .. ROLLBACK dn teklindeki bir itlemle personel kaydnn silinmesi ve yeni kayt eklenmesi ilemi iptal edildi. Ama ilk yaplan deiiklik kald. Read uncommitted Commit olmadan grnmez. O halde byle level yoktur. Read committed Oraclen varsaylan deeridir. Committen sonra ilem grr. Serializable Yaplan insert ilemleri gzkmez. Eski datalar gzkr. Read only Transaction itleminde sadece okuma var demektir.

ALTER TABLE : Yeni bir kolon eklemek, kolonun tipini veya uzunluunu deitirmek vb. yapsal deiiklikler yaplmas iin kullanlr. Eer kolon zerinde deiiklikler yaplacaksa dikkat edilmesi gereken koullar vardr. rnein kayt uzunluu 15 iken uzunluunu 10a indirirsek kayt iindeki bilgiler kesilir. Kolonlar ekleyebilir ve yapsal deiiklikler yapabiliriz. Constraint yapsn ekler, silebilir, enable ve disable yapabiliriz. Yazlm; ALTER TABLE table [ADD (kolon datatipi [DEFAULT deer] [NOT NULL]) , ]

[ADD [CONSTRAINT aklama] tipi (kolon)] [MODIFY (kolon datatipi [DEFAULT deer] [NOT NULL]) , ] [DROP [CONSTRAINT aklama] tipi (kolon)] [ENABLE | DISABLE CONSTRAINT aklama]

ADD Yeni bir kolon ekler. MODIFY Kolonun ieriini, uzunluunu ve tipini deitirir. Bunun iin kaytlarn deeri null olmaldr. DROP Kolonu siler. Kolon Tabloda itlem yaplacak kolon addr. Datatipi Kolonun alaca tipi belirler. DEFAULT deer Kolonun ilk alaca deerdir. Kolon hi deer atanmaz ise burada deer ile ifade edilen sabit veri aktarlr. ENABLE Unique veya primary key indexlerin otomatik yaratlmasn salar. Btn kaytlarn tanmlanan unique veya primary key tanmna uymas gerekir. DISABLE Unique veya primary key tanmn kaldrr.

rnek : Personel tablosuna ek maas isminde 15 uzunluunda bir kolon yaratalm. lk deer 0 olsun. ALTER TABLE Personel ADD (ekmaas number(15) DEFAULT 15)

rnek : Personel tablosundaki pers_id ile departman tablosundaki dept_id arasnda FOREIGN KEY kuralm. ALTER TABLE Personel ADD CONSTRAINT personel_dept_id_fk FOREIGN KEY (dept_id) REFERENCES personel(pers_id)

rnek : Personel tablosundaki maas kolonundaki alan uzunluunu 15e karalm.

ALTER TABLE Personel MODIFY (maas number(15))

rnek : Personel tablosundaki maas kolonu silinsin. ALTER TABLE Personel DROP (maas number(15))

rnek: Personel tablosundaki personel_id primary key iin index yaratlmas otomatikletirelim; ALTER TABLE Personel ENABLE CONSTRAINT Personel_id_pk DROP TABLE : Tabloyu fiziksel olarak siler. Rollback komutu ile silinen tablo geri getirilemez. Tabloyu ancak yetkisi olan kullanc silebilir. Yazlm; DROP TABLE table [CASCADE CONSTRAINTS]

rnek: Personel tablosunu silelim; DROP TABLE Personel

RENAME ..TO.. : Objelerin ismini deitirmek iin kullanlr. Otomatik olarak commit olur. Tabloyu ancak yetkisi olan kullanc silebilir. Yazlm; RENAME eski_isim TO yeni_isim

rnek: Personel tablosunun adn pers olarak deitirelim; RENAME personel TO pers

TRUNCATE TABLE : Tablodaki tm kaytlar siler. Delete komutu gibi olmasna karn o komuttan ok daha hzl silme ilemi yapar. Rollback komutu ile silinen kaytlar geri getirilemez. Otomatik olarak commit olur. Tabloyu ancak yetkisi olan kullanc silebilir. Yazlm; TRUNCATE TABLE table Delete komutu ile Truncate arasndaki en nemli fark; Delete komutu kaytlar silmek iin kaytlarda boluk brakr. Truncate ise tamamen kaytlar temizler, yani baa sarar. rnek: Personel tablosundaki tm kaytlar silelim; TRUNCATE TABLE Personel

COMMENT ON TABLE : Tablo veya kolonlarn ierii hakknda aklayc bilgi verilir. 2000 byte aklama alan girilebilir. Yazlm; COMMENT ON TABLE table | COLUMN table.kolon IS aklama

rnek : Personel tablosu aklamas Baak Sigortada alan kiiler olarak not delim; COMMENT ON TABLE personel IS Baak Sigortada alan kiiler rnek : Personel tablosundaki pers_id kolonun aklamas Personel numaras olarak not delim; COMMENT ON COLUMN personel.pers_id IS Personel numaras ALL_COL_COMMENTS Yetkili olan kullancnn kolonlarnn aklayc notlar listelenir. USER_COL_COMMENTS Tm kullanclarn kolonlarnn aklayc notlar listelenir. ALL_TAB_COMMENTS Tm kullanclarn tablolarnn aklayc notlar listelenir. USER_TAB_COMMENTS Yetkili olan kullancnn tablolar iin aklayc notlar listelenir.

Otomatik Numara retimi(Sequence)


Yapt i unique saylar retmektir. Belli oranlarda arttrmalar yaplmakta kullanlr. Her arldnda yeni bir say retir. Extra bir hesaplama yaplmadan, seri olarak tanmland ekilde rakamlar retir. Saylar cacheden okuduu iin ok hzl sonu retir. Yazlm; CREATE SEQUENCE kolon [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE]

INCREMENT BY n Saynn art miktar belirtilir. Varsaylan deer 1dir. Birer birer say arttrlr. START WITH n Numarann retilecei balang numarasdr. Varsaylan deer 1dir. MAXVALUE n Numarann alabilecei maksimum rakam yazlr. NOMAXVALUE ile biti numaras verilmez. Max = 1027 MINVALUE n Numarann alabilecei minimum rakam yazlr. NOMINVALUE ile balang numaras verilmez. Min = 1 CYCLE | NOCYCLE Maxvalue deeri kadar ilem yapldktan sonra ilemi tekrardan balatr.Varsaylan deer NOCYCLEdr. CACHE Cache says kadar sayy hafzaya gnderir. Varsaylan deer NOCACHE=20dir.

rnek: Personel departmannn pers_id kolonunu 10dan 50ye kadar 2er 2er arttralm; CREATE SEQUENCE pers_id INCREMENT BY 2 START WITH 10 MAXVALUE 50

NOCYCLE NOCACHE

rnek: Personel departmannn pers_id kolonunu birer birer arttralm; CREATE SEQUENCE pers_id INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE

USER_SEQUENCES : Sequencesin en son durumu gsterir. Yazlm; SELECT sequence_name, min_value, max_value, increment by, last_number FROM user_ sequences

Sequence_name lemlerin tanmland isimdir. Min_value Saynn ald min deerdir. Max_value Saynn ald max deerdir. Increment_by Saynn ald art miktarnn gsterir. Cycle_flag lemin tekrar yaplmas isteniyorsa Y, istenmiyorsa N deerini alr. Cache_size Hazfazadaki cache saysdr. Last_number Numarann alaca deerdir

NEXTVAL : En son ald saynn bir sonra alaca deeri gsterir.

rnek: Personel tablosuna pers_id kolonuna otomatik deerler tayarak kayt edelim; INSERT INTO personel VALUES (pers_id.NEXTVAL,Kazm,Sarkaya)

CURRVAL : O anki saysal deeri gsterir. Eer hi nextval fonksiyonu kullanlmamsa deeri bo deer gelir.

rnek: pers_id kolonunun o anki alaca deeri seelim; SELECT pers_id.CURRVAL FROM DUAL

ALTER_SEQUENCE : Deiiklik bir yerden balanacaksa nce drop edilir, sequence ilemini deitirir. Yazlm; ALTER SEQUENCE kolon [INCREMENT BY n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE]

DROP_SEQUENCE : Kolon iin yaratlan ilemleri siler. Yazlm; DROP SEQUENCE kolon

View
Bir tablo zerinde sorgulama yaplmas iin kullanlan nesnedir. Fiziksel olarak herhangi bir yerde saklanmaz. Avantajlar;

Database eriimini kstlar. Bylece sadece sorgulanan verileri gzkr. Sorgulamalar kolaylatrabilir. Datay bamsz olarak gsterebiliriz.

Yazlm; CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view_adi [alias] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY] FORCE Hata durumu oluursa gzard ettirilir. NOFORCE ise gzard edilmez. View_adi Yaratlan view sorgu addr.. Alias Yaratlan ilemin addr. WITH CHECK OPTION [CONSTRAINT View objesine hatal ileme yaplmasn engeller. rnek: Departman numaras 41 olan peroneller iin perview isminde bir view olturalm;

CREATE VIEW persview AS SELECT * FROM personel WHERE dept_id=41 WITH CHECK OPTION CONSTRAINT empview_ck;
Departman idsi 16 olan personellerin departman numarasn 38 yapalm; UPDATE persview SET dept_id=38 WHERE id=16; Bu durumda bu deiiklik tabiki yaplamaz. WITH READ ONLY View objesinin sadece okuma amal olduu belirtilir. Farkl bir ilem yapldnda bunu engeller. Aslnda kaytlar zerinde deiiklik yaplmasn engeller. rnek: Departman numaras 45 olan peroneller iin perview isminde bir view olturalm;

CREATE VIEW persview

AS SELECT * FROM personel WHERE dept_id=41 WITH READ ONLY; Departman idsi 10 olan personellerin silinmesini salayalm; DELETE FROM persview WHERE id=10; Bu durumda ilemi keser ve uyar verir. USER_VIEWS : Data dictionary tablosunda view tanmlar bulunur. View ad, text uzunluu ve textI saklar. VEW_NAME Kullancya ait view adlarnn tutar. TEXT_LENGTH Sql ifadenin uzunluudur. TEXT Sql ifadedir. DROP VEW : Yaratlan view objesini siler. Yazlm; DROP VIEW view_ad

INDEX YARATMA
Indexler, bir tablonun istenilen kolonlarna daha hzl eriim olana salamak iin kullanlr. Tablodaki kaytlar zerinde giri/k ilemleri yaplrken dataya daha hzl ulalmas salanr. Primary key tanmlanan kolonlar iin otomatik olarak index yaratlr. Index en fazla 16 kolondan oluur. Bir kolon tipi long veya long raw olamaz.

Yazlm; CREATE INDEX index_adi ON tablo_ad(kolonlar)

rnek: Personelin adna ve soyadna gre index oluturalm; CREATE INDEX personel_inx ON personel(ad,soyad); Bylece ad kolonu ncelikli olmak kaydyla birlikte soyadna gre sralama yapar, yani index oluturur. nce ada gre sralar, eer ayn isimden birden fazla kayt oluursa bu sefer soyad kolonundaki deerlere gre sralama oluturur.

Index yaratabilmek iin; Index yaratlacak tablonun var olmas gereklidir, Index yaratma hakkna sahip olmaldr, Limitsiz tablespace hakkna sahip olmaldr.

Index yaratlma ihtiyac aadaki koullar olutuunda belirir; Where ifadesi ile sk sk kullanlan kolonlar kullanlyorsa, Join ile birletirme ilemi yapldnda, Kolon deerleri geni aralkta ise, Byk rakaml kolonlarn iinde null deerler bulunuyorsa.

Index yaratlmama ihtiyac aadaki koullar olutuunda belirir; Tablo kk ise,

Tablodaki baz kolonlara sk sk ihtiya duyulmadnda, Tabloda sk sk deiiklikler yaplyorsa.

USER_INDEXES ndex isimlerini ve unique olup olmad bilgilerini saklar. rnek: Personel tablosuna ait index dosyalarn listeleyelim; SELECT ic.index_name,ic.column_name,ic.colum_position,ix.uniqueness FROM user_indexes ix, user_ind_columns ic WHERE ic.index_name=ix.index_name AND table_name=Personel; DROP INDEX Yaratlan indexleri veri tabanndan yok etmek iin kullanlr.

DATABASE GVENL
Database gvenlii iin kullanclar tanmlanr. Her kullancnn bir ifresi bulunur. Kullanclara belirli yetkiler verilir. Sistem ve data gvenlii olmak zere iki ksmda incelenir. Sistem gvenlii iinde kullancya yaratma, deitirme, silme vb. yetkiler tanmlanr. Data gvenlii iin ise datalar baka bir ortama yedekleme(backup) yaplarak salanr. Database level aamalar ile gvenlik snrlanr. Eer yksel level yetkisi varsa yeni kullanc(veya tablolar) yaratabilir veya silinebilir. Tablolarn yedekleri alnabilir. CREATE USER Database zerinde ilemler yaplabilmesi iin kulanc yaratlr. Yazlm; CREATE USER user_ad IDENTIFIED BY tifre DROP USER Databaseden kullancy siler. Yazlm; DROP USER user_ad GRANT (Yetki) Kullancya yetki verilmesi iin kullanlr. Yazlm; GRANT yetkiler_roller TO kullanc [PUBLIC] [WITH GRANT OPTION]

[PUBLIC] WITH GRANT OPTION Sistem haklarn veya rollerini dier kullanclara vermeyi salar. Bir rol bu ekilde belirlersek kullanc rolleri deitirebilir veya silebilir. PUBLIC Sistem haklarn veya rollerini tm kullanclara vermeyi salar. rnek: Personel tablosunun pers_id,ad kolonlarna webserver kullancs iin dzeltme yetkisi verelim; GRANT select(pers_id,ad) ON Personel TO webserver rnek: Personel tablosuna webserver kullancs iin seme yetkisi verelim; GRANT select ON Personel TO webserver rnek: Kazm kullancs, webserver kullancsnn personel tablosu iin kayt etme ve sorgulama yetkilerini verelim; GRANT select,insert ON personel TO webserver WITH GRANT OPTION

rnek: Kazm kullancsnn personel tablosunu tm kullanclara sorugulama yapabilmesini salayalm; GRANT select ON kazim.personel TO PUBLIC

Grant yetkisi ile kullanclara aadaki tablodaki yetkiler verilebilir Objeler ALTER ? Table View ? Sequences Procedure

DELETE EXECUTE INDEX INSERT REFERENCES SELECT UPDATE

? ?

? ? ? ? ? ? ? ? ?

CREATE ROLE Kullancya yetki olarak verilen rollerdir.

Yazlm; CREATE ROLE rol;

rnek: CREATE ROLE Manager; GRANT create table, create view TO Manager; GRANT Manager TO webserver;

Manager isminde rol tanmland. Tablo ve view yaratma yetkisi verildi. Bu yetkiler Webserver isminde kullancya aktarld.

Kullancnn ifresini deitirmek iin; ALTER USER user_ad IDENTIFIED BY ifre

REVOKE Verilen rolleri geri alr.

Yazlm; REVOKE rol ON tablo FROM kullanc

rnek: webserver kullancsnn ifre tablosuna kayt etme,dzeltme ve sorgulama yetkilerini kaldralm, REVOKE select,insert,update ON tifre FROM webserver CREATE SYNONYM Bir objenin aynsnn kopyasnn alarak kendi usernda yaratr.

Yazlm; CREATE [PUBLIC ] SYNONYM obje_ad FOR kullanc.obje

PUBLIC Tm kullanclarn yetkilerini alr.

rnek: Webservern personel tablosunun aynsn kendi alanmzda yaratalm CREATE SYNONYM personel FOR webserver.personel DROP SYNONYM Bir objenin aynsnn kopyasnn alarak yaratlan objeyi siler. Yazlm; DROP [PUBLIC ] SYNONYM obje_ad

You might also like