Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Altın Konu SQL SELECT INTO İfadesiyle Yeni Bir Tablo Oluşturma Nasıl Yapılır?

Karadayı ✓

Karadayı ✓
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
Uzman
Ayın Üyesi
Katılım
21 May 2024
Konular
1,450
Mesajlar
2,451
Çözüm
7
Online süresi
3mo 25d
Reaksiyon Skoru
2,564
Altın Konu
1,027
Başarım Puanı
274
Yaş
51
MmoLira
36,853
DevLira
110
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

sql select into_turkmmo.png

SQL SELECT INTO İfadesiyle Yeni Bir Tablo Oluşturma Nasıl Yapılır?

SQL Select Into İfadesi

SQL SELECT INTO İfadesi yeni bir tablo oluşturur ve mevcut bir tablodan yeni oluşturulan tabloya veri ekler. Yeni tablo, SELECT ifadesindeki sütunların yapısına göre otomatik olarak oluşturulur ve aynı veritabanında veya farklı bir veritabanında oluşturulabilir.

Ancak, SELECT INTO ifadesinin orijinal tablonun herhangi bir dizinini, kısıtlamasını veya diğer özelliklerini korumadığını ve yeni tablonun varsayılan olarak tanımlanmış birincil anahtarları veya yabancı anahtarları olmayacağını unutmamak önemlidir. Bu nedenle, gerekirse bu özellikleri yeni tabloya manuel olarak eklemeniz gerekebilir.

MySQL, SELECT ... INTO TABLE Sybase SQL uzantısını desteklemez, yani MySQL'de bir tablodan diğerine veri eklemek için SELECT ... INTO ifadesini kullanamazsınız. Bunun yerine, INSERT INTO ... SELECT ifadesini veya CREATE TABLE ... SELECT ifadesini kullanabiliriz.

Sözdizimi

Aşağıda SQL Server'daki SQL SELECT INTO ifadesinin temel sözdizimi yer almaktadır:

SELECT * INTO new_table_name FROM existing_table_name

Örnek

Aşağıda gösterildiği gibi müşterilerin adı, yaşı, adresi, maaşı vb. gibi kişisel bilgilerini içeren MÜŞTERİLER tablosunu oluşturalım −

CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);

Şimdi, INSERT ifadesini kullanarak bu tabloya aşağıdaki gibi değerler ekleyin:

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

CUSTOMERS tablosu aşağıdaki gibi oluşturulacaktır.

İDİSİMYAŞADRESMAAŞ
1Remzi32Ahmedabad2000,00
2Hale25Delhi1500,00
3Hasan23Kota2000,00
4Burhan25Bombay6500,00
5Sertan27Bhopal8500,00
6Asım22Haydarabad4500,00
7Yaşar24Hindistan10000,00

Aşağıdaki SELECT INTO ifadesi CUSTOMER_BACKUP adında yeni bir tablo oluşturur ve verileri CUSTOMERS tablosundan buraya kopyalar.

SELECT * INTO CUSTOMER_BACKUP FROM CUSTOMERS;

Çıktı

Aşağıdaki sonucu elde ediyoruz. 7 satırın değiştirildiğini görebiliyoruz.

(7 rows affected)

Doğrulama

SELECT ifadesini kullanarak içeriklerini alarak değişikliklerin bir tabloya yansıtılıp yansıtılmadığını doğrulayabiliriz. Aşağıda CUSTOMER_BACKUP tablosundaki kayıtları görüntülemek için sorgu verilmiştir.

SELECT * from CUSTOMER_BACKUP;

Görüntülenen tablo şu şekildedir:
İDİSİMYAŞADRESMAAŞ
1Lanet adam32Ahmedabad2000,00
2Emrah25Delhi1500,00
3DnAngel23Kota2000,00
4Bilal25Bombay6500,00
5Ferdi27Bhopal8500,00
6Cevo22Haydarabad4500,00
7Kerim24Hindistan10000,00

Belirli Sütunlardan Veri Kopyalama
Mevcut bir tablodaki belirli sütunlardan gelen verileri SQL SELECT INTO ifadesini kullanarak yeni tabloya kopyalayabiliriz. Bunu yapmak için, select anahtar sözcüğünden sonra gerekli sütun adlarını eklememiz yeterlidir.

Sözdizimi

Sözdizimi şu şekildedir:

SELECT column1, column2, ..., columnN
INTO new_table_name
FROM existing_table_name;

Örnek

Aşağıdaki sorguda, CUSTOMERS tablosundan yalnızca NAME, AGE ve ADDRESS sütunlarını içeren CUSTOMER_DETAILS adında yeni bir tablo oluşturuyoruz ve bu tabloyu ilgili verilerle dolduruyoruz.

SELECT name, age, address
INTO CUSTOMER_DETAILS
FROM CUSTOMERS;

Çıktı

Aşağıdaki sonucu elde ediyoruz. 7 satırın değiştirildiğini görebiliyoruz.

(7 rows affected)

Doğrulama

SELECT ifadesini kullanarak içeriklerini alarak değişikliklerin bir tabloya yansıtılıp yansıtılmadığını doğrulayabiliriz. Aşağıda CUSTOMER_DETAILS tablosundaki kayıtları görüntülemek için sorgu verilmiştir.

SELECT * from CUSTOMER_DETAILS;

Görüntülenen tablo şu şekildedir:

İSİMYAŞADRES
Ramazan32Ahmedabad
Hakan25Delhi
Kemal23Kota
Yusuf25Bombay
Yunus asilzade27Bhopal
carissa22Haydarabad
Alperen24Hindistan

Not: Yeni tablo orijinal tablodan başka hiçbir sütunu içermeyecektir. Ayrıca orijinal tablo değişmeden kalacaktır.


Birden Fazla Tablodan Veri Kopyalama

SQL SELECT INTO ifadesini kullanarak birden fazla tablodan yeni bir tabloya veri kopyalayabiliriz. Bu, birden fazla tablodan (ortak bir sütuna dayalı) verileri birleştiren JOIN ifadesi kullanılarak gerçekleştirilir.

Sözdizimi

SELECT INTO ifadesini kullanarak birden fazla tablodan veri kopyalamak için sözdizimi aşağıdadır:

SELECT column1, column2, ..., columnN
INTO new_table_name
FROM table1
JOIN table2 ON table1.column = table2.column

Örnek

Öncelikle ORDERS adında başka bir tablo oluşturalım.

CREATE TABLE ORDERS (
OID INT NOT NULL,
DATE VARCHAR (20) NOT NULL,
CUSTOMER_ID INT NOT NULL,
AMOUNT DECIMAL (18, 2));

INSERT ifadesini kullanarak bu tabloya aşağıdaki gibi değerler ekleyin:

INSERT INTO ORDERS VALUES
(102, '2009-10-08 00:00:00', 3, 3000.00),
(100, '2009-10-08 00:00:00', 3, 1500.00),
(101, '2009-11-20 00:00:00', 2, 1560.00),
(103, '2008-05-20 00:00:00', 4, 2060.00);

Tablo şu şekilde oluşturulur:

OIDTARİHMÜŞTERİ_KIMLIĞIMİKTAR
1022009-10-08 00:00:0033000,00
1002009-10-08 00:00:0031500,00
1012009-11-20 00:00:0021560.00
1032008-05-20 00:00:0042060.00

Şimdi, CUSTOMERS tablosundan müşteri adını ve ORDERS tablosundan müşteri kimliğini içeren CUSTOMER_ORDERS adında yeni bir tablo oluşturuyoruz; burada CUSTOMERS tablosundan müşterilerin kimliği, ORDERS tablosundan müşterilerin kimliğiyle eşleşiyor.

SELECT CUSTOMERS.Name, ORDERS.customer_id
INTO CUSTOMER_ORDERS
FROM CUSTOMERS
LEFT JOIN ORDERS ON CUSTOMERS.ID = ORDERS.customer_id;

Çıktı

Aşağıdaki sonucu elde ediyoruz. 8 satırın değiştirildiğini görebiliyoruz.

(8 rows affected)

Doğrulama

SELECT ifadesini kullanarak içeriklerini alarak değişikliklerin bir tabloya yansıtılıp yansıtılmadığını doğrulayabiliriz. Aşağıda CUSTOMER_ORDERS tablosundaki kayıtları görüntülemek için sorgu verilmiştir.

SELECT * FROM CUSTOMER_ORDERS;

Görüntülenen tablo şu şekildedir:

İSİMmüşteri_kimliği
RamazanHÜKÜMSÜZ
Hilan2
Carissa3
Mete3
Abutantia4
MertHÜKÜMSÜZ
KemalHÜKÜMSÜZ
HüseyinHÜKÜMSÜZ

Belirli Kayıtların Kopyalanması

Yeni bir tablo oluşturmak ve var olan bir tablodan belirli satırları bu tabloya kopyalamak için SQL SELECT INTO ifadesini WHERE ifadesiyle birlikte de kullanabiliriz.

Sözdizimi

Aşağıda WHERE ifadesiyle SELECT INTO ifadesinin kullanılmasına ilişkin sözdizimi verilmiştir:

SELECT *
INTO new_table_name
FROM existing_table_name
WHERE condition;

Örnek

Aşağıdaki sorguyu kullanarak CUSTOMERS tablosundaki tüm sütunları içeren NameStartsWith_K adında yeni bir tablo oluşturuyoruz , ancak yalnızca adı "k" ile başlayan müşterilerin kayıtlarını saklıyor.

SELECT *
INTO NameStartsWith_K
FROM CUSTOMERS
WHERE NAME LIKE 'k%';

Çıktı

Aşağıdaki sonucu elde ediyoruz. 3 satırın değiştirildiğini görebiliyoruz.

(3 rows affected)

Doğrulama

Değişikliklerin tabloya yansıyıp yansımadığını SELECT ifadesiyle tablonun içeriğini alarak doğrulayabiliriz.

SELECT * from NameStartsWith_K;

Görüntülenen tablo şu şekildedir:

İDİSİMYAŞADRESMAAŞ
2Carissa ferdi25Delhi1500,00
3Kerem erbay23Kota2000,00
6Asilzade Yunus22Haydarabad4500,00


 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst