Temel SQL Komutları

Temel SQL Komutları

SQL (Structured Query Language), veritabanı yönetim sistemlerinde (DBMS) kullanılan bir programlama dilidir. SQL, veritabanı yönetimi için kullanılan DDL (Data Definition Language) ve DML (Data Manipulation Language) olmak üzere iki temel komut kümesine sahiptir.

 

DDL ve DML Nedir ?

 

DDL (Data Definition Language), veritabanı tasarımını ve yapısını tanımlayan komutlardır. DDL komutları, veritabanı nesneleri (tablo, görünüm, indeks vb.) oluşturmak, değiştirmek veya silmek için kullanılır. DDL komutları, veritabanının yapısal bölümünü tanımlayan komutlardır ve verileri etkilemezler. DDL komutlarının en sık kullanılanları şunlardır:

  • CREATE: Yeni bir veritabanı nesnesi (tablo, görünüm, indeks vb.) oluşturmak için kullanılır.
  • ALTER: Mevcut bir veritabanı nesnesini değiştirmek için kullanılır.
  • DROP: Mevcut bir veritabanı nesnesini silmek için kullanılır.
  • TRUNCATE: Tablodaki tüm verileri silmek için kullanılır.

 

DML (Data Manipulation Language), verileri sorgulama, ekleme, güncelleme veya silme işlemleri için kullanılan komutlardır. DML komutları, veritabanındaki verileri etkileyen komutlardır. DML komutları, verilerin işlendiği kısmı tanımlayan komutlardır ve veritabanının yapısını etkilemezler. DML komutlarının en sık kullanılanları şunlardır:

  • SELECT: Veritabanından verileri sorgulamak için kullanılır.
  • INSERT: Veritabanına yeni veriler eklemek için kullanılır.
  • UPDATE: Veritabanındaki var olan verileri güncellemek için kullanılır.
  • DELETE: Veritabanındaki verileri silmek için kullanılır.

 

DDL ve DML komutları arasındaki fark şudur: DDL komutları, veritabanının yapısal kısmını tanımlayan ve değiştiren komutlardır. DML komutları ise veritabanının işlemsel kısmını tanımlayan ve verileri sorgulama, ekleme, güncelleme veya silme işlemleri için kullanılan komutlardır. İki komut kümesi birbirinden bağımsızdır ve her biri farklı amaçlar için kullanılır.

Örneğin, bir veritabanı tasarımı yaparken, öncelikle DDL komutları kullanarak tabloları, indeksleri ve diğer veritabanı nesnelerini oluştururuz. Daha sonra, DML komutları kullanarak tablolara veri ekler, günceller veya silersiniz.

 

DML KOMUTLARI

SELECT

Select * from Tbl_Personel

Select * from Tbl_Personel where PersonelMeslek='Öğretmen'

Select Personelad,personelsoyad from Tbl_Personel

 

Where Kullanımı

 

Select personelad from Tbl_Personel where personelsehir='Ankara' and personeldurum='0'

Select personelad from Tbl_Personel where personelsehir='Ankara' or personeldurum='1'

 

  • String ifadeler sorguya yazılırken SQL de ‘ ’ işareti kullanılır. ” ” da hata verir. Sayısal aramalarda tırnak kullanılmasa da olur.

 

Select personelad from Tbl_Personel where personelmaas>='3200'

Sorguda NOT Kullanımı

Select personelad from Tbl_Personel where personelsehir  != 'Ankara'

Select personelad from Tbl_Personel where NOT personelsehir = 'Ankara'

  • Her iki şekilde de kullanılır.

Select as kullanımı

Select Name as ProductName, Price as Fiyat From Products

  • Products tablosundan Name ve price alanlarını getir.Name yerine ProductName yazarak Price yerine Fiyat yazarak getir.

INSERT

Insert into tablo_adı (sütunları) values (parametreler)

  • Sütunlar kısmında NotNUll olarak tanımladığımız alanları kesinlikle verip veri girişi yapmamız lazım.

Insert into Products(Name,Price,Stock,CategoryId) values('HP',7500,12,2)

Delete

Delete from tbl_personel where personelid=@p1

Update

UPDATE Customers SET  Name=’Sadık’ , JobId=2 WHERE Id=1

Update Products SET Name='Samsung S7',Price=8600 Where Id=1

Update Products SET Price = Price+10 (Tüm ürünlere 10 TL zam.)

 

Hazır SQL Fonksiyonları

COUNT (TOPLAM KAYIT SAYISI)

Select Count(*) From Tbl_Personel

Select Count(*) From Tbl_Personel Where Personeldurum=1

 

Select Count(distinct(Name)) From Products

  • Distinct : Tekrarsız sayma yapmak için.

Not : Eğer kolonda null değer varsa Count methodu onu saymaz.

 

AVG (ORTALAM)

Select Avg(personelmaas) From Tbl_Personel

 

SUM(TOPLAM)

Select Sum(personelmaas) From Tbl_Personel

Select Sum(Price * Stock) From Poducts

  • Stok miktarınıda dikkate alarak toplama yapar.

 

Min-Max

Select Min(personelmaas) From Tbl_Personel

Select Max(personelmaas) From Tbl_Personel

 

Group By (Gruplandırma)

select PersonelSehir,count(*) from tbl_personel group by personelsehir

 

Mesleklerim ortalama maaşı

select Personelmeslek,avg(personelmaas) from tbl_personel group by personelmeslek

 

Where Operatörler

Between (Arasında)

  • Aralıklı sorgulama yapmak için kullanılır.

Select * From Tbl_Personel Where Price Between 1500 And 4500

Select * From Tbl_Personel Where Id Between 1 And 5

Not operatörü ile de kullanılır.

Select * From Tbl_Personel Where Price Not Between 1500 And 4500

Select * From Tbl_Personel Where Id Not Between 1 And 5

 

In (De Kileri Getir)

  • Bu operatör ile bir kolon içinde yer alan verilerin istediğimiz veriler olup olmadığını karşılaştırma yaparak kontrol etmesini sağlarız.

Select * From Products Where Category IN (‘Telefon’ , ‘Bilgisayar’)

Select * From Personel Where Id IN (1 , 2)

Not operatörü ile de kullanılır.

Select * From Products Where Category Not IN (‘Telefon’ , ‘Bilgisayar’)

 

Like (İçeriyor mu ?)

  • Verimizde istediğimiz karekter geçiyor mu ? Bunun için LIKE kullanılır.

‘%Samsung% ’ : Başında ve sonunda ne olduğu önemli değil. İçinde ‘Samsung’ kelimesi olanı seç demek.

‘Samsung% ’    : Sonunda ne olduğu önemli değil. Başında ‘Samsung’ kelimesi olanları getir.

‘%Samsung ’    : Başında ne olduğu önemli değil sonunda ‘Samsung’ kelimesi olanları getir.

‘_a% ’                : İlk karakteri önemli değil 2. harfi a olanları getir.

‘%a_ ’                : Son karakteri önemli değil sondan 1. harfi a olanları getir.

‘S_m% ’             : 2. Karakteri önemli değil. 1. harfi ‘S’ 2. harfi ‘m’ olanları getir.

  • NOT : Büyük küçük harf duyarlılığı yok.

 

Select * from Products Where Name LIKE  ‘%Samsung% ’

Select * from Products Where Name LIKE ‘Samsung% ’   

Select * from Products Where Name LIKE ‘%Samsung ’   

Select * from Products Where Name LIKE ‘_a% ’

Select * from Products Where Name LIKE ‘%a_ ’               

Select * from Products Where Name LIKE ‘S_m% ’    

NOT ile de kullanılabilirler       

Select * from Products Where Name NOT LIKE ‘Samsung% ’   

Select * from Products Where Name NOT  LIKE ‘%Samsung ’   

Select * from Products Where Name NOT LIKE ‘_a% ’

 

2 Operatörle Birlikte Kullanım

Select * from Products Where Name LIKE  ‘%Samsung% ’ AND Price<6000

Select * From Products Where Price Between 1500 And 4500 AND Name LIKE  ‘%Samsung% ’

Select * From Products Where Category Not IN (‘Telefon’ , ‘Bilgisayar’) AND Price<6000

 

Order By (Koşullu Sıralama)

Select * from Products Order By Price

  • Default olarak azdan çoğa sıralar. Artan sıralama.

 

Select * from Products Order By Price Desc

  • Azalana göre sıralar.

Select * from Products Order By Price Asc

  • Artan sıralama yapar.

Select * from Products Order By Price Asc Limit 1

Select * from Products Order By Price Desc Limit 1

  • Limit 1 ile gelen sıralanmış verinin sadece ilk verisi gelir.

 

SQL String Methodlar

 SQL sorgularında string fonksiyonları da mevcuttur. SQL tabanlı databaselerde SQL sorgu dili ortak olsada bu fonksiyonların kullanımında databaselere göre değişiklikler olabilir.

Buradan ihtiyacına göre seçip kullanabilirsin.

 

Group By

  • Group by komutu tablodaki verileri istenilen bir veya birden çok alana göre gruplandırmak için kullanır.

Select Category , Count(*) as Adet From Products Group By Category

Select Category , Avg(Price) as Adet From Products Group By Category Where Price > 1000

Select Category , Sum(Price) as Adet From Products Group By Category

Select Category , Count(*) as Adet From Products Group By Category Having Count(*) > 1

  • Grubu ilgilendiren filtreleme işlemlerinde Having anahtar kelimesi kullanılır.

Select City , Count(*) as Miktar From Customers Group By City

metin, ekran görüntüsü, yazı tipi, sayı, numara içeren bir resimAçıklama otomatik olarak oluşturuldu

Inner Join Kullanımı

select * from orders inner join customers on orders.customer_id=customers.id

  • Koşul için where yerine on kullanılır.
  • Biraz daha anlaşılır ve kullanışlı hali aşağıdaki gibi olur.

Select orders.id,customers.first_name,orders.order_date from orders inner join customers on orders.customer_id=customers.id

  • Tablodaki tüm kolonları almak yerine ihtiyaç duyduklarımızı aldık.

select o.id, c.first_name, o.order_date from orders o inner join customers c on orders.customer_id=customers.id

  • Orders ve customers anahtar kelimelerini o ve c olacak şekilde kısalttık.

 

select orders.id as orderId,products.product_name,customers.first_name,orders.order_date from orders

inner join customers on orders.customer_id=customers.id

inner join order_details on orders.id=order_details.order_id

inner join products on order_details.product_id=products.id

  • İkiden fazla tablo birleşimi

 

Left Join

select customers.first_name,orders.id as orderId from customers

left join orders on customers.id=orders.customer_id

where orders.id is null

order by first_name

  • Solundaki tablodan gelen bütün verileri alırken sağındaki tablodan sadece kesişen verileri alır. Sisteme kayıtlı olan ama hiç sipariş vermemiş kullanıcıları filtrelemek için kullanılabilir. Yukarıdaki örnek bunu temsil etmektedir.

 

Right Join

  • Left join kullanımının tam tersidir.

Yorumlar

Yorum yapabilmek için lütfen giriş yapın.

Henüz yorum yapılmamış. İlk yorumu siz yapın!