Data Manipulation Language-DML - Forumego.com 2008
 

Reklamlar
+ Forumego.com 2008 » Web Tasarım - Programlama » Veritabanı Yönetimi » SQL Dili
 Data Manipulation Language-DML

Kullanıcı Adı: Beni Hatırla?
Şifre:
Konu: Data Manipulation Language-DML
: 7
Okunma SayısıOkunma Sayısı 391 defa
0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Sayfa: [1]   Yukarı git
Konu: Data Manipulation Language-DML  (Okunma Sayısı 391 defa) Seçenekler Arama
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
« : 06 Temmuz 2008, 20:55:53 »
V.I.P Üye
*****
Üye No: 31
Cinsiyet: Bay
Mesaj Sayısı: 172
Nerden: İstanbul
Puan: 42

Offline
Data Manipulation Language-DML


SQL Veri İşleme Dili (Data Manipulation Language-DML)
   SQL Veri İşleme Dili veri girmek, değiştirmek, silmek ve verileri almak için kullanılan DML komutlarının tümüdür. En sık kullanılan DML komutları ve kullanım amaçları aşağıdaki gibidir.
SELECT    : Veri seçmek
DELETE   : Veri silmek
UPDATE    : Veri güncellemek
INSERT    : Veri girmek


bizde burda select ifadesi hakkında konuşacağız...Başlayalım Elimizde bir kitapevine ait bir database olduğunu varsayalım ve KitapEvi database sinde kitaplar isimli tablo...


Anahtar sözcüğümüz "select"  bu key herhangi bir tablodan veri çekmek için kullanılan kelimedir..

şimdi kitaplar tablomuzda ki kategorileri görmek istersek

Select Kategoriler From Kitaplar


bu sorgu bize sadece kategorileri getirecektir fakat biz kitaplar tablosundaki tüm verileri görmek istersek (Kitap Adı,Kategori,Yazarı,fiyatı,vs,vs,vs) sorgumuz şu şekilde olacaktır.

Select * from Kitaplar  bu sorgu bize kitaplar tablosundaki tüm verileri düzenli bir şekilde getirecektir.şimdi kategorisi aksiyon olan tüm kitapları görmek istiyoruz bunun içinde devreye "where" anahtar sözcüğü devreye giriyor şimdiki sorgumuz ise şu şekilde oluyor


Select * from Kitaplar where Kategori=aksiyon  

burda yaptığımız şey tam olarak şöyle  select dediğimiz şey komutumuz" SEÇ" de diyebiliriz seç dedik ama neyi seç işte burda "*" işaretini kullandık ki bu olan tüm sütunları temsil eder bunun yerine sadece sütun ismide kullanılabilir hemen sonrasında from kullandık buda hangi tablodan olduğunu belirtmek için kullandığımız anahtar sözcüğümüz..
 
ve sonunda "where" dedik ki burda bir koşul sözkonusu where dedik ve katogori sütununda sadece aksiyon yazan kitapları gösterdik sonucuda ona göre aldık...

Genel yazım şekli şu şekilde

Select (sütun(lar)ın isimleri ) from (tablonun ismi)  sonrası koşullar ve diğer şeyler

diğer döküman UPDATE hakkında olucak
 
Logged
« Yanıtla #1 : 07 Temmuz 2008, 03:07:52 »
Admin
*****
Üye No: 1
Cinsiyet: Bay
Mesaj Sayısı: 74
Nerden: İstanbul
Puan: 8

WWW
Offline
Ynt: Data Manipulation Language-DML

Alıntı
Select * from Kitaplar where Kategori=aksiyon



Güzel döküman dejavu teşekkürler. Fakat yukarıda yer alan kodda ki küçük bir ayrıntıyı düzeltmek istiyorum. Burada kategori alanımızı sorgularken, sorgu kriterimizin yazımında, veri tipine göre farkılılıklar olacaktır. Örnek olarak sql kodumuz içerisindeki metin sorgularında, kriteri tek tırnak işaretleri arasına almamız gerekmekte. Aşağıdaki gibi

Kod:
where Kategori='aksiyon'
Logged
« Yanıtla #2 : 07 Temmuz 2008, 12:16:24 »
V.I.P Üye
*****
Üye No: 31
Cinsiyet: Bay
Mesaj Sayısı: 172
Nerden: İstanbul
Puan: 42

Offline
Ynt: Data Manipulation Language-DML

teşekürller walleq ya ben aslında bu dökümanı yazarken bir hata oldu ve sayfa değişti bende yeniden ve maximum sinirle yazmaya çalıştım bir önceki çokk daha güzeldi Smiley neyse ya saol en azından seninde burda olman iyi farkedip düzeltmişsin
Logged
« Yanıtla #3 : 07 Temmuz 2008, 13:09:15 »
V.I.P Üye
*****
Üye No: 31
Cinsiyet: Bay
Mesaj Sayısı: 172
Nerden: İstanbul
Puan: 42

Offline
Ynt: Data Manipulation Language-DML

Update yazıcam dedim ama select ile ilgili daha yığınla konu var selecti tamamen bitirip update ye geçmeyi daha doğru buldum..Başlayalım


Where  anahtar sözcüğünü görmüştük ve şimdide LİKE ifadesi üzerinde duralım...

Like dediğimiz şey bize benzer sonuçları getirmek için kullandığımız bir ifade Hemen sorgumuzu yazarak görelim

SELECT * FROM Kitaplar   WHERE Kategori LIKE 'A%' 

burda şunu dedik where den sonra like kullandık burdaki anlamı ile benzer demek oluyor like 'A%' dediğimiz şey ise "A" ile başlasın "%"  ile dewam etsin burdaki yüzde işareti ise ne olursa olsun (karakter bazında) anlamına geliyor dahada değiştirelim misal kategori stununda Kategori adlarının sonunda a karakteri geçen kaydı bulmak isteyelim

SELECT * FROM Kitaplar   WHERE Kategori LIKE '%A' 

yada arasında a geçenleri


SELECT * FROM Kitaplar   WHERE Kategori LIKE '%A%' 


dahada abartırsak

Örnek arama koşulları:
LIKE ‘BR%’      İlk iki harfi BR olan tüm kayıtlar
LIKE ‘Br%’      İlk iki harfi Br olan tüm kayıtlar
LIKE ‘%een’      Son üç harfi een olan tüm kayıtlar
LIKE ‘%en%’      İçerisinde en ifadesi geçen tüm kayıtlar
LIKE ‘_en’      Son iki harfi en olan üç harften oluşan tüm kayıtlar






Like bu kadar

SQL AND & OR & NOT MANTIKSAL OPERATÖRLERİ dewam edelim
« Son Düzenleme: 07 Temmuz 2008, 13:12:46 Gönderen: dejavu » Logged
« Yanıtla #4 : 07 Temmuz 2008, 13:27:28 »
V.I.P Üye
*****
Üye No: 31
Cinsiyet: Bay
Mesaj Sayısı: 172
Nerden: İstanbul
Puan: 42

Offline
Ynt: Data Manipulation Language-DML

AND ve OR Mantıksal operatörlerini birden fazla koşulu birleştirmek için kullanırız.
AND operatörü kullanarak, birleştirilen koşulların tümüne uyan satırlar listelenir.
OR operatörü kullanılarak, birleştirilen koşullardan en az birine uyan satırlar listelenir.
NOT operatörü kendisinden sonra gelen koşulu sağlamayan kayıtları listeler.
Parantez kullanımı ikiden fazla koşul olması durumunda koşulların öncelik sırasını belirler.
Parantez kullanılmaması durumunda SQL önce NOT, sonra AND ve en son da OR mantıksal operatörünü işler.
Söz dizimi:
   SELECT   <sütun adı> FROM <tablo adı>
      WHERE <koşul> AND <koşul>[AND <koşul>...]
         
      SELECT <sütun adı> FROM <tablo adı>
      WHERE <koşul> OR <koşul> [OR <koşul>...]


And OR ile yazıcak çok şey yok aslında neyse SQL Between...And geçtim bile..


BETWEEN ... AND operatörü 2 değer ile belirtilen aralığı sınar. Bu değerler sayı, metin veya tarih olabilir.
Söz dizimi:   

SELECT <sütun adı> FROM <tablo adı>
      WHERE <sütun adı> BETWEEN <değer 1> AND <değer 2>



şimdi yine kitapllar tablosunda belirli tarihlerde çıkan kitapları getirelim


SELECT *  FROM kitaplar  WHERE CikisTarihi BETWEEN '01/01/1996' AND '12/31/1996'

Bu sonuç bize 1996 yılında çıkan tüm kitapları getirecektir...



SQL Select Distinct


DISTINCT kelimesi bir sütundaki benzersiz kayıtları listeler. Bir sütunda belirli bir kelime iki veya daha fazla sayıda tekrarlanıyor olabilir. Distinct anahtar kelimesi ile her tekrarlanan kelime sadece bir kez listelenir.
 

SELECT DISTINCT <sütun adı> FROM <tablo adı> [WHERE <koşul>]



SQL Order By


ORDER BY yantümcesi satırları, belirtilen sütun(lar)a göre sıralamak için kullanılır.
ORDER BY ile hangi sütuna göre sıralayacağımızı ve sıralamanın artan veya azalan şekilde yapılacağını belirleriz. Sıralama yönü belirtilmez ise SQL veriyi artan şekilde sıralar.
Sıralama yapılacak alanlar SELECT ifadesinde yer almak zorunda değildir.
Söz dizimi:    
   SELECT <sütun ad(lar)ı> FROM <tablo adı>
   ORDER BY <sütun adı><sıralama yönü>



yine kitaplar tablosunda KitapAdı,KitapYazarı,Fiyat stunlarında işlem yapalım ve fiyatlarına göre en pahalıdan en en ucuza göre sorgumuzu çekelim..


Select KitapAdı,KitapYazarı,Fiyat  from Kitaplar Order By Fiyat desc

Order By ifadesi burda sırala anlamına da geliyor  bu ifadeyi kullandıkdak sonra stun adı veriyoruz ki hangi stunu esas alarak sıralama yapıcak onu belirtmiş oluyoruz  en sondaki desc ifadesi ise sıralama şekli küçükten büyüğe yada büyükten küçüğe (desc,asc)



SQL Count Fonksiyonları


SQL, veritabanındaki kayıtları sayabilmek için yerleşik COUNT fonksiyonunu kullanır.
Söz dizimi: SELECT COUNT(<sütun adı>) FROM <tablo adı>

COUNT(*)
COUNT fonksiyonu (*) ile kullanıldığında FROM ile belirtilen tablodaki toplam satır sayısını verir.
Örnek: Aşağıdaki örnekte Siparişler (Orders) tablosundaki kayıt sayısı listelenmiştir.

COUNT fonksiyonu bir sütun adı ile birlikte kullanıldığında, o sütundaki boş (NULL) olmayan kayıtların sayısını verir.

DISTINCT anahtar kelimesi COUNT ile birlikte kullanıldığında, belirtilen sütundaki benzersiz kayıtların sayısını verir.
Söz dizimi: SELECT COUNT(DISTINCT <sütun adı> FROM <tablo adı>



Bir diğer msj da SQL TOPLAM FONKSİYONLARI (AGGREGATE FUNCTİONS)   ile dewam ediyorum






« Son Düzenleme: 07 Temmuz 2008, 13:29:25 Gönderen: dejavu » Logged
« Yanıtla #5 : 07 Temmuz 2008, 13:34:00 »
V.I.P Üye
*****
Üye No: 31
Cinsiyet: Bay
Mesaj Sayısı: 172
Nerden: İstanbul
Puan: 42

Offline
Ynt: Data Manipulation Language-DML

AVG(<sütun adı>) Fonksiyonu
AVG fonksiyonu belirtilen sütundaki ortalama değeri verir. Bu hesaplama sırasında boş (NULL) değerler işleme katılmaz.
 biz yine kitaplar tablomuzdaki tüm kitapların ortalama fiyatını görmek istersek...

Select AVG (Fiyat) as OrtalamaFiyat from Kitaplar

burda avg fonksiyonumuza parametre olarak fiyat stununu verdik oda ordaki tüm veriler ile işlem yaparak ortalamsını bize verdi ondan sonra kullandığım as ifadesi ise tabloya geçici isim vermek içindi..




MAX(<sütun adı>) Fonksiyonu
MAX fonksiyonu, bir sütundaki en yüksek değeri verir. Boş (NULL) değerler işleme katılmaz.
MAX fonksiyonu alfabetik sıralamadaki ilk metinsel ifadeyi de bulmamızı sağlar.
MIN(<sütun adı>) Fonksiyonu
MIN fonksiyonu bir sütundaki kayıtlardanki en küçük değeri verir. Boş (NULL) değerler işleme katılmaz. 
MIN fonksiyonu alfabetik sıralamadaki son metinsel ifadeyi de bulmamızı sağlar.
SUM(<sütun adı>) Fonksiyonu
SUM fonksiyonu belirtilen sütundaki sayısal değerlerin bir toplamını geri döndürür.



Bir diğer Msj da GROUP BY ifadesine değineceğim
Logged
« Yanıtla #6 : 30 Temmuz 2008, 15:02:52 »
V.I.P Üye
*****
Üye No: 31
Cinsiyet: Bay
Mesaj Sayısı: 172
Nerden: İstanbul
Puan: 42

Offline
Ynt: Data Manipulation Language-DML

GROUP BY
DISTINCT anahtar kelimesi yanlızca benzersiz satırları listelemek için kullanılırken, GROUP BY yantümcesi belirtilen sütun yada sütunlardaki aynı değere sahip satırları tek bir satırda birleştirmeyi sağlar.
GROUP BY genellikle toplam fonksiyonlarıyla (Aggregate Function) kullanılır. GROUP BY sorgularında kullanılan en yaygın toplama işlevleri MIN, MAX, SUM ve COUNT'dır.
GROUP BY ile belirtilen sütunlar SELECT ifadesinde de yeralmalıdır.

bir örnekle açıklayalım....Yine KitapEvi databasemizde kitap fiyatlarını çağıralım lakin kitap bazlı olarak bu da şu anlama geliyor kitap adına göre gruplucaz

Select KitapAdı,Sum(KitapFiyat) as Fiyatı From Kitaplar  GROUP BY KitapAdı order by Kitapadı


HAVING YANTÜMCESİ

Toplam fonksiyonlarını kullanırken kısıt girilmesi gerektiğinde WHERE yantümcesini kullanamayız. HAVING yantümcesi, GROUP BY ile elde edilecek satırları kısıtlamak için kullanılır. İşlev olarak WHERE yantümcesi gibi çalışır fakat WHERE yantümcesi gruplama işlemlerinden önce, HAVING yantümcesi ise GROUP BY'dan sonra uygulanır

Bir örnekle açıklayalım... yukardaki örnekte tüm kitaplar kitap ismlerine guruplanarak gelmişti ama biz hepini değil fiyatı belirli olan kitapları guruplayarak çağırmak istediğimizi varsayarsak..

Select KitapAdı,Sum(KitapFiyat) as Fiyatı From Kitaplar  GROUP BY KitapAdı order by Kitapadı
HAVING SUM(KitapFiyat) > 1200


bu sonuç bize fiyatı 1200 den fazla olan kitapları dönücektir

Bir diğer yazıda sqldeki sorgulamalardaki önemli bir faktör olan SQL JOİN lere giricem
Logged
« Yanıtla #7 : 17 Ekim 2008, 19:11:25 »
V.I.P Üye
*****
Üye No: 31
Cinsiyet: Bay
Mesaj Sayısı: 172
Nerden: İstanbul
Puan: 42

Offline
Ynt: Data Manipulation Language-DML

SQL JOİN

Şimdiye kadar aynı anda sadece tek bir tablodan veriler ile çalıştık. Bazı durumlarda sonuç kümemizin daha anlamlı olabilmesi için iki farklı tablodan verilere ihtiyacımız olabilir. Bunun için sorgumuzda iki anahtar kelime daha kullanırız;
      JOIN ifadesi ile hangi tabloları ve nasıl birleştireceğimizi
      ON ifadesi ile tabloların hangi alanlar üzerinden birleşeceğini belirtiriz.
Tablolar genelde Birincil Anahtar ve Yabancı Anahtar alanları üzerinden birleştirilselerde, gerektiğinde diğer herhangi bir alan da bunun için kullanılabilir. Fakat bu alanların aynı tür veri içerdiğinden emin olmalısınız.
Birincil Anahtar(Primary key), her kayıt için benzersiz bir değer taşıyan alandır. Örneğin, öğrenci kayıtlarının tutulduğu bir tabloda, öğrenci numarasının saklandığı alan birincil anahtar olarak seçilebilir. Zira öğrenciyle ilgili tüm bilgiler gerçekte onun numarası ile kodlanmıştır ve her öğrencinin numarası bir birinden farklıdır.


INNER JOIN

SQL de varsayılan bağlantı türüdür. İlişkili tablolarda sadece JOIN koşulunu sağlayan kayıtlar listelenir.

Baştan beri örneğimiz bir kitapçının veritabanıydı öyle dewam edelim bu seferki senaryo şu şekilde işlesin,


Kategorisi Macera olan kitapları çekelim..

Select Kategoriler.KategoriID,Kategoiler.KategoriAd,Kitaplar.KitapID,Kitaplar.KategoriID,Kitaplar.KitapAd from Kategoriler inner join Kitaplar on Kategoriler.KategoriID=Kitaplar.KategoriID where KategoriAd='macera'


Bu sorgu bize Kategorisi Macera olan kayıtları getirecektir...
bu sorgu dahada komplex hale getirileilir..Bir diğer yazımda Subquery(Alt Sorgu) ları anlatmaya çalışıcam...
Logged
Sayfa: [1]   Yukarı git

 
Gitmek istediğiniz yer:  

Bu Sayfa 1.243 Saniyede 51 Sorgu ile Oluşturuldu