Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Feryat Olcay
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
15 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: alanin arasinda bulunan departmanid emlakarsa ifadesi kayitlar personel personelmal select sonucunda tablosunda tablosundaki tablosundan verilerin ADO.NET/SQL Feryat Olcay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 22.2.2005
Okunma Sayısı : 255663
Yorum Sayısı : 9     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 4.12.2024
Turhal Temizer
Mac OS/X Removing CUDA 4.12.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 4.12.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 4.12.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
SQL Dilinde Select, Insert, Update, Delete Komutları
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Veri Düzenleme Komutları DML(Data Manuplation Language)

DML komutları var olan kayıtlar üzerinde işlem yapılmasını sağlar. Veri listeleme , yeni kayıt ekleme , var olan kaydı değiştirme veya silme işlemleri yapmak için kullanılır.

SELECT ifadesi :  Tablolarda bulunan bilgileri elde etmenin en sık kullanılan biçimidir. Select ifadesi diğer ek ifadeler ile birlikte veriyi filtrelemeyi yada daha anlamlı kılmayı sağlar.

SELECT [DISTINCT][ALL]  FROM Tablo_Adi
[WHERE Kosul]
[GROUP BY Kosul]
[HAVING Kosul]
[UNION Kosul]
[ ORDER BY Alanlar [ASC] [DESC]]

Sorgu sonucunda tablonun bütün alanlarındaki verilerin elde edilmesi isteniyorsa  * karakteri kullanılmalı. Eğer tabloda belli kolonlardaki bilgiler isteniyorsa, istenilen alanlar aralarına virgül konularak sıralanır.

SELECET  Alan1,  Alana2,  Alan3  FROM    Tablo_Adi

Örnek : SQL cümlesinde bütün alanların görüntülenmesi ve sadece istenilen alanların gösterilmesi.

Where (Koşul) İfadesi :  Select cümlelerinde veriyi çeşitli koşullar sonucunda filtrelemek için kullanılır.

SELECT * FROM Tablo_Adi WHERE Koşul

Örnek : Personel tablosunda maaşı 1200’den büyük olan personeller.

SQL’ de Operatörler:

Mantıksal Operatörler : İki yada daha fazla ifade arasında mantıksal sorgu yapılır. 

()      işlemleri gruplandırma ve öncelik belirleme
AND   VE her iki ifade doğru ise işlem gerçekleşir
OR     VEYA ifadelerden biri doğru ise işlem gerçekleşir
NOT   DEĞİL ifadenin yanlış olması durumunda işlem yapılır

Karşılaştırma Operatörleri:

<      ..’ den daha küçük
>      ..’ den daha büyük
>=    Büyük veya eşit
<=    Küçük veya eşit
=      Eşit
<>    Eşit degil
!=     Eşit degil
!<     ..’ den küçük değil
!>     ..’ den büyük değil

Örnek : Maaşı 1200 den büyük ve DepartmanId si 1 olmayan ve Adi Feryat olan personelin bilgileri.

Matematiksel Operatörleri: SQL cümlelerinde matematiksel operatörler normal işlevlerini gerçekleştirirler.

+   Toplama
-   Çıkarma
*   Çarpma
/    Bölme

Örnek : Personel tablosundan DepartmanId ’si 2 den farklı olan personellerin id, adı, soyadı, maaşı ve maaşının 25 ile toplamının listelenmesi. 

IN  (İçinde) Operatörü : Bir koşulun başka bir veri kümesi içinde olup olmaması durumu.

Örnek: Personel tablosunda PersonleId si 2 ,3 ve ya 5 olan personeller. Burda (2, 3 ,5 ) bir kümesi olarak görebiliriz.

In ifadesi sabit bir veri kümesini sorguladığı gibi başka bir sql cümlesi sonucu dönen değerler içinde de arama yapabilir. Özellikle iç içe select ifadelerinde bu yapı kullanılır.

Örnek : Başka bir tablodan sorgu sonucu elde edilin veri kümesi içinde sorgulama. Departmanın kuruluş tarihi 01.01.1999 dan büyük olan departmanlarda bulunan personellerin listesi.

BETWEEN (Arasında) İfadesi :  Koşulun belirtilen iki değer arasında olup olmaması için kullanılır. Between ifadesi  >= ve <= ifadesi yerinde kullanılabilir.

