You are on page 1of 12

VER TABANI YNETM SSTEMLER I

BLM 7 Alako BURMA

7. TEMEL SQL KOMUTLARI-I


SQL (Structured Query Language) kendisi bir programlama dili olmamasna
ramen bir ok kii tarafndan programlama dili olarak bilinir. SQL herhangi bir veri
taban ortamnda kullanlan bir alt dildir. (sub language) SQL ile yalnzca veri taban
zerinde ilem yapabiliriz. SQL cmlecikleri kullanarak veri tabanna kayt ekleyebilir,
olan kaytlar deitirebilir, silebilir ve bu kaytlardan listeler oluturabiliriz. SQL
cmlecikleri genellikle ayn olmakla birlikte farkl veri taban ortamlarnda
deiebilmektedir. Ayrca veri tabanlarnn kendilerine zg sql komutlar da vardr.
Bu blmde her ortamda geerli olan temel sql komutlar retilecektir. imdi 5.
blmde tasarladmz rnek personel veritabann SQL ile kullanalm. rnek Veri
Tabanmzdaki tablolar ve tablolara ait alan ile alanlarn veri tipleri aada
listelenmitir.
TabloAd TabloAlanlar Veri Tipi
Personel SicilNo, Say(4)
Ad, Karakter(15)
Soyad, Karakter(15)
MeslekKodu, Say(3)
BirimKodu, Say(3)
DoumTarihi, Tarih
Adres Karakter(25)
Meslekler MeslekKodu, Say( 3)
MeslekAd Karakter(20)
allanBirim BirimKodu, Say(3)
BirimAd Karakter(20)
Maaslar SicilNo, Say(4)
MaasAy, Say(2)
Maas Karakter(12)

7.1. CREATE (Yarat) Komutu

Database, tablo, index, view, vb. veri taban objelerini yaratmada kullanlan
komuttur. SQL komutlar ile veri tabannda ilem yaplabilmesi iin nce veri taban
sonra da veri tabannda kullanlacak tablolar tanmlanmaldr. Veri tabannn
yaratlmas aada verilmitir.

CREATE DATABASE database_name


[ON {DEFAULT | database_device} [= size]
[, database_device [= size]]...]
[LOG ON database_device [= size]
[, database_device [= size]]...][FOR LOAD]

50
VER TABANI YNETM SSTEMLER I Alako BURMA

database_name : Bu yaratlacak olan veri tabannn ismidir.

ON : Yaratlacak olan veri tabann hangi device zerinde yer alacan belirten bir
parametredir. Burada ayn zamanda bu device zerinde size (alan,l) parametresi
ile database'in ne kadar yer kaplayacan belirtilmi olur. Eer device
tanmlanmazsa SQL server default device zerinde 5 mb bir veri taban yaratr. Bu
parametre ierisinde birka device ismi kullanlarak veri tabannn bir ka device
zerinde yer almas salanabilir.

LOG ON : Yaratlacak olan veri tabann log'unun hangi device zerinde yer alacan
belirten bir parametredir. Burada ayn zamanda bu device zerinde size (alan, l)
parametresi ile database'in log'unun ne kadar yer kaplayaca belirtilir. Eer device
tanmlanmazsa SQL server default device zerinde bir log tutar. Bu parametre iinde
birka device ismi kullanlarak veri taban log'unun bir ka device zerinde yer
almasn salanabilir.

rnek 1 : CREATE DATABASE personel_isleri

Bu komut ile SQL Server zerinde personel_isleri isimli bo bir database yaratlm
olur. Bu disk zerinde fiziksel bir isimdir ve yaratlacak tablolar bu isimli veritabannn
altnda yaratlacaktr. Daha sonra bu veritaban zerinde verilerin yazlaca tablolar
tanmlanr. Tablo yaratmak iin de create komutu kullanlr. Yazl aadaki gibidir.

CREATE TABLE tablo_ad


(stun_ad_1 veri_tipi,
stun_ad_2 veri_tipi,
..........);
SQL programnda Create komutu ile meslekler tablosu aadaki gibi yaratlr.

ekil 7.1.1. Tablo Yaratlmas Ekran-1


Tablo yaratlm ve tablo yaratld mesaj alnmtr. SQL bilgisayara
kurulurken dil seenei olarak Trke seildii iin ekrandaki program men
seenekleri ve Tablo Yaratld bilgi mesaj ekrana Trke olarak gelmitir. Dil olarak
ngilizce seilmi olsayd ekran grnts aadaki gibi olurdu. Burada tablo
yaratld deil Table created bilgi mesaj ve ngilizce men seenekleri
bulunmaktadr.

51
VER TABANI YNETM SSTEMLER I Alako BURMA

ekil 7.1.2. Tablo Yaratlmas Ekran-2

Tablo yaratlrken yazlan cmlelerde yazlm yanl yaplrsa aadaki gibi


