You are on page 1of 3

Temel Sql Komutlar

Temel Sql komutlar iki blmde incelendiini daha nceki dkmanlarda bahsetmitik.
DDL (Data definition language) : Veri tanmlama dili.
DML (Data manuplation language) : Veri dzenleme dili.
DDL komutlar Create, Drop, Alter komutlar ile balar. ve obje tipi ve ad ile devam eder. bu
komutlardan baka zel komutlarda mevcuttur. rnein bir kullanc yaratmak iin:
Create User MyUserName .....
Bu ekilde komutlar girilir. Burada bir ka temel komut incelenecektir.
Create Database :
Database yaratmak iin kullanlr ek olarak database ad yazlr. Yaratlan database Select
database komutu ile seilir. Close Database komutu ile kapatlr. Bu komut informix'te kullanlr.
Create User:
Kullanc yaratmak iin kullanlr. Format u ekildedir.
Create User (UserName) identified by (Password) default tablespace (tablespacename);
(Username) kullanc addr. Zorunludur.
(Password) Kullancnn ifresidir.
(Tablespacename) Default tablespace ifadesi sadece oracle iin geerlidir. tablespacename yerine
oracle iin user_data tablespace'i kullanlr.
Create user Myuser identified by Mypass default tablespace user_data;
Create table:
Tablo yaratmak iin kullanlr.
Create table (TableName)
(
(FieldName) (FieldType) (Width) PrimaryKey,
(FieldName) (FieldType) (Width) Default (Default value),
(FieldName) (FieldType) (Width) not null,
(FieldName) (FieldType) (Width),
(FieldName) (FieldType),
Primary key ((PKeyField),(PKeyField))
) tablespace (TableSpaceName);
(TableName) : yaratlmak istenen tablo ad.
(FieldName) : kolon ad.
(FieldType) : Kolon tipi . Char, Varchar, Varchar2, Integer, Long, LongRaw, Raw, Smallint, byte,
boolean tiplerinden biri.
(Width) : Alan genilii.
(Default Value) : Default ifadesi ile beraber kullanlr. Eer kayt girilirken bu alana veri
girilmemise default value ne ise o deer kullanlr.
PrimaryKey : eer bir kolon primary key olarak tanmlanacaksa sonuna primarykey yazlr.
Primary Key ( ) : Bu ifade eer bir veya birden fazla kolon seilecekse kolon ad yanna deil ayr
bir satr olarak yazlr. primary key komutunun yannda parantez iine alan adlar yazlr.
(TablespaceName) : tablonun hangi tablespace ierisinde yer alaca yazlr.
rnek:
Create table personel
(
ID Integer,
Adi Varchar(20) not null,
Soyadi Varchar(20) not null,
Babaadi Varchar(20) not null,
Departman integer default 1,
Grev Varchar(20),
Primary Key (Adi, Soyadi, BabaAdi)
) tablespace user_data;

Create Index :
Indeks oluturmak iin bu kullanlr.
Create [ Foreign | unique ] index (indexname) on (tablename) ( (Tablefield), (TableField)....)
tablespace (Tablespacename);
Foreign : foreign key yaratmak iin kullanlr.
Unique : Index unique olacak manasnda kullanlr. Yani bu indexe giren kolonlar asla tekrar
etmeyecek yani her satrdan bir tane olacak manasnda kullanlr.
(IndexName) : index ad
(tablename) : hangi tabloda yaratlacaksa o tablonun ad.
(TableField) : tablonun kolonunun ad.
(Tablespacename) : index'in oluturulaca yerin tablespace ad.
Create index Personel_Departman_Inx on personel (Departman);
Eer primary key verilmemise onun yerine
Create unique index Personel_Unq_inx on personel (Adi, Soyadi, BabaAdi);
Create Sequence:
Sequence denen objeler sistemde belli bir sra veya uniqe'lik takip etmesi gereken ilemler iin
kullanlan bir objedir.
Create Sequence (SequenceName) Start with (StartValue) Increment by (Increment) Min Value
(MinValue) Max Value (MaxValue) Cycle;
(SequenceName): Sequence objesinin ad
(StartValue): Balang Deeri
(Increment): Arttrm deeri
(MinValue): En kk deeri
(MaxValue): En fazla alabilecei deer
Cycle : Eer max deere ularsa oradan min deere inip tekrar arttrm deeri kadar ykselterek
devam etmesini salar.
Basite bir sequence yaratmak iin create sequence (sequencename) yeterlidir. Minimum deeri
ok kk bir rakam. Max ok byk bir rakam arttrm deeri 1 balang deeri de 0 olarak alnr.
Oluan sequence'in tipi Long Integer'dr. Bir sequence'den deer okumak iin (sequence).nextval
ifadesi kullanlr. Bu bir rakam dndrr. o anki deeri okumak istiyorsak (sequence).currentval
kullanlr.
rnek:
Create sequence personel_Id_sequence;
Create trigger :
Trigger yaratmak iin kullanlr.
Create trigger (TriggerName) [ before | after ] [ Insert | Update | Delete ] on (TableName)
[For Each Row]
Begin
:
End;
Begin satr ile End satr arasnda yaplacak ilemlerin PL/SQL dilinde komutlar yazlr. Eer
Insert trigger' ise New ile yeni girilen kayttaki bilgiler alnr. UPDATE ise NEW ile yeni OLD ile
eski bilgiler alnr. Eer Delete ise sadece OLD ile eski bilgiler alnabilir. (TableName) hangi
tabloya bu trigger'in konacadr. (TriggerName) trigger'n addr. For Each Row komutu bu
trigger'in btn satrlar iin ayr ayr altrlmas gerektiini gsterir.
rnek:
Create Trigger Personel_Id_trigger before insert on personel
For each row
Begin
:new.Id:=Personel_Id_Sqn.nextval;
end;
Create Procedure ve Create Function:
Stored Procedure oluturmak iin kullanlr. Bu tipteki objelerin amac veri taban ortamnda
komutlarn iletilerek ilemlerin hzlandrlmas veya daha salkl bir ekilde zlmesidir. rnein

sayfalarca komut yazarak yaptnz ileri client tarafnda basite indirgeyerek gereksiz Lock'lardan
kurtulmak iin strored procedure tipi objeler kullanlr. trigger'da olduu gibi dil olarak PL/SQL
kullanlr. Eer geriye bir deer dndrlmek isteniyorsa Function kullanlabilir.
Create procedure (ProcedureName) ([IN|OUT|INOUT] (Param1) (ParamType1), [IN|OUT|INOUT]
(Param2) (ParamType2) ....)
is
Begin
:
End;
yine begin ve end arasnda PL/SQL ile yazlm komutlar bulunmaldr.
(ProcedureName): procedur'n addr.
(IN/OUT/INOUT): Parametrenin procedure giren mi yoksa procedur'den kan bir deermi
olduunu gsterir.Eer herhangi bir ey girilmemise IN olarak kabul edilir.
(Param1,2): Giren parametrelerin isimleri
(ParamType1): gnderilen parametrenin tipini belirtir.
rnek:
-- Aadaki procedr verilen isimde ka kii olduunu tespit etmek iin kullanlr.
Create Function IsimSay (Isim Varchar)
is
Say Integer;
Begin
Select count(*) into say from personel where ad=isim;
Return Say;
End;
Nispeten biraz pascal diline benzemesine ramen olduka basit komutlardan oluur. Bir
prosedrn arlmas ise u ekilde olur.
(Call ? = IsimSay(?))
Yukardaki ifade VB 4.0 ile beraber gelen RDO objesinden stored procedure armak iin
kullanlr. Eer oracle ile beraber gelen Sql*Plus programndan strored procedure veya function
arlmak istenirse
Var Sonuc Integer
Execute :Sonuc:=IsimSay('Ahmet');
Print Sonuc
Bylece stored procedure ile ilem gerekletirilmi olur.Eer stored procedure veriler zerinde
ilem yapmyorsa yani DDL komutu iermiyorsa o zaman stored procedure u ekilde de
arlabilir.
Select IsimSay('Ahmet') from Dual;
Dual oracle joker olarak kullanlan bir ifadedir. Herhangi bir kayt dndrmez. Ancak belirtilen
ekilde arldnda procedure altrlp sonu dndrlr.
Bunun dnda delphi'de stored procedure altrmak iin hazr objeler mevcuttur.
VB 5.0 ise stored procedure'leri listeleyip sizin bunlar programnzn bir paras gibi grmenizi
salayan objeleri getirmitir. Ayrca RDO zerinden stte verildii zere fonksiyonu yazdnzda
parametreleri rdo zerinden tanmlayarak sonucu alabilirsiniz. Bu ilem iin RDO'nun helplerine
bakabilirsiniz.
PL/SQL komutlar esas olarak DML ve DDL komutlarnn biraz daha farkllatrlmasyla ve ek
komutlar ve hata kontrolleri eklenmesi ile oluturulmutur. Basit ekilde pascal'a benzemekle
beraber olduka basittir.
Bu mesaj Facia tarafndan gnderilmitir.
narslankaya@writeme.com
http://members.tripod.com/~narslankaya
ICQ: 1670212

You might also like