Örnek : Personle tablosunda maaşları 1000 ve 1300 arasındaki personellerin  adı ve soyad ve maaşlarının gösterilmesi. Bu örnekte AS ifadesi ile Ad ve Soyad alanlarını birleştirip tek olarak gösterdik.

LIKE (Benzer) İfadesi : Bir veri kümesi içerisinde belirtiğimiz değere benzeyen verilerin olup olmadığını kontrol etmek için kullanılır. Bu ifade genellikle karakter içeren bilgilerde yani char, varchar, binary vb. tipli alanlar için kullanılır.

%                 0 veya daha fazla karakter
_                  Sadece tek bir karakter 
[]                 Belirtilen karakterler arasında sadece tek bir karakter
[^]               Belirtilen karakterler arasında olmayan tek bir karakter

Örneğin SELECT * FROM  Personel WHERE Adi  +   aşağıdaki like ifadeleri ile kullanılabilir. Adi alanı

LIKE ‘Al%’           Al ile başlayan tüm isimler
LIKE ‘%n’            en ile biten tüm isimler
LIKE ‘%y%’         y karakterlerini içeren tüm isimler
LIKE ‘____n’        en ile biten tüm 5 karakterli isimler
LIKE ‘[FH]%’        F veya H ile başlayan tüm isimler
LIKE ‘[^U]%’       Başharfi U olmayan tüm isimler

Örnek : Adresi Barbaros içeren personellerin PeronelId leri.

SQL Fonksiyonları : SQL bulunan standart fonksiyonlar.

AVG          Verilen alanın aritmetik ortalamasını alır .
SUM          Verilen alanların toplamını alır.
MAX          Verilen alanın kayıtlar arasındaki en büyük değerini verir
MIN           Verilen alanın kayıtlar arasındaki en küçük değerini verir.
ROUND       Verilen alanın virgülden sonraki değerini yuvarlarlar
COUNT       Verilen alanın kayıtlar arasında kaç defa yazıldığını bulur. 

GROUP BY İfadesi : Elde edilen verilerin belli kriterlere göre gruplandırılması. Group by da dikkat edilmesi gereken durum select ifadesinden sonra yazdığımız ve fomksiyonlar dışındaki bütün kolonların group by ifadesinden sonra sıralanması gerekir.

Örnek : Personel Tablosundan departmana göre ortalama maaş . Ortalaması alınan maaşı ROUND fonksiyonu ile virgülden sonraki iki rakamına göre yuvarladık. Bu örnekte select te PDepartmanId ve Round fonksiyonunu kullandık. Round fon ksiyon olduğu için GROUP BY ifaseinde sonra sadece PDepartmanId yi ekledik.

HAVING (Sahiplik) İfadesi : Gruplandırılmış verilerin var olan koşula sahip olup olmadı kontrolu yapılır. Bu ifade genellikle sum(), avg, min(), max() , vs. gibi ifadeler ile kullanılır.

Örnek : PersonelMal taplosunda mal toplamı 40 tan büyük olanlar

UNION (Birleşim) ifadesi  :Veri kümelerinde birleştirme işlemi yapar. Ancak veri kümelerinde aynı sayıda kolon bulunmalı ve birbirine karşılıklı gelen kolonların veri tipleri ve uzunlukları aynı olmalıdır. Union ALL ifadesi ile de kullanılır. ALL ifadesi ile kullanıldığında birleştime sonucunda çift kayıt oluşursa hepsini getirir. Union yanlız kullanıldığında çift kayıtları göz ardı eder.

Örnek : Emlak vergisi için bina ve arsa için ayrı ayrı tabloların oluşturalım.Tablo yapısı aşağıdaki gibi olsun.Bu iki tablo arasında birleştime işlemi yapacağız. 2005 yılındaki bina ve arsaların sahiplerId lerine göre raiç bedellerini bulacağız

           

ORDER BY (Sırala) İfadesi: Sql sorgusu sonucunda elde edilen veriyi verilen kritere göre sıralar. ASC ek ifadesi ile küçükten büyüğe DESC ile de büyükten küçüğe sıralar

