Ana içeriğe atla

SQL ile Tablodan Verileri Çekmek ve Başka Tabloya Eklemek (Insert Into)

Merhaba arkadaşlar;

Bu yazı içerisinde bir sql ile tabloda bulunan kayıtları herhangi bir koşul belirtmek suretiyle başka bir tablo içerisine eklemeyi anlatacağım.

Aşağıdaki örnekte olduğu gibi bir tablomuz olduğunu düşünelim.

Örnek table1 :

id col1 col2 col3

1 hasan yıldız 233

2 ahmet demir 342

3 coşkun çakıcı 654

Örnek table2 :

id col1 col2 col3 col4

5 zafer olgun 321 1

Örnek olarak table1 içerisinde id bilgisi 3 olan coşkun çakıcı kaydını çekip table2 üzerine kaydedelim.

Bunun için aşağıdaki sql kodunu yazmamız yeterli.


INSERT INTO table2 (col1, col2, col3, col4) (SELECT col1, col2, col3, (1) as col4 FROM table1 WHERE id = 3)

 SQL kodunu incelersek;

  1. Ekleme yapacağımız tabloyu ve kolonları belirledik
  2. İkinci kısımda SELECT komutu ile koşullu olarak başka bir tablodan verilerimizi çektik. Tabi ki farklı amaçlar için kullanıldığından kolon yapısı farklı olabilir. Bu nedenden dolayı değeri 1 olan col4 adında sahte bir kolon oluşturdum..

table2 'yi yenilediğimiz zaman aşağıdaki sonuç ortaya çıkacaktır.

id col1 col2 col3 col4

5 zafer olgun 321 1

6 coşkun çakıcı 654 1

Kullanım Alanları


Birden fazla veri satırını işleyip başka bir tablo üzerine kayıt yapmak açısından çok yararlı bir yöntem. Örneğin ilçeler bazında satış bilgilerinin yer aldığı bir tabloya sum() komutuyla değerleri toplattırıp iller tablosuna ekletebilirsiniz.

İyi çalışmalar dilerim.

Ek

table1

CREATE TABLE `table1`
  (
     `id`   INT(11) NOT NULL auto_increment,
     `col1` VARCHAR(255) DEFAULT NULL,
     `col2` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
     `col3` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
     PRIMARY KEY (`id`)
  )
engine=innodb
auto_increment=4
DEFAULT charset=latin1;

table2

CREATE TABLE `table2`
  (
     `id`   INT(11) NOT NULL auto_increment,
     `col1` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
     `col2` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
     `col3` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
     `col4` VARCHAR(255) CHARACTER SET latin5 DEFAULT NULL,
     PRIMARY KEY (`id`)
  )
engine=innodb
auto_increment=7
DEFAULT charset=latin1;   

Yorumlar

Bu blogdaki popüler yayınlar

Web Sitelerinde Kullanıcı Rızası ve Google Analytics Entegrasyonu: Neden ve Nasıl?

 Dijital dünyada kullanıcı gizliliği artık bir tercih değil, yasal bir zorunluluktur. Eğer bir web siteniz varsa ve ziyaretçi trafiğini analiz etmek için Google Analytics kullanıyorsanız, kullanıcılarınızdan izin almadan veri toplamanın ciddi sonuçları olabilir. Bu yazımızda, kullanıcı rızasının önemini inceleyecek ve PHP kullanarak basit ama etkili bir rıza yönetim mekanizmasını nasıl kurabileceğinizi öğreneceğiz. 1. Kullanıcı Rızası (Consent) Neden Önemli? Web sitenize giren bir kullanıcının davranışlarını takip etmek, aslında onun kişisel verilerine dokunmak demektir. İşte rıza almanız için 3 temel sebep: Yasal Uyumluluk (KVKK & GDPR): Türkiye’de KVKK , Avrupa’da ise GDPR yasaları, kullanıcıların çerezler (cookies) aracılığıyla takip edilmeden önce bilgilendirilmesini ve onayının alınmasını şart koşar. Dijital Etik ve Güven: Ziyaretçilerinize verilerini nasıl kullandığınızı sormak, markanızın şeffaflığını ve profesyonelliğini gösterir. Veri Kalitesi: Google’ın yeni Con...

Windows, Docker ve VSCode ile Kusursuz PHP Debug Ortamı Kurulumu

Windows üzerinde PHP geliştirirken performans sorunları ve "dosya yolunda çalışmama" gibi hatalardan sıkıldınız mı? Bu rehberde; Apache, MySQL ve Xdebug 3 kullanarak, VSCode ile tam senkronize çalışan, yüksek performanslı bir geliştirme ortamını nasıl kuracağınızı anlatıyorum. ⚠️ Gereksinimler Windows 10/11 (WSL 2 yüklü olması önerilir). Docker Desktop. VSCode. 1. Proje Yapısı Öncelikle projenizin ana dizininde ( C:\Users\user\htdocs_debug ) aşağıdaki klasör ve dosyaları oluşturun: /html (Kodlarınız burada olacak) /mysql_data (Veritabanı verileriniz burada saklanacak) docker-compose.yml Dockerfile 2. Docker Yapılandırması docker-compose.yml dosyanıza aşağıdaki içeriği ekleyin. Bu yapı, Apache'yi 8888 portunda, MySQL'i ise 3312 portunda çalıştıracaktır: YAML version: '3.8' services: web: build: . container_name: phpserver_debug ports: - "8888:80" volumes: - ./html:/var/www/html extra_hosts: -...

1960’lardan Bir "Shimmer" Hikayesi: Annemin Nakışı ve Yapay Zeka Tasarımı

Dijital dünyada her gün binlerce kez karşılaştığımız, "bir şeyler yükleniyor" ya da "yeni bir fikir doğuyor" anlamına gelen o parıltı (shimmer) ikonuyla, 1960’larda el emeğiyle işlenmiş bir kanaviçenin yan yana geleceğini kim düşünebilirdi? Geçtiğimiz günlerde annemin gençlik yıllarında, yaklaşık 60 yıl önce işlediği amatör bir nakış çalışmasına dikkatli bakınca önemli bir şey fark ettim. Üzerinde hepimizin aşina olduğu o kadim soru yazılıydı: "Bugün Allah için ne yaptın?" Ancak asıl şaşırtıcı olan, yazının hemen sağ alt köşesinde parıldayan o küçük yıldız simgesiydi. Tasarımın Zaman Yolculuğu: Nakıştan Piksel Sanatına Nakış, özü itibarıyla aslında tarihin ilk pixel art (piksel sanatı) örneğidir. Her bir iğne darbesi bir piksele tekabül eder. Annem, 1960'ların kısıtlı imkanlarıyla o dönemde belki de sadece estetik bir "boşluk doldurucu" olarak gördüğü o yıldızı oraya işlerken, farkında olmadan 21. yüzyılın en ileri teknoloji diliyle konuşuyo...