Anasayfa  |    Forum  |    Shop  |    Site Haritası  |    Site Bilgileri  |    Site Kullanım Şartları  |    İletişim Formu  |    Takvim







<< Juli 2008 >>
  Mo. Di. Mi. Do. Fr. Sa. So.
>  30 1 2 3 4 5 6
> 7 8 9 10 11 12 13
> 14 15 16 17 18 19 20
> 21 22 23 24 25 26 27
> 28 29 30 31  1  2  3







Bulunduğunuz yer:   Anasayfa / Ürünler / MSSQL / Temel SQL Komutlar?
Temel SQL Komutlar?
Temel SQL Komutlar?

DDL (Data definition language) : Veri tan?mlama dili.

DML (Data manuplation language) : Veri düzenleme dili.

DDL komutlar? Create, Drop, Alter komutlar? ile ba?lar. ve obje tipi ve ad? ile devam eder. bu komutlardan ba?ka özel komutlarda mevcuttur. örne?in bir kullan?c? yaratmak için:

Create User MyUserName .....

Bu ?ekilde komutlar girilir. Burada bir kaç temel komut incelenecektir.

Create Database :

Database yaratmak için kullan?l?r ek olarak database ad? yaz?l?r. Yarat?lan database Select database komutu ile seçilir. Close Database komutu ile kapat?l?r. Bu komut informix'te kullan?l?r.

Create User:

Kullan?c? yaratmak için kullan?l?r. Format? ?u ?ekildedir.

Create User (UserName) identified by (Password) default tablespace (tablespacename);

(Username) kullan?c? ad?d?r. Zorunludur.

(Password) Kullan?c?n?n ?ifresidir.

(Tablespacename) Default tablespace ifadesi sadece oracle için geçerlidir. tablespacename yerine oracle için user_data tablespace'i kullan?l?r.

Create user Myuser identified by Mypass default tablespace user_data;

Create table:

Tablo yaratmak için kullan?l?r.

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) : yarat?lmak istenen tablo ad?.

(FieldName) : kolon ad?.

(FieldType) : Kolon tipi . Char, Varchar, Varchar2, Integer, Long, LongRaw, Raw, Smallint, byte, boolean tiplerinden biri.

(Width) : Alan geni?li?i.

(Default Value) : Default ifadesi ile beraber kullan?l?r. E?er kay?t girilirken bu alana veri girilmemi?se default value ne ise o de?er kullan?l?r.

PrimaryKey : e?er bir kolon primary key olarak tan?mlanacaksa sonuna primarykey yaz?l?r.

Primary Key ( ) : Bu ifade e?er bir veya birden fazla kolon seçilecekse kolon ad? yan?na de?il ayr? bir sat?r olarak yaz?l?r. primary key komutunun yan?nda parantez içine alan adlar? yaz?l?r.

(TablespaceName) : tablonun hangi tablespace içerisinde yer alaca?? yaz?l?r.




ö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,
Görev Varchar(20),
Primary Key (Adi, Soyadi, BabaAdi)
) tablespace user_data;

Create Index :

Indeks olu?turmak için bu kullan?l?r.

Create [ Foreign | unique ] index (indexname) on (tablename) ( (Tablefield), (TableField)....) tablespace (Tablespacename);

Foreign : foreign key yaratmak için kullan?l?r.

Unique : Index unique olacak manas?nda kullan?l?r. Yani bu indexe giren kolonlar asla tekrar etmeyecek yani her sat?rdan bir tane olacak manas?nda kullan?l?r.

(IndexName) : index ad?
(tablename) : hangi tabloda yarat?lacaksa o tablonun ad?.
(TableField) : tablonun kolonunun ad?.
(Tablespacename) : index'in olu?turulaca?? yerin tablespace ad?.
Create index Personel_Departman_Inx on personel (Departman);

E?er primary key verilmemi?se onun yerine

Create unique index Personel_Unq_inx on personel (Adi, Soyadi, BabaAdi);

Create Sequence:

Sequence denen objeler sistemde belli bir s?ra veya uniqe'lik takip etmesi gereken i?lemler için kullan?lan bir objedir.

Create Sequence (SequenceName) Start with (StartValue) Increment by (Increment) Min Value (MinValue) Max Value (MaxValue) Cycle;

(SequenceName): Sequence objesinin ad?
(StartValue): Ba?lang?ç De?eri
(Increment): Artt?r?m de?eri
(MinValue): En küçük de?eri
(MaxValue): En fazla alabilece?i de?er
Cycle : E?er max de?ere ula??rsa oradan min de?ere inip tekrar artt?r?m de?eri kadar yükselterek devam etmesini sa?lar.

Basitçe bir sequence yaratmak için create sequence (sequencename) yeterlidir. Minimum de?eri çok küçük bir rakam. Max çok büyük bir rakam artt?r?m de?eri 1 ba?lang?ç de?eri de 0 olarak al?n?r. Olu?an sequence'in tipi Long Integer'd?r. Bir sequence'den de?er okumak için (sequence).nextval ifadesi kullan?l?r. Bu bir rakam döndürür. o anki de?eri okumak istiyorsak (sequence).currentval kullan?l?r.

örnek:

Create sequence personel_Id_sequence;

Create trigger :

Trigger yaratmak için kullan?l?r.

Create trigger (TriggerName) [ before | after ] [ Insert | Update | Delete ] on (TableName)
[For Each Row]
Begin :
 End;


Create Index :

Indeks olu?turmak için bu kullan?l?r.

Create [ Foreign | unique ] index (indexname) on (tablename) ( (Tablefield), (TableField)....) tablespace (Tablespacename);

Foreign : foreign key yaratmak için kullan?l?r.

Unique : Index unique olacak manas?nda kullan?l?r. Yani bu indexe giren kolonlar asla tekrar etmeyecek yani her sat?rdan bir tane olacak manas?nda kullan?l?r.

(IndexName) : index ad?
(tablename) : hangi tabloda yarat?lacaksa o tablonun ad?.
(TableField) : tablonun kolonunun ad?.
(Tablespacename) : index'in olu?turulaca?? yerin tablespace ad?.
Create index Personel_Departman_Inx on personel (Departman);

E?er primary key verilmemi?se onun yerine

Create unique index Personel_Unq_inx on personel (Adi, Soyadi, BabaAdi);

Create Sequence:

Sequence denen objeler sistemde belli bir s?ra veya uniqe'lik takip etmesi gereken i?lemler için kullan?lan bir objedir.

Create Sequence (SequenceName) Start with (StartValue) Increment by (Increment) Min Value (MinValue) Max Value (MaxValue) Cycle;

(SequenceName): Sequence objesinin ad?
(StartValue): Ba?lang?ç De?eri
(Increment): Artt?r?m de?eri
(MinValue): En küçük de?eri
(MaxValue): En fazla alabilece?i de?er
Cycle : E?er max de?ere ula??rsa oradan min de?ere inip tekrar artt?r?m de?eri kadar yükselterek devam etmesini sa?lar.

Basitçe bir sequence yaratmak için create sequence (sequencename) yeterlidir. Minimum de?eri çok küçük bir rakam. Max çok büyük bir rakam artt?r?m de?eri 1 ba?lang?ç de?eri de 0 olarak al?n?r. Olu?an sequence'in tipi Long Integer'd?r. Bir sequence'den de?er okumak için (sequence).nextval ifadesi kullan?l?r. Bu bir rakam döndürür. o anki de?eri okumak istiyorsak (sequence).currentval kullan?l?r.

örnek:

Create sequence personel_Id_sequence;

Create trigger :

Trigger yaratmak için kullan?l?r.


Create trigger (TriggerName) [ before | after ] [ Insert | Update | Delete ] on (TableName)
 [For Each Row]
Begin
:
 End;

Begin sat?r? ile End sat?r? aras?nda yap?lacak i?lemlerin PL/SQL dilinde komutlar? yaz?l?r. E?er Insert trigger'? ise New ile yeni girilen kay?ttaki bilgiler al?n?r. UPDATE ise NEW ile yeni OLD ile eski bilgiler al?n?r. E?er Delete ise sadece OLD ile eski bilgiler al?nabilir. (TableName) hangi tabloya bu trigger'in konaca??d?r. (TriggerName) trigger'?n ad?d?r. For Each Row komutu bu trigger'in bütün sat?rlar için ayr? ayr? çal??t?r?lmas? gerekti?ini gösterir.

ö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 olu?turmak için kullan?l?r. Bu tipteki objelerin amac? veri taban? ortam?nda komutlar?n i?letilerek i?lemlerin h?zland?r?lmas? veya daha sa?l?kl? bir ?ekilde çözülmesidir. örne?in sayfalarca komut yazarak yapt???n?z i?leri client taraf?nda basite indirgeyerek gereksiz Lock'lardan kurtulmak için strored procedure tipi objeler kullan?l?r. trigger'da oldu?u gibi dil olarak PL/SQL kullan?l?r. E?er geriye bir de?er döndürülmek isteniyorsa Function kullan?labilir.

Create procedure (ProcedureName) ([IN|OUT|INOUT] (Param1) (ParamType1), [IN|OUT|INOUT] (Param2) (ParamType2) ....) is Begin : End;

yine begin ve end aras?nda PL/SQL ile yaz?lm?? komutlar bulunmal?d?r.
(ProcedureName): procedur'ün ad?d?r.
(IN/OUT/INOUT): Parametrenin procedure giren mi yoksa procedur'den ç?kan bir de?ermi oldu?unu gösterir.E?er herhangi bir ?ey girilmemi?se IN olarak kabul edilir.
(Param1,2): Giren parametrelerin isimleri
(ParamType1): gönderilen parametrenin tipini belirtir.




örnek :

A?a??daki procedür verilen isimde kaç ki?i oldu?unu tespit etmek için kullan?l?r.

Create Function IsimSay (Isim Varchar)
is
Say Integer;
Begin
Select count(*) into say from personel where ad=isim;
Return Say;


Nispeten biraz pascal diline benzemesine ra?men oldukça basit komutlardan olu?ur. Bir prosedürün ça?r?lmas? ise ?u ?ekilde olur.

(Call ? = IsimSay(?))

Yukar?daki ifade VB 4.0 ile beraber gelen RDO objesinden stored procedure ça??rmak için kullan?l?r. E?er oracle ile beraber gelen Sql*Plus program?ndan strored procedure veya function ça?r?lmak istenirse

Var Sonuc Integer
 Execute :Sonuc:=IsimSay('Ahmet');
 Print Sonuc

Böylece stored procedure ile i?lem gerçekle?tirilmi? olur.E?er stored procedure veriler üzerinde i?lem yapm?yorsa yani DDL komutu içermiyorsa o zaman stored procedure ?u ?ekilde de ça?r?labilir.

Select IsimSay('Ahmet') from Dual;

Dual oracle joker olarak kullan?lan bir ifadedir. Herhangi bir kay?t döndürmez. Ancak belirtilen ?ekilde ça?r?ld???nda procedure çal??t?r?l?p sonuç döndürülür.

Bunun d???nda delphi'de stored procedure çal??t?rmak için haz?r objeler mevcuttur.

VB 5.0 ise stored procedure'leri listeleyip sizin bunlar? program?n?z?n bir parças? gibi görmenizi sa?layan objeleri getirmi?tir. Ayr?ca RDO üzerinden üstte verildi?i üzere fonksiyonu yazd???n?zda parametreleri rdo üzerinden tan?mlayarak sonucu alabilirsiniz. Bu i?lem için RDO'nun helplerine bakabilirsiniz.

PL/SQL komutlar? esas olarak DML ve DDL komutlar?n?n biraz daha farkl?la?t?r?lmas?yla ve ek komutlar ve hata kontrolleri eklenmesi ile olu?turulmu?tur. Basit ?ekilde pascal'a benzemekle beraber oldukça basittir.



  
Infobar



Uygun ürünler