- 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
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 İ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İM | YAŞ | ADRES | MAAŞ |
|---|---|---|---|---|
| 1 | Remzi | 32 | Ahmedabad | 2000,00 |
| 2 | Hale | 25 | Delhi | 1500,00 |
| 3 | Hasan | 23 | Kota | 2000,00 |
| 4 | Burhan | 25 | Bombay | 6500,00 |
| 5 | Sertan | 27 | Bhopal | 8500,00 |
| 6 | Asım | 22 | Haydarabad | 4500,00 |
| 7 | Yaşar | 24 | Hindistan | 10000,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İM | YAŞ | ADRES | MAAŞ |
|---|---|---|---|---|
| 1 | Lanet adam | 32 | Ahmedabad | 2000,00 |
| 2 | Emrah | 25 | Delhi | 1500,00 |
| 3 | DnAngel | 23 | Kota | 2000,00 |
| 4 | Bilal | 25 | Bombay | 6500,00 |
| 5 | Ferdi | 27 | Bhopal | 8500,00 |
| 6 | Cevo | 22 | Haydarabad | 4500,00 |
| 7 | Kerim | 24 | Hindistan | 10000,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İM | YAŞ | ADRES |
|---|---|---|
| Ramazan | 32 | Ahmedabad |
| Hakan | 25 | Delhi |
| Kemal | 23 | Kota |
| Yusuf | 25 | Bombay |
| Yunus asilzade | 27 | Bhopal |
| carissa | 22 | Haydarabad |
| Alperen | 24 | Hindistan |
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:
| OID | TARİH | MÜŞTERİ_KIMLIĞI | MİKTAR |
|---|---|---|---|
| 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 |
Ş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İM | müşteri_kimliği |
|---|---|
| Ramazan | HÜKÜMSÜZ |
| Hilan | 2 |
| Carissa | 3 |
| Mete | 3 |
| Abutantia | 4 |
| Mert | HÜKÜMSÜZ |
| Kemal | HÜKÜMSÜZ |
| Hüseyin | HÜ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İM | YAŞ | ADRES | MAAŞ |
|---|---|---|---|---|
| 2 | Carissa ferdi | 25 | Delhi | 1500,00 |
| 3 | Kerem erbay | 23 | Kota | 2000,00 |
| 6 | Asilzade Yunus | 22 | Haydarabad | 4500,00 |
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 161
- Cevaplar
- 0
- Görüntüleme
- 247
- Cevaplar
- 1
- Görüntüleme
- 129
- Cevaplar
- 3
- Görüntüleme
- 264
- Cevaplar
- 2
- Görüntüleme
- 218


