SQL

SQL Kısıtlayıcılar(Constraints)

Kısıtlar(constarints) veritabanında ki veri bütünlüğünü sağlamak amacıyla oluşturulmuş kurallar olarak tanımlanabilir.Yani kısıtlar veritabanına hatalı giriş yapılmasını engeller.Örnegin bir tablomuzda cinsiyet sütunu olduğunu düşünelim ve bu sütuna veri olarak sadece E veya K girimesi gerekiyor bu gibi bir durumu kısıtlayıcılar ile sağlayabiliriz.Oracle’da var olan kısıtlayıcılar.

  1. NOT NULL : NULL değerlerin girilmesini engeller.
  2. CHECK : Belirtilen şartın sağlanıp saglanmadıgını kontrol eder.
  3. UNIQUE : İlgili sütunda veri tekrarını engeller.
  4. PRIMARY KEY : Bir tabloda ki benzersiz alanı belirtir.Yani hem NOT NULL  olacak hem de UNIQUE olacak.
  5. FOREIGN KEY : Tablolar arasında ortak sütunları kullanarak ilişki olmasını sağlar.

Kısıtlar CREATE TABLE veya ALTER TABLE ile oluşturulur.

Kısıtımız sadece bir sütun ile ilgiliyse sütun seviyesin de kısıt oluşturulur.Eger kısıtımız birden fazla sütun içeriyorsa tablo seviyesin de kısıt oluşturulabilir.Kısıt oluşturmak için gerekli söz dizimi ;
(continue reading…)

Loading


SQL DDL(Data Definition Language-Veri Tanımlama Dili)-TABLO(Table)

Merhaba arkadaşlar bu yazımda DDL(Data Definition Language-Veri Tanımlama Dili) ‘e ait SQL komutlarını inceleyecegiz ama bu konu çok geniş oldugundan(table,index,view,sequence,synonym vs.) ben burada sadece tablolar üzerinde örnekler yapacagım.

Tablo(table)

Tablo ilişkisel veritabanların da verileri saklamak için kullanılan sütunlar ve satırlardan oluşan iki boyutlu bir yapıdır.

  1. Her tablonun kendisine ait özel bir ismi vardır.
  2. Bir tablo için kullanılan bir isim aynı şema(schema) içerisin de başka bir tabloya daha verilemez.
  3. Tabloda yer alan sütunların veritipi,büyüklük vs. gibi özellikleri vardır.
  4. Aynı tablo içerisinde de aynı sütun ismi birden fazla sütüna verilemez.

NOT : Bir tablonun bilgilerini görmek için USER_TABLES,ALL_TABLES,USER_TAB_COLUMNS, ALL_TAB_COLUMNS views(görüntüleri) kullanılabilir.

  • Aşagıda ki SQL cümlesiyle bulundugumuz kullanıcıda ki tabloların bilgilerini verir.
SELECT * FROM user_tables;

(continue reading…)

Loading


SQL DML(Data Manipulation Language-Veri İşleme Dili)

Veritabanına yeni veri ekleme,var olan verileri  güncelleme veya silme işlemleri DML(Data Manipulation Language-Veri İşleme Dili) kullanılarak yapılmaktadır.

DML cümlelerini kullanarak veriler üzerinde değişiklik yaptıktan sonra bu değişikliklerin kalıcı olması için COMMIT komutu çalıştırılmalıdır.COMMIT komutunun çalıştırılması ile o ana kadar yapılan değişikliklerin hepsi veritabanına işlenir ve kalıcı hale gelir.Yapılan değişiklikleri geri almak için ise ROLLBACK komutu kullanılır.

Oracle tarafından desteklenen DML ifadeler ;

  1. INSERT : Tabloya yeni kayıt ekler.
  2. UPDATE : Tabloda ki kaydı güncelleştirir.
  3. DELETE : Tabloda ki kaydı siler.
  4. MERGE : Tabloya kayıt ekler ya da değiştirir.
  5. LOCK TABLE : Diger oturumların tablo üzerinde DML işlem yapmasını engeller.
  6. SELECT FOR UPDATE : Başka oturumların seçilen kayıtlar üzerinde DML işlem yapmasını engeller.

(continue reading…)

Loading


SQL Sub Query(Alt Sorgular)

Alt sorgu(Subquery) sorgu içerisinde sorgu demektir.İçte ki alt sorgu problemin bir kısmının çözümünü verir,kalan kısmı ise ana sorguda çözülür.

Örnekle açıklayacak olursak employees tablosunda yer alan verilerden first_name sütunu Nancy olan verinin salary’i sütunundan yüksek olan diğer verileri listele.Burada sorguyu 2 parçaya böleriz birinci parça Nancy’nin salary sütununun değeri ne kadar ,ikinci parça ise hangi verilerin salary sütunu Nancy’den yüksektir.

SELECT * FROM employees
WHERE salary > (SELECT salary FROM employees WHERE first_name='Nancy');
  1. Alt sorguları SELECT cümlelerinin FROM kısmında kullanırsak bu alt sorguya İçsel Görüntü denilir.
  2. Alt sorguları SELECT cümlelerinin WHERE kısmında kullanırsak bu tür alt sorgulara İç İçe alt sorgu denilir.
  3. Eger ana sorgu da kullanılan bir sütun alt sorguda da kullanılırsa buna Korelasyon alt sorgu denilir.Ana sorguda ki her bir kayıt için alt sorgu bir kez çalıştırılır.
  4. Eger alt sorgu sadece bir sütun ve bir kayıt döndürüyorsa bu tür alt sorgulara Doğrusal alt sorgu denir.

(continue reading…)

Loading


JOIN

İlişkisel veritabanı sistemler de veriler birbirleriyle ilişkili birçok tabloda saklanır.

Bazı durumlar da ihtiyaç duyulan bilgileri almak için birden fazla tablodan yararlanmak gerekir.Bu gibi durumlar da ilgili tablolara ulaşmak için SQL’in JOIN(birleştirme) özelliğini kullanırız.

Oracle’da birçok JOIN çeşidi vardır ;

  • Inner Join
  • Natural Join
  • Join ….. Using
  • Join ….. On
  • Cross Join
  • Outer Join

(continue reading…)

Loading


Group By-Having-Cube ve Rollup

Grup By(Verilerin Gruplandırılması)

Grup fonksiyonları yukarıda da belirtiğim gibi gruplanmış veriler üzerinde işlem yapar.SQL cümlelerin de verilerin nasıl gruplanmasını istediğimizi GROUP BY ifadesi ile belirtiriz.

Yukarıda da anlatıgımız gibi grup fonksiyonları bir sütundaki verileri, bir işleme sokarak tek bir değer döndürür. Biz eğer tek değer döndürmesini istemiyorsanız, yani her grup için ayrı ayrı hesap yapmasını istiyorsak Group By  ‘ı kullanırız.

  • Aşagıda ki sorgu da employees tablosunda ki job_id sütununa göre gruplar ondan sonra da her grupdaki salary sütununda bulunan verilere göre ortalamayı verir.
Select job_id,AVG(salary) from employees GROUP BY job_id;
NOT : SQL cümlesinin SELECT kısmında kullanılan gruplama ifadeleri ve sabit değerler haricinde ki tüm sütunlar GROUP BY ifadesinde yer almalıdır.
Select job_id,manager_id,AVG(salary) from employees
GROUP BY job_id,manager_id;

(continue reading…)

Loading


  • Sertifikasyon



  • Etiketler

  • Topluluklar

                     
                     
  • Copyright © 1996-2010 Mustafa Bektaş Tepe. All rights reserved.
    Türkçeleştirme Blogizma | AltyapıWordPress