16 Nisan 2015 Perşembe

Oracle' da Insert Into Nedir ? Nasıl Kullanılır ?

Oracle' da Insert Into Nedir ? Nasıl Kullanılır ?

Merhaba arkadaşlar, bugün sizlere oluşturduğumuz tablolara nasıl veri ekleyeceğimizi elimden geldiği kadar anlatmaya çalışacağım. Oracle' da tablolara veri ekleyebilmek için "Insert Into table_name (data,data,'data',...);" cümlesinin çeşitli varyasyonlarını kullanırız.

Çeşitli varyasyonları diyorum çünkü bazı durumlar karşısında tablolarımızdaki belirli sütunlara veri girmek istemeyebiliriz. Böyle bir durumda veri ekleyeceğimiz alanları SQL cümlesi içerisinde belirtmemiz gerekiyor.

Böylece SQL cümlemiz;
Insert Into table_name (col_1,col_2,col_3...) values('data_1','data_2'.....);
şeklinde olacaktır.

Ek olarak halihazırda bulunan bir tablodan verileri alarak başka bir tabloya kayıt yapabiliriz. Bu yöntem "Subquery" yöntemi olarak bilinir.

Böylece SQL cümlemiz;
INSERT INTO suppliers (supplier_id, supplier_name) SELECT account_no, name FROM customers WHERE customer_id > 5000;
şeklinde olacaktır.

Subquery şeklinde yazılan cümleleri etkin ve verimli bir şekilde kullanabilmek için "Select" sorgularının mantığını ve nasıl çalıştığını kavramak çok önemlidir.

Vakit kaybetmeden verilerimizi eklemeye başlayalım, ilk önce sıfırdan yeni bir tablo oluşturalım ve adına "Ogrenciler" diyelim. Yeni tablomuzun syntaxını aşağıda inceleyebilirsiniz.

Create Table Ogrenci ( ogrenciNo number(4), ogrenciAd varchar2(10), ogrenciSoyad varchar2(14),ogrenciSehir varchar2(25), Constraint ogrenciNo_pk Primary Key (ogrenciNo));

**Eğer veritabanında tablo nasıl oluşturuluyor ki derseniz Create Table Nedir ?Nasıl Kullanılır ? adlı yazıma bakabilirsiniz.

Tablomuzu oluşturduk, veri girmeden önce dikkat etmemiz gereken birkaç nokta var. Bunlar;
  • Not Null olarak kısıtlanan alanlar kesinlikle boş bırakılmamılıdır,
  • Veri girişi yapılırken tablodaki kolon sırası dikkate alınmalı,
  • Veriler, kolonlara tanımlanan veri türlerine göre tanımlanmalı (Oracle veritabanında değerlerin karakter olması isteniyorsa (varchar2 vb.) 'veri' şeklinde, sayı olması isteniyorsa 123123 şeklinde tırnakları kaldırarak tanımlamalıyız.)
  • Tablodaki primary key alanları kesinlikle boş bırakılamaz ve tanımlanan veri türüne göre değer almalıdır.
**Daha fazla bilgi için Oracle Veritabanında En Sık Kullanılan Veri Tipleri Nelerdir ? adlı yazılarıma göz atabilirsiniz.

Yukarıdaki noktaları da göz önünde bulundurarak tablomuza verilerimizi girebiliriz. Veri girişinde en çok kullanılan yöntem tablonun tüm kolonlarına veri girmektir.

Bu durumda kullanacağımız syntax aşağıdaki gibi olmalıdır.
insert into Ogrenci values (13232,'Melek','Birkan','İstanbul');
Bir diğer yöntem ise oluşturduğumuz tablonun sadece belirli kolonlarına veriler göndermek.

Bu durumda veri göndermek istediğimiz kolonları belirtmemiz ve verilerimizi o sırada göndermeyeliz.

Kullanacağımız syntax ise;
Insert Into Ogrenciler (ogrenciNo,ogrenciAd) values (123123,'Melek');
şeklinde olmalıdır.

Not : Primary key, bir kaydı diğerlerinden ayırdığı için mutlaka yazılmalıdır aksi takdirde hata ile karşılarız.

Tabikide veritabanına kayıt eklemek için kullandığımız yöntemler bu kadar kısıtlı değil. Oracle veritabanında "Select" sorgularını kullanarak karmaşık kayıt cümleleri oluşturabiliriz. Yukarıda da bahsettiğim gibi bu yöneteme Subquery yöntemi deniliyor fakat bu yöntemi verimli bir şekilde kullanabilmek için "Select" sorguları çok iyi bir şekilde bilmek gereklidir.

**Hatırlatma : Select cümleleri, tablolarımızda bulunan veriyi veya verileri sorgulamamızı sağlar. Select cümleleri ile hangi tabloda ne var veya hangi tablodaki veriler arasında bağlantı var gibi sorulara ve çok daha fazlasına yanıt verir. Where komutu ise yapacağımız aramayı detaylandırmak için koyduğumuz şartları belirtir.

  • Select All From Ogrenciler;  Öğrenciler tablosundaki tüm verileri karşımıza getirir.
  • Select All From Ogrenciler Where OgrenciNo=123123; Öğrenci tablosundaki sadece numarası 123123 olan kaydı bize gösterecektir.

Örnek olarak;
INSERT INTO Tedarikci
(TedarikciNo, TedarikciAd)
SELECT UyeNo, UyeAd
FROM Musteri
WHERE UyeNo > 5000;

Insert komutu içerisinde "Select" kullanarak tek seferde birçok kaydı tabloya girmiş oluruz. Eğer tek bir kayıt almak istiyorsak sadece şart cümlemizi yani Where UyeNo> kısmını UyeNo= şeklinde değiştirmemiz gerekir.

Böylece SQL cümlemiz;
INSERT INTO Tedarikci
(TedarikciNo, TedarikciAd)
SELECT UyeNo, UyeAd
FROM Musteri
WHERE UyeNo=5000;
şeklinde olur.

Select sorgularını henüz anlatmadığım için yazımı burada tamamlıyorum. Select sorgularını detaylı bir şekilde anlattıktan sonra "Subquery" ile oluşturulan veri kayıt cümlelerini ayrı başlık altında detaylı bir şekilde anlatmaya çalışacağım.

Karşılaştığınız hataları veya görüş ve önerilerinizi yorum bölümünde belirtebilirsiniz.

Bir sonraki yazımda görüşmek üzere, hoşça kalın.

Hiç yorum yok:

Yorum Gönder