hata mesaj alnr ve komut almaz. Buradaki hata create komutunda her bir
tanmlanan alanlar arasna virgl konulmas gerektii halde 2.satr sonuna virgl
iareti yazlmas unutulmutur.

ekil 7.1.3. Tablo Yaratlmas Yanl Yazm Ekran

Aadaki ekranda CalisilanBirim, maaslar ve personel tablolar SQL komutlar


ile yaratlmtr. Personel tablosu yaratlrken (SicilNo number(4) NOT NULL, ifadesi
kullanlmtr. NOT NULL ifadesi tabloya bilgi yazlrken bu alann bo
braklamayaca, muhakkak bilgi yazlmas gerektii durumlarda kullanlr. Kullanc
bilgi girii yaparken Personel SicilNo alann bo brakamaz ve muhakkak bir deer
yazmak zorundadr. Bu tanmlama ile veri tabanndaki bilgilerin tabloyu tanmlama
aamasnda doru yazlmas salanabilir. Burada NOT NULL ifadesi kullanlmam
olsayd; kullanc personel sicil no alann bo brakabilirdi. Sicil nosu olmayan bir
personel olamayaca iin kullancya hata yapma imkan verilmi olurdu. Bu
durumda kullancya bo geme izni vermediimiz iin oluabilecek hatay batan
engellemi oluruz.
Not : SQL komutlar iin oracle veritaban kullanldndan veri tipleri Oracle
veri tipleridir. Char yerine varchar2 veri tipi kullanlabilir. Oracle veri tabanna has
olan bu deiken tipinde ayrlan yer kadar deil bu alana yazlan karakter says
kadarlk alan veri tabannda yer tutar. Dolays ile diskten yer kazanlacaktr.

52
VER TABANI YNETM SSTEMLER I Alako BURMA

ekil 7.1.4. Tablo Yaratlmas Ekran-3

7.2. ALTER (Dzenle) TABLE Komutu

Daha nceden oluturulmu bir tablonun yapsn deitirmek iin ALTER TABLE
komutu kullanlr.

ALTER TABLE tablo_ad


ADD | MODIFY | DROP (<stun ad> veri tipi <stun kstlamas>)
ENABLE ifade1
DISABLE ifade2
ALTER komutuyla tablolara yeni bir alan ve kstlama eklenebilir, var olan alan ve
kstlamalarn durumu deitirilebilir veya tablodan kstlamalar silinebilir.

ALTER TABLE tbl_ogr


ADD CONSTRAINT cst_Bolum
FOREIGN KEY(Bolum)
REFERENCES usr_gazi.tbl_bol(BolKod);

Yukardaki rnekte tbl_ogr adl tablonun yaps deitiriliyor. Bir baka


kullancnn bir tablosu ile iliki kuruluyor.

53
VER TABANI YNETM SSTEMLER I Alako BURMA

ekil 7.3.1. Tablo Yapsnn Deitirilmesi Ekran

Bu rnekte meslekler tablosunun MeslekAdi alannn uzunluu 20 den 10


karaktere drlmtr. Kullanc bu alan iin 10 karakterden fazla bilgi yazamaz.

7.3. DROP (Sil) TABLE Komutu

DROP TABLE table_name [CASCADE CONSTRAINTS]


Bir Tabloyu silmek iin DROP deyimi kullanlr. Keli parantez ierisindeki
tanm kullanlrsa mater-detay ilikili tablolarda master tablo silinince detay
tablolarnda otomatik olarak silinmesi salanr. Eer bu seenek kullanlmazsa dier
tablolarla ilikisi bulunan bir tablo silinemez. Tablo ancak ilikiler kaldrldktan sonra
silinebilir.

ekil 7.3.1. Tablo Silinmesi Ekran

7.4. DESCIRIBE Komutu

Bir tablonun yapsn grmek iin DESC[IRIBE] komutu kullanlr. Bu komut ile
tanmlanan tablolarn alan bilgileri alnr. Tablo alanlar, alanlarn veri tipleri
unutulduunda veya kontrol edilmek istenildiinde ska kullanlan bir komuttur.

DESC table_name

54
VER TABANI YNETM SSTEMLER I Alako BURMA

ekil 7.4.1. Tablo Yapsn Grntleme Ekran

7.5. INSERT (Ekle) Komutu

Bir tabloya bilgi eklemek iin kullanlan komuttur. Genel kullanm ekli
aadaki gibidir ;

INSERT INTO table_name VALUES (deger1, deger2, deger3,...)

Eer sadece belirli alanlara (stunlara) deer yazlmas isteniyorsa INSERT


INTO komutu aadaki gibi de kullanlabilir. Stunlara yazlan alanlarn deerleri
saylardan oluuyor ise, say direk olarak yazlmal, karakterlerden oluuyor ise ifade
tek trnak iareti arasna alnarak yazlmaldr. Her alan iin yazlacak deerler
tablodaki stun srasna gre ve her bir deer yazldktan sonra aralarna virgl
iareti konularak yazlmaldr.

INSERT INTO table_name ( stun_ad_1, stun_ad_2, ..)


VALUES(deer1, deer2, );

ekil 7.5.1. Personel Tablosuna Kayt Ekleme Ekran

55
VER TABANI YNETM SSTEMLER I Alako BURMA

Aada personel tablosuna INSERT komutu ile kayt eklerken yaplan hatalar
ve ekrana gelen bilgi mesajlarndan rnekler verilmitir. Hatann olduu yere * iareti
otomatik olarak gelir ve hatann hangi satrda olduu ve hatann ne olduuna dair bir
aklama satr ekrana gelir. Aada hata mesaj dikdrtgen kutu ierisine alnmtr.

ekil 7.5.2. Personel Tablosuna Kayt Ekleme Hata Ekran-1


Burada personelin doum tarihi iin yazlan deer yanl formatta yazlmtr.

ekil 7.5.3. Personel Tablosuna Kayt Ekleme Hata Ekran-2

* olduu noktada bir adet virgl fazla yazlarak yazlm yanl yaplmtr.

ekil 7.5.4. Personel Tablosuna Kayt Ekleme Hata Ekran-3


Personel tablosunda 7 tane stun(alan) olmasna ramen burada 6 tane deer
yazlmtr. Bu nedenle yeterli deer yazlmam olduundan hata vermitir.

56
VER TABANI YNETM SSTEMLER I Alako BURMA

ekil 7.5.5. Personel Tablosuna Kayt Ekleme Hata Ekran-4


Burada da adres alan iin 20 karakterlik yer ayrlmasna ramen daha uzun
karakter saysnda bir adres deeri yazlmtr. Stun iin uzun bir deer hata mesaj
alnmtr.

Tabloya eklenecek kaytlar bu ekilde tek tek INSERT komutu ile yazlarak
yaplr. imdi srasyla tablolarmza deerlerini yazalm. Burada her kayt iin
INSERT komutu tek tek yazlabilecei gibi daha nceden de belirtildii gibi bunlar bir
editrde yazlarak kopyala-yaptr yntemi de kullanlabilir. rnek aadaki gibidir.

ekil 7.5.6. Personel Tablosuna Kayt Eklemek iin Yazlan Personel.sql dosyas

57
VER TABANI YNETM SSTEMLER I Alako BURMA

Bir dier metot ise bilgileri bir editrde yazp bunu dosya uzants .SQL olarak
dosyaya kaydetmek ve daha sonra

SQL> @ c:\tablolar.sql veya


SQL> START c:\tablolar.sql

Komutlar ile altrmaktr. Bu rnekte INSERT komutu iin tm tablo kaytlar


yukarda ekran grnts olan personel.sql isimli bir dosyaya yazlp, daha sonra bu
dosya yukarda anlatlan ekilde altrlarak kaytlarn daha kolay yazlmas
salanmtr.

ekil 7.5.7. Personel.sql dosyasnn altrlarak Tabloya Kayt Eklenmesi

1 row created mesaj her bir insert komutundan sonra tabloya eklenen kayt in
verdii mesajdr. Kaytlar sorunsuz eklenmitir.

ekil 7.5.8. Personel.sql dosyasndan Kopyala-Yaptr ile Kayt Eklenmesi


Yukardaki ekranda personel.sql dosyasnda yazlan komutlar kopyala-yaptr
metodu ile kullanlmtr.

58
VER TABANI YNETM SSTEMLER I Alako BURMA

Kopyala-Yaptr yntemindeki en byk farkn; her bir komut satrnn


ekranda grntleniyor olmasdr. Bu ekranda birde ERROR satr bulunmaktadr. Bu
satr; soyad alan iin Yksek deeri yazlrken balangtaki trnak iaretinin
unutulmu olmasdr.
Personel tablosuna ait 30 adet personelin bilgilerinin girii tamamlanmtr.

ekil 7.5.9. Personel Tablosuna Ait Kaytlar.

ekil 7.5.10. Meslekler Tablosuna Ait Kaytlar.

59
VER TABANI YNETM SSTEMLER I Alako BURMA

ekil 7.5.11. CalisilanBirim Tablosu Kaytlar ve Insert komutu ile kayt eklenmesi.

ekil 7.5.12. Maaslar Tablosuna Insert komutu ile kayt eklenmesi.

60
VER TABANI YNETM SSTEMLER I Alako BURMA

ekil 7.5.13. Personele ait 1. ay Maaslar Tablosu Kaytlar.

Yukarda daha nce tanmlanan personele ait Maaslar tablosunun kaytlar


bulunmaktadr. (Maaslar maas*100.000 olarak ksaltlmtr). Personel tablosunda 30
kii bulunmakta ama buna karlk 29 adet personel maa bulunmaktadr. 1
personelin maas bilgisi zellikle eksik girilmitir. Daha sonraki blmlerde buna ait
dzenleme yaplacaktr.

61

You might also like