sorgu operatör

20
09.10.2013 SORGULAR OPERATÖRLER NULL KAVRAMI GROUP BY ORDER BY HAVING

Upload: sercan-yemeni

Post on 27-Jul-2015

132 views

Category:

Technology


8 download

TRANSCRIPT

09.10.2013

SORGULAR

OPERATÖRLER

NULL KAVRAMI

GROUP BY

ORDER BY

HAVING

SORGULAR

• Sql Server veritabanı geliştirimi ve yönetimi için T-Sql sorgu dilini kullanmaktadır .Sql Server Management Studio sorgu yazarken size hem grafiksel hem de sorgusal anlamda oldukça kolay bir arayüz sunmaktadır.Bu makalemizde Sql Server 2008 Management Studio kullanarak yeni bir sorgu oluşturmayı ve sorgulama özelliklerinden bahsedeceğim.T-Sql konusuna girmeyeceğiz, çünkü oldukça geniş ve ayrıntılı bir konu. İlerleyen makalelerde T-Sql srgulama dili hakkında bilgi vereceğim.Şimdilik sadece sorgu oluşturmayı ve sorgu özelliklerinden bahsedeceğim.

• Sql Server Management Studioyu açtığınızda sol üst tarafta New Query butonu göreceksiniz. Yeni bir sorgu oluşturmak için bu butonu kullanacağız. Veya herhangi bir veritabanı üzerinde sağ tıklayıp New Query komutunu verebilirsiniz.

• New Query komutu verdikten sonra karşımıza T-sql sorgusu yazabileceğimiz Query Editör gelecektir.

1.bölümde Sorguya ait çeşitli özellikleri ayarlayabileceğiniz Sql Editör araç kutusunu görmektesiniz. 2.bölümdeki beyaz alan , Sql sorgularını yazacağınız alandır3.bölümde ise durum çubuğunu görmektesiniz.Bu çubukta bir takım bilgiler listelenmektedir. Bağlantı durumu , server ismi , process ID , veritabanı ismi , sorgu süresi ve sorgu sonucu dönen kayıt sayısı gibi bilgileri görebilirsiniz.

• Sql Editör Özellikleri

Eğer Sql Editör araç çubuğunu göremiyorsanız aşağıdaki menuden ulaşabilirsinizView >> Toolbars >> Sql Editör

Yazdığımız sorguları çalıştırmak veya yazım denetimi yapmak için aşağıdaki butonlar kullanılır

Herhangi bir sorguyu yazdıktan sonra «Execute» butonuna bastığınızda sorgu çalışacaktır. 

Kaynak: http://mcicek.blogspot.com/2010/01/management-studio-ile-sorgulamaya-giris.html

SQL Select, Insert, Update ve Delete Komutları

• Programlamada ya da SQL Query Analayzer kullanarak yapacağımız birçok işlem vardır. Bu işlemlerden en çok kullanacağımız Select ile kayıtları göstermek, İnsert ile Database ‘e kayıt eklemek, Update ile var olan bir kayıt üzerinde güncelleme yapmak, Delete komutu ile de istediğimiz kayıtları silmek.

• Bu komutlardan en çok çekineceğimiz tabikide Delete sorgusu olacaktır. Bu sorguyu çalıştırmadan önce kesinlikle bir kez daha düşünmeniz gerekir. Eğer elinizde yedeğiniz yoksa canınız fazlasıyla sıkılabilir.

• Sırasıyla Sorgularımızı inceleyecek olursak Select sorgusuyla başlayalım.

• Basit bir şekilde Select sorgusunun dizimi

• “SELECT  *  FROM TBL_COZUMPARK  ” Sorgumuza baktığımızda Tbl_Cozumpark adında bir tablomuz var ve bu tablodan herhangi bir koşul şart koşmadan bulunan bütün kayıtları getirmesini ve Tablodaki bütün field ‘lerin (tabloda bulunan sütunlar) getirilmesini istiyoruz.

• SQL Server Managemet Studio açarak New Query ile ilk sorgumuzu yazalım.

• New Query ile sorgumuzu yazmadan önce dikkat etmemiz gereken bir nokta ise sorgunun hangi database’de çalışacağını bize gösteren kısmı gözden kaçırmamamız olacaktır. Resimde görülen hali ile sorgumuzu yazarsak  Tbl_Cozumpark Tablosunun bu database’de olmadığı hatasını alırız.

Sorgumuzu doğru olarak çalıştırdığımızda bütün kayıtları görüntüleyebiliriz.

Sorgumuz sonucunda Tablomuzda idàAdiSoyadiàGorevi  şeklinde 3 adet Field bulunduğunu ve bu 3 field’i  sorgumuzda

kullandığımız “*” dan dolayı geldiğini biliyoruz. Sorgumuzu biraz değiştirerek sadece Tabloadaki  “id,AdiSoyadi” field’larını

gösterelim.“select id,AdiSoyadi from Tbl_Cozumpark”

Sorgumuzda değişen “*” yerine çekmek istediğimiz field isimlerini yazmamız yeterlidir.

Farklı bir sorgu kullanmak için bir adet tablo daha ekledim ve bu tabloda Toplama işlemini gerçekleştireceğiz. Bunun için “SUM” komutunu

kullanmamız gerekir.Sorgunun standart dizilimi

“SELECT SUM(TOPLANACAK_FİELD)  FROM TABLO” şeklindedir. Bu sorgu belirtilen sütundaki sayıların toplamını çeker.

“select SUM(Topla) from Tbl_Hesapla”

Select ile başka bir örnek yapalım ve tablomuzda bulunan kayıtların toplam sayısını bulalım.

Bunun için kullanacağımız sorguya “Count”  ekleyeceğiz. Sorgumuz şu şekilde olacaktır.

“select COUNT(*) as KayitSayisi from Tbl_Cozumpark”araya giren “Count” Tablodaki kayıt sayısını verecek ve “as KayitSayisi”

sanal bir field (var olmayan) field içerisinde toplam sayıyı bize gösterecektir.

WHERESelect sorgumuzda artık koşullu kullanıma geçebiliriz. Koşullu kullanımda aklımıza gelecek olan “Where” olacaktır. Koşul ile bir tablodaki

verilerden tam olarak ne istediğimizi belirtebiliriz.Standart dizilime bakacak olursak “SELECT  *  FROM TABLO WHERE KOŞUL” şeklinde koşullu sorgu yapabiliriz. Örnek olarak

Tbl_Cozumpark isimli tablomuzdan Görevi Yazar Olan Kayıtları çekelim.Yazmamız gereken SQL Sorgumuz

“select * from Tbl_Cozumpark WHERE Gorevi='Yazar'” şeklinde olmalıdır.

SQL’ de Operatörler 

  

• “OR”  operatörünün kullanımında eğer şartlardan bir tanesi doğruysa işlem gerçekleşir iki şartında doğruluğu beklenmez ama iki şartta doğruysa ikisi de gerçekleşir.

• Örnek olarak tablomuzda ‘AdiSoyadi’  sütununda “Necati” ismi var mı bakalım ama eğer yoksa “Hakan” olan kişiyi çekelim.

• select * from Tbl_Cozumpark where AdiSoyadi like '%necati%' OR Adisoyadi like '%Hakan%'

• Sorguda kullandıgım “%” işaretinin anlamı koşulumda yazdığım ismi içeren bütün verileri çekmek için kullandım.

Mantıksal Operatörler AND  - OR  -   NOT

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 değil !=     Eşit değil !<     ..’ den küçük değil !>     ..’ den büyük değil

“NOT” operatörünün kullanımda şartı sağlamayan kayıtları çekmek için kullanılır.Bu örneğimizde Tbl_Hesapla Tablomuzda ‘Topla’ Sütunundaki “200” değerine

sahip olmayan bütün kayıtları çekelim.“select * from Tbl_Hesapla Where NOT Topla=200”

INSERTSelect ile oldukça örnek yaptıktan sonra sıradaki SQL Sorgumuz “INSERT” yani tabloya veri eklemek için kullanılan sorgu şeklini inceleyelim.Sorgunun standart dizilimi“INSERT  INTO  TABLO  [(Alan1,Alan2)]  VALUES   (Veri1,Veri2)”  şeklindedir.“INSERT” sorgusunda  şart aranmaz yani veriyi şu şartlara uyan alanlara ekle diyemezsiniz.Örnek olarak Tbl_Cozumpark Tablomuza yeni bir kayıt ekleyelim.“insert into Tbl_Cozumpark (AdiSoyadi,Gorevi)VALUES('Hakan UZUNER','MVP')”

Tabloda gördüğünüz gibi 3 adet sütun var fakat biz 2 adet sütuna bilgi girişi yaptık.Sebebi ”id” sütununu otomatik artan bir sütun olarak oluşturduğum için bu alana

ekleme yada güncelleme işlemi yapamayız.Şimdiki örneğimizde “INSERT” ve “SELECT” cümleciklerini birlikte kullanarak başka

bir tablodan çektiğimiz bilgiyi Tbl_Cozumpark tablosuna ekleyelim.Oluşturduğumuz Tbl_Select tablosundaki  “Ümit KAYACAN”  verisini  “Select”  ile

çekelim ve Tbl_Cozumpark Tablosuna “INSERT” ile ekleyelim.

Eklediğimiz bu veriyi görüntülemek için farklı bir yöntem kullanacağım. Öncelikle en son eklediğim veri olduğu için son kayıt sayısını bulup, sonrada

koşullu Select sorgusuyla eklenen kaydı çekeceğim.Son kaydı bulmak için “MAX” operatörünü kullanacağım ve yazacağım sorgu

cümleciği“select MAX(id) as SonKayit from Tbl_Cozumpark” 

Sayesinde son kayıt sayısını bulacağım.

UPDATE• “UPDATE” sorgusunun standart dizilimi

• “UPDATE  TABLO  SET  SUTUN1  = YENİ  DEGER1, SUTUN2  =  YENİ DEGER2” şeklindedir  ve bu sorgu cümlesini kullanırken kesinlikle bir kez daha düşünülmesi gerekir. Bu SQL cümlesinin kullanımında tablonuzda tek bir kayıt dahi olsa “WHERE” koşulunu kullanmanızı tavsiye ederim aksi halde bütün kayıtlarınızı güncelleyebilir ve veri kaybı yaşayabilirsiniz.

• İlk örneğimizi “WHERE” koşulu kullanmadan yapalım ve bakalım nasıl bir sorun yaşayacağız görelim.

• Tbl_Hesapla tablomuz için

• “update Tbl_Hesapla set Topla=100” SQL cümlesini kullanıyorum ve sonuç aşağıdaki gibi oluyor. Eğer ki bu tabloda gerçek şirket bilgileri olsaydı sonuç gerçekten çok üzücü olabilirdi.

DELETE• “DELETE” sorgusunun standart dizilimi

• “DELETE FROM TABLO” şeklindedir .Bu sorguyu  asla ve asla  “WHERE” koşulu olmadan kullanmamanız gerektiği aklınızdan bir an bile çıkmamalıdır.

• Sorguyu “WHERE ” koşulu kullanmadan çalıştırırsanız tablodaki bütün kayıtları silmiş olursunuz. 

• Örnek olarak Tbl_Cozumpark tablosundan koşul kullanarak bir kayıt silmeyi deneyelim. “delete from Tbl_Hesapla where  id =   (select MAX(id) from Tbl_Hesapla)”

• “id” değerini Select ile aynı tablodan max operatörü ile çektim ve en son id olan 7 değerini where koşulu ile eşleştirerek mevcut kaydı silme işlemini gerçekleştirdim.

KAYNAK

• http://www.cozumpark.com/blogs/sql/archive/2010/12/26/sql-select-insert-update-ve-delete-komutlari.aspx