Örnek : PersonelMal Tablosunda PPersonleId si  1 olan personelin mal varlığını küçükten büyüğe ve büyükten küçüğe sıralama

DISTINCT İfadesi : Sql sorgu sonucunda veri tekrarı oluşabilir.Bu durumlarda veri tekrarını önlemek için  DISTINCT ifadesi kullanılır.

JOIN (İlişkilendir)İfadesi :  Tablolar arasında mantıksal olarak ilişki kurmayı sağlar.Join ifadesi ek ifadelerler daha kullanışlı hale getirilmiştir

SELECT Tablo1.*, Tablo2.*  FROM Tablo1 , Tablo2 WHERE Tablo1.Alan = Tablo2.Alan

Örnek : Personel ve PersonelMal tablolarını birleştirme işlemi yapıldı ve Personel Tablosundan PersonelId, Adi ,Soyadi; PersonelMal Tablosundan da Malın Adını ve Bedelini aldık. Burda dikkat edilmesi gereken önemli bir nokta Personel Tablosunda da Adi isimli bir alan var PersonelMal tablosunda da bu durumda TabloAdi.AlanAdi şeklinde yapılır. Yada tabloya daha kısa isim verilim kısa ismi ile de kullanılabilir.Biz aşağıda Personel’e P PersonelMal ’ da PM adı verdik.

INNER JOIN İfadesi : T-SQL de var olan bir ifadedir. Tabloların bire bir ilikkilendirilmesini sağlar. Inner joinde join yapılan tabloda ilgili kayıt yok ise boş kayıt geri döner.

Örnek : Yukardaki örneği inner joinle yapalım; PersonelId si 4 olan personel ait bilgiler gelsin.

LEFT JOIN İfadesi : Bu ilişki biçimi de inner joindeki gibi sadece T-SQL de bulunmaktadır. Bu ifadede sol taraf değeri NULL yada boş olması durumunda da; sql cümlesinin istediği veri kümesini geri döndürür.

RIGHT JOIN İfadesi :Right joinde sağ taraf değeri NULL yada boş olması durumunda da sql cümlesinin istediği veri kümesini geri döndürür.

Örnek :Tablo yapısı aşağıdaki gibi olan tablolardan  left join ve right joinle sql cümlesi yazılacak. Bina tablosundan CaddeId ile Cadde isimlerine ulaşılacak. Ve hangi binanın hangi caddede olduğunu bulunacak. EmlakBina tablosundaki CaddeId alanı boş geçilebilir. Ve Cadde tablosuyla arasında ikincil (foreing key) olmadığı için mantıklı kayıtlarda girilmemiş olabilir.

        

 Şekil - Tablonun yapısı                                          Şekil - Tablodaki kayıtlar                           

Left joinde sadece 2 kayıtta mantıklı veri olmasına rağmen EmlakBina tablosunda bulunan kayıt sayısı kadar kayıt geri döndü.Right joinde de bu durum sağ tarataki tablo için geçerlidir.Sağ taraftaki yani Cadde tablosundaki kayıt sayısı kadar kayıt geri döndürdü.

T-SQL CASE İfadesi: Var olan alanlarda bir alanda bir değeri sorgulayacak ve dönecek olan değere göre işlem yapılacaksa case ifadesi kullanılır.

SELECT Alanlar  CASE Kosul WHEN VarolabilecekDeğer THEN  ELSE OlamayacakDeğer END

Örnek : Personel Tablosunda çocuk sayısına göre maaşını belli katsayılarla hesaplanması.

INSERT komutu:  Tabloya veri eklemek için kullanılır.

INSERT INTO Tablo veya View([Kolon listesi]) VALUES(Değerler)

Örnek : Tabloda bulunun bütün kolonların teker teker yazılması ve değerlerinin atanması.

INSERT INTO EmlakArsa(ArsaId, SahipId, Ada, Pafta, Parsel, IslemYili, RaicBedel) VALUES (9, 2,’150-52’,’45821-hb’,’15’, 2005, 2000)

Örnek : İkinci insert ifadesi ise tablodaki bütün alanlara kayıt yapılacağı için kolon isimlerini yazmaya gerek kalmıyor. Ama dikkat edilmesi gereken durum atanacak değerlerin doğru sırada yazılması.

