SQL INSERT INTO komutu kullanımı örneği (SQL INSERT INTO command usage example)

INSERT ekleme anlamındadır. INTO ise içine anlamındadır. Tabloya yeni satır ilave etmek için kullanılır.
Kullanım şekli aşağıdaki gibidir.

INSERT INTO tablo_adi
    (tablo_alani1, tablo_alani2,tablo_alani3.....) 

    VALUES(deger1, deger2, deger3......);

* Direkt Insert : Burada kendimiz içeriğini doldurduğumuz bilgiyi veritabanına yazabiliriz.

INSERT INTO department (department_id, department_name)
VALUES (10, 'Muhasebe');

Yukarıdaki komut çalıştırıldığında “department” tablosunda aşağıdaki gibi kayıt oluşacaktır. Bizim belirtmemiş olduğumuz “number” değeri ise biz belirtmediğimiz için kendi varsayılan değerini alacaktır, burda “number” integer(tam sayı) tipinde olduğunu varsayarak 0(sıfır) değerini almıştır.

department_id department_name number
10 Muhasebe 0

* Seçmeli Insert : Bu şekilde yazacağımız veriyi veritabanından belli koşullarda oluşan filtreleme ile oluşturup kalan kolonları kendimiz doldururuz.

Aşağıdaki kodda “personnel” tablosunda olup, “department” tablosunda olmayan departman kodları için “department_name” alanı “Tanımsız” olacak şekilde “department” tablosunda güncellenmektedir.

INSERT INTO department (department_id, department_name)
     SELECT department_id ,'Tanımsız'
     FROM personnel 
     WHERE department_id NOT IN (SELECT department_id FROM department)
INSERT INTO personnel (person_id, name, address, city, department_id)
     VALUES (1, 'Halil KINIK', 'yeni mahalle', 'Kütahya', 50 );

Bu komutunu çalıştırdıktan sonra bir üsttteki komut satırını çalıştırırsak “department” tablosuna “department_id = 50”, “department_name = ‘Tanımsız'” olan bir kayıt oluşturur.

Yukarıdaki komutlar çalıştırıldığında “department” ve “personnel” tablolarında aşağıdaki gibi kayıt oluşacaktır.

TABLO :”personnel”

person_id name address city department_id age
1 Halil KINIK Yeni Mahalle Kütahya 50

TABLO :department

department_id department_name number
50 Tanımsız

Kullanılan SQL komutları aşağıdaki tablo yapısı baz alınarak yazılmıştır.
Burada basit olarak;
Personelin çalıştığı departman bilgilerinin tutulduğu “department”,
Personel özlük bilgilerinin tutulduğu “personnel” ve
Personel aylık dönemlere göre çalısma bilgilerinin tutulacağı “working” tabloları oluşturulmuştur.

CREATE SCHEMA `yazilimcitynet` ;


CREATE  TABLE `yazilimcitynet`.`department` (
  `department_id` INT NOT NULL ,
  `department_name` VARCHAR(45) NOT NULL ,
  `number` INT NOT NULL ,
  PRIMARY KEY (`department_id`) ,
  UNIQUE INDEX `department_id_UNIQUE` (`department_id` ASC) ,
  UNIQUE INDEX `department_name_UNIQUE` (`department_name` ASC) );


CREATE  TABLE `yazilimcitynet`.`personnel` (
  `person_id` INT NOT NULL ,
  `name` VARCHAR(50) NOT NULL ,
  `address` VARCHAR(255) NULL ,
  `city` VARCHAR(50) NULL ,
  `department_id` INT ,
  `age` INT NULL ,
  PRIMARY KEY (`person_id`) );


CREATE  TABLE `yazilimcitynet`.`working` (
  `working_period` VARCHAR(6) NOT NULL ,
  `person_id` INT NOT NULL ,
  `working_days` INT NULL ,
  `paid_leave` INT NULL ,
  `leave_without_pay` INT NULL ,
  PRIMARY KEY (`person_id`) );
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

Leave a Reply


*