* Direkt Insert : Burada kendimiz içeriğini doldurduğumuz bilgiyi veritabanına yazabiliriz.
The INSERT INTO statement copies data from one table into a exist table.
[code language=”sql”]
INSERT INTO department (department_id, department_name)
VALUES (10, ‘Muhasebe’);
[/code]
The SELECT INTO statement copies data from one table into a new table.
[code language=”sql”]
SELECT * INTO IcSeLoAr20 FROM IcSeLo WITH(NOLOCK)
WHERE businessDate < ‘2022-01-01’;
[/code]
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.
[code language=”sql”]
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)
[/code]
[code language=”sql”]
INSERT INTO personnel (person_id, name, address, city, department_id)
VALUES (1, ‘Halil KINIK’, ‘yeni mahalle’, ‘Kütahya’, 50 );
[/code]
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.
[code language=”sql”]
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`) );
[/code]
Yukarıdaki örnek bloğundan bağımsız bir başka INSERT yazım şekli ise aşağıdaki gibidir.
[code lang=”sql”]
insert into YCN.HA_HBYS_YETKILER (PARAMETRE_ID, PARAMETE_ADI, PARAMETRE_DEGER1, PARAMETRE_DEGER2, MODUL_KODU) values (‘IE0001’, ‘Epikriz Baþlýðýna müdehale edebilsin’, null, null, ‘HBYS01’);
INSERT INTO KR_DEVICES (DEVICE_ID,DEVICE_NAME,SHORT_NAME) VALUES (‘905′,’Histoloji’,’Histoloji’);
INSERT INTO KR_DEVICES (DEVICE_ID,DEVICE_NAME,SHORT_NAME) VALUES (‘903′,’Genetik’,’Genetik’);
[/code]]]>