INSERT INTO Departman VALUES (3, ’Genel Müdürlük’, ’01.01.2000’)

Örnek : Başka bir tablodan select ifadesi ile bilgi alıp tablomuza ekleme. BinaId si 5 olan EmlakBina tablosundaki bilgilerin bir kısmı EmlakArsa tablosuna eklenmesi .

INSERT INTO EmlakArsa(ArsaId, SahipId, Ada, Pafta, Parsel, IslemYili, RaicBedel)  SELECT BinaId, SahipSicil, Ada, Pafta, Parsel, IslemYili, RaicBedel FROM EmlakBina WHERE BinaId = 5

UPDATE komutu: Tablo veya viewde bulunan kayıt yada kayıtların değiştirilmesi için kullanılır. Değiştirilmesi istenen kolonların teker teker yazılıp değerlerin atanması gerekmekte.

UPDATE TabloAdi veya ViewAdi SET (Kolonlar = Değerleri ,...)  [WHERE Kosul ] 

Örnek :Departman tablosunda DepartmanId 4 olan departmanın bütün alanlarının değiştirilmesi.

UPDATE Departman SET DepartmanId = 5,DAdi = ’Halkla İlişkiler’,  KurulusTarihi=’01.01.2001’  WHERE  DepartmanId = 4

Örnek : EmlakArsa tablosunda işlem yılı 2005 olan kayıtlarda Raic bedeli 0.02 oranında artılılması.

UPDATE EmlakArsa SET RaicBedel = RaicBedel + RaicBedel * 0.02  WHERE IslemYili = 2005

Örnek :Koşulsuz update işlemi. EmlakArsa tablosundaki bütün ArsaId değerlerinin 1 artırılması.

UPDATE EmlakArsa SET ArsaId = ArsaId + 1

Delete Komutu:  Tablo veya viewde bulunan kayıt yada kayıtların silinmesi amacı ile kullanılır.

DELETE  FROM TabloAdi [WHERE Koşul ]

Örnek : Cadde tablosundaki bütün kayıtların silinmesi.

DELETE FROM Cadde

Örnek :EmlakBina tablosunda BinaId si 1 olan kaydın silinmesi.burda where koşulu daha kompleks de yazılabilir.

DELETE FROM EmlakBina WHERE BinaId = 1

Bir sonraki makalemizde T-SQL’ de fonksiyon, saklı yordam(stored procedur), tetikleyiciler (trigger) ları inceleyecez.

Makale:
SQL Dilinde Select, Insert, Update, Delete Komutları ADO.NET ve SQL Feryat Olcay
  • Yazılan Yorumlar
  • Yorum Yaz
EYL
16
2011
merhabalar size stored procedurelerde insert ile ilgili bir sorum olacak.Örnek olarak Calisan ekleme sayfasında Calisan tablosuna insert yapılıyor ya Mesela yan tablolara tek bir sorguyla nasıl insert yaptırabiliriz (Calisan tablosu ,Cinsiyetler tbl,Adresler tbl vs.) bunlar ana sayfada bulunuyor ya Adres ID ye kayıt yapıyor normalde işte onu nasıl yaptırabiliriz
TEM
31
2011
Problemi çözdüm :) PersonelAdi like '%'+@PersonelAdi+'%' şeklinde yazmalıymışım..
TEM
31
2011
Merhaba, ben LIKE kullanımıyla ilgili bir şey sormalıyım. LIKE ile arama yapma kriterleri güzel hoş da diyelim ki aranmasını istediğimiz String'i bir değişkene atadık. O değişken için % işaretlerini nasıl kullanabiliriz. Stored Procedure kullanıyorum. Programdan SQL sorguma veriyi gönderdiğimde değişkene atıyorum. Misal değişkenimin adı @PersonelAdi olsun. select PersonelAdi from Personel where PersonelAdi LIKE %@PersonelAdi% gibi bir şey diyemiyorum. Yardımcı olursanız sevinirim.
OCA
4
2011
çok açıklayıcı bir makale teşekkürler.
MAR
24
2010
hocam güzel anlatım.Makaleyi okuyanlar birazda örnekler yaparsa DML'i çözerler...teşekkürler.
EYL
17
2009
Çok güzel bie makale olmuş. Ellerinize sağlık.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor