kazimyaver | Tüm yazılar etiketlendi 'SQL'

Temel SQL Sorguları

/*Temel Select İşlemleri*/

--Personel tablosundaki tüm listeyi getirir

SELECT * FROM Personel

--Sadece istenilen sütündaki verileri gösterir.

SELECT Tcno, isim, soyisim, maas FROM Personel

--Bölüm tablosundaki tüm verileri listeler

SELECT * FROM Bolum

--Sıralama (Alfabetik veya rakamsal sıralama)

SELECT * FROM Personel ORDER BY Maas ASC --DESC

--Önce isme sonra aynı isimde olanları soyisime göre sıralar.

SELECT isim, soyisim FROM Personel ORDER BY isim DESC , soyisim DESC

 --Koşullu sorgu için WHERE anahtar kelimesi kullanılır.

--Maaşı binlira olanları getirir.

SELECT * FROM Personel WHERE Maas=1000

--Maaşı 500den küçük olanları getirir.

SELECT * FROM Personel WHERE Maas<500

--Maaşı 500den küçük olanları ve ismi kadir olanı getirir.

SELECT * FROM Personel WHERE Maas<500 AND isim='kadir'

--İsminde ğ harfi olanlar

SELECT * FROM Personel WHERE isim LIKE '%ğ%'

--İsmi k ile başlayanlar

SELECT * FROM Personel WHERE isim LIKE 'k%'

--İsmi r ile bitenler 

SELECT * FROM Personel WHERE isim LIKE '%r'

--İkinci karakteri ‘h’ ve beşinci karakteri ‘t’  olan kayıtları getirir.

SELECT * FROM Personel WHERE isim LIKE '_h__t'

--BAŞ HARFİ A VEYA K OLANLARI GETİRİR 

SELECT * FROM Personel WHERE isim LIKE '%[ak]%'

--Soy ismi s ile z arasındaki tüm harflerden herhangi biriyle başlayanları getirir.

SELECT * FROM Personel WHERE soyisim LIKE '[s-z]%' AND soyisim LIKE '%a'

--Takma sütun adı as'le verilir. Birden fazla kelime içeriyorsa tırnak arasına yazılmalı

SELECT isim AS Adlar, Maas AS 'Maaşlar Geliri' FROM Personel 

--Sütunları birleştirir.

SELECT isim + '  ' + soyisim AS AdSoyad FROM Personel

--Soy ismi boş olanları getirir.

SELECT * FROM Personel WHERE soyisim IS NULL

--Doğum tarihi boş olanları göstermesin

SELECT * FROM Personel WHERE DogumTarihi IS NOT NULL --and soyisim is NULL

--Maaşı 1000 ile 2000 arasında olanlar

SELECT * FROM Personel WHERE Maas BETWEEN 1000 AND 2000

--Baş harfi k ile z arasında olanları getirir.

SELECT * FROM Personel WHERE isim BETWEEN 'k' AND 'z'

--İstenilen sayı kadar veri getirme

SELECT TOP 3 * FROM Personel ORDER BY TcNo DESC

--Kayıtların %50sini ve soyadı ayan'dan farklı olanları getirir.

SELECT TOP 50 PERCENT  * FROM Personel WHERE Soyisim <> 'Barlık' ORDER BY TcNo ASC

--Tanımladığım 3 bölümde çalışan elemanları listele

SELECT * FROM Personel WHERE BolumNo=1 OR BolumNo=2 OR BolumNo=4

SELECT * FROM PersonelWHERE BolumNo IN(1,2,4)

--Zamlı maaşları göster

SELECT Maas AS 'Asıl Maaş', Maas+1000 AS 'Zamlı Maaş' FROM Personel

--İsme göre aynı olanları eler

SELECT DISTINCT isim FROM Personel WHERE isim='Ahmet'

--İlk 3 harfi kad olan tüm verileri getirir.

SELECT * FROM Personel WHERE LEFT(isim,3)='kad'

--Soyisminin son harfi y olanları getirir.

SELECT * FROM Personel WHERE RİGHT(soyisim,1)='y'


/*Sistem Tanımlı Fonksiyonlar ile İşlemler*/


--Herhangi bir sütundaki veri sayısını getirir.

SELECT COUNT(TcNo) FROM Personel

--NULL olanları saymaz

SELECT COUNT(DogumTarihi) FROM Personel

--Toplam sayıyı getirir.

SELECT COUNT(*) FROM Personel WHERE isim<>'Uğur'

--Toplam Maaşı Getirir.

SELECT SUM(Maas) FROM Personel WHERE maas BETWEEN 1000 AND 2000

--Ortalama Maaşı getirir.

SELECT SUM(Maas)/COUNT(*) FROM Personel 

SELECT AVG(Maas) FROM Personel

--BolumNosu en büyük olan kaydı getirir.

SELECT MAX(BolumNo) FROM Personel

--Bolumnosu en küçük olan kaydı getirir.

SELECT MIN(BolumNo) FROM Personel

--4tane 'a' yeni tek 'a' yazar yani veriyi değiştirip gösterir.

SELECT isim AS Ad, REPLACE(soyisim,'aaaa','a') AS Soyad FROM Personel

--Len o sütunun karakter uzunluğunu getirir.

SELECT TcNo,İsim, Len(isim) AS 'İsim Uzunluğu' ,soyisim, Len(soyisim) AS 'Soyisim Uzunluğu' FROM Personel

--Eğer cast edilmezse iki farklı tür birleştirilemez

--cast değişken tülerini değiştirmek için kullanılır.

SELECT CAST(Tcno as varchar) + '  ' + isim AS 'Olcakmi' FROM Personel

--Yazı tipindeki verileri bölme. 2.parametre 

--başlangıç harfinin sırası

--3.parametre kaç harf göstericeğini sorar.

SELECT SUBSTRİNG(isim,1,1) FROM Personel

--Soyisimlerin başındaki boşluklar silinir.

SELECT LTRİM(soyisim) FROM Personel

--Soyismin sonundaki boşlukları siler.

SELECT RTRİM(soyisim) FROM Personel

/*Gruplama İşlemleri*/

--Kesinlikle kullanılmaz yanlış bir ifadedir.

SELECT Adi,Soyadi FROM Personel GROUP BY BolumNo

--having group by ile kullanılır.

--yani grouplama işleminden sonra da bir koşul konulacaksa 

--having kullanılır.

SELECT BolumNo, COUNT(*) AS 'Çalışan Sayısı',

SUM(Maas) AS 'Toplam Maaş' --,AVG(Maas) AS 'Ortalama Maaş'

FROM Personel

WHERE Maas<2500

GROUP BY BolumNo 

HAVİNG BolumNo IN(1,2,5)  -- AVG(Maas)>1000

ORDER BY AVG(Maas) ASC

Saving Changes Is Not Permitted Hatası

Saving Changes Is Not Permitted Hatası umarım bir çoğunuzun karşılaşıp uzun bir müddet çözmediği bir hata bununla alakalı internette pek döküman yok çözümü de oldukça basit..

 

 

 

Hata şu şekilde gelir genelde ekrana..  Çözümü ise 

Tools / Options / Designers / 

Sol tarafta Prevent saving changes that require table re-creation seçeneğinde ki işareti kaldırın.. Böylelikle işlem tamam.