Temel SQL Komutları  | Genel | View / 1856 |


    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;
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;
End;
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.

    
 
 

Diğer Konular

[Plesk FTP 530 home directory inaccessible] [Vista Blue Screen Hatası] [DRIVER DOWNLOAD XP - Creative Broadband Blaster DSL Router 8015U ] [ADSL MODEM Sifresi - Admin - Setup - Kullanici Adi - Password - Login - Giris] [Web site virüsü iframe ] [WebBrowser1.Document.Script.Document object variable or with block not set Visual Basic] [ingilizce xp türkçe karakter sorunu] [Acess Veri Tabanı Mdb Şifre Belirleme - Değiştirme - Silme] [TOSHIBA DVD-ROM SD-R1312, SD-R1412, SD-R1512, SD-R5112, SD-R6112, SD-R2212, SD-R2312, SD-R2412, SD-R] [PARALEL İTHALAT NEDİR ? - PARALEL İTHALAT LTD - PARALEL İTHALAT FİRMALARI - FİRMALARI] [Google Komutları Arama Teknikleri] [Firebird Nedir ? Database Borland InterBase 6.0 - Download - Yükle - Sunucu - Kurulum] [Bedava Ücretsiz Web Sitesi nasıl yapılır ? TASARIMI - OLUŞTURMA - KURMA - AÇMA -YAPIMI - HAZIRLANIR ] [Plesk Panel Ayarları - Domain Ekleme] [Internet Explorer Swf Gösterim Hatası] [Şirketler için Zorunlu Web Sitesi Kanunu] [ASP 0131 Disallowed Parent Path] [Paypal] [System Error &H8007007E(-2147024770)] [Adobe Photoshop Border Kenar Çizgisi] [Visual Basic Api Play-Stop Sound] [between Tarih sorgulatma çözümü ] [SEO Nedir ?] [Visual Basic Error Code List / Hata Kodu Listesi] [Query-based update failed because the row to update could not be found fix / hata düzeltme] [Asp MySql Database insert records fin Auto number id return Database Kayit Ekle Otomatik Artan Sayiy] [MSN Adreslerini / Kisi Listesini Kopyalama - MSN LISTE KOPYALAMA NASIL YAPILIR ? - Liste Kaydetme - ] [WINDOWS XP Hakkinda özel ayarlar] [Microsoft Windows Update Error Gücenlleme Hatasi - Gücenlemiyor - Güncellemiyor - Bekletiyor] [3D Secure Nedir ? Kredi Karti ile güvenli ödeme sistemi] [Microsoft Internet Controls - IE7 - File Not Found ieframe.dll\1 ] [Zoom Adsl x6 Sorunu Tam Çözümü : Güncelleme Firmware Update ] [Visual Basic Metin Çevirme islemleri - String Convert] [Unmountable_Boot_Volume Hatası ve Çözümü, Unmountable Boot Volume Fix] [Firefox Style Cursor Hand - Not Work - Çalismiyor] [Open DNS servers fail 2003 - ] [Windows Vista UAC Kullanici Hesabi Denetimi Kapatmak - USER ACCOUNT CONTROL - Disable - Close] [Vista DVD Görmüyor] [DNS - Name Server - DNSSTUFF - DNS TEST - Dns Genel Bilgileri] [ the object invoked has disconnected from its clients] [Random Randomize - Rastgele / Değişen Listeler ve Resimler Oluşturmak Yenilenen ve Farklı] [Asp String Kodlama ve Çevirme] [Yurt Dışı Server Karatek Sorunu] [tırnak ' hatası] [LCID 1055] [Database türkçe karakter ekleme] [Sql Access için tablo işlemleri drop , add] [Asp 404 rewerite Seo] [Array Kütüphanesi ile Scripting.Dictionary] [ASP 0251 : 80004005 Error / ASP 0251 : 80004005 Hatasi Buffer] [BIOS NEDİR? NE İŞE YARAR?] [Latop Setup - BIOS Giriş Tuşları ( Bios Enter Key )] [Windows Hakkında Genel Bilgiler] [ASP Ilk Harf Büyük Kelime Çevrici Türkçe Karakter Destekli] [Plesk Failed to connect to mailserver ] [Error encountered: 550 5.7.1 we do not relay] [Genel Hatalar] [Windows Xp Hata Kodlari - Error Code - Error - Hata Mesaji] [FTP Nedir ? Programı Dosya Yükleme Gönderme Kullanımı CutepFtp Upload Download Komutları WasFtp] [Dijital Imza] [ASP SAYI RAKAM YAZI ÇEVIR YALNIZ FATURA YTL YKR FIYAT TUTAR - sayi rakam çevir yalniz fiyat tutar] [Persits.MailSender.4 error '800a0004' ] [Textarea Kilitleme - Degistirlmez Hale Getirme - LOCK - Edit - Div overflow - scroll] [asp mysql Count(*) Type mismatch]

 



- E-mail :