Söz dizimine ekleyin. SQL INSERT INTO SELECT ifadesi. MySQL veritabanındaki INSERT INTO sql sorgusu örnekleri

SQL'i kullanarak bilgileri bir tablodan diğerine kopyalayabilirsiniz.

INSERT INTO SELECT ifadesi, verileri bir tablodan kopyalar ve mevcut bir tabloya ekler.

SQL INSERT INTO SELECT ifadesi,

INSERT INTO SELECT ifadesi bir tablodaki verileri seçer ve onu mevcut bir tabloya ekler. Hedef tablodaki mevcut satırların hiçbiri değiştirilmez.

SQL SELECT'E INSERT, Sözdizimi

Tüm sütunları bir tablodan diğerine, mevcut tabloya kopyalayabiliriz:

TAKIN Tablo 2
* İÇİNDEN SEÇİN tablo 1;

Veya yalnızca istediğimiz sütunları mevcut başka bir tabloya kopyalayabiliriz:

TAKIN Tablo 2
(sütun_adı(lar))
SEÇME sütun_adı(ları)
İTİBAREN tablo 1;

Veritabanının demo sürümü

Bu eğitimde iyi bilinen Northwind veritabanını kullanacağız.

Aşağıda "Müşteriler" tablosundan bir seçim yer almaktadır:

Kullanıcı kimliğiMüşterinin adıİrtibat kişisiAdresşehirPosta koduBir ülke
1 Alfred's Futterkiste Maria Anders Obere Cad. 57 Berlin 12209 Almanya
2 Ana Trujillo Emparedados ve helados Ana Trujillo Avda. 2222 Anayasası Meksika df. 05021 Meksika
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Meksika df. 05023 Meksika

Ve "Tedarikçiler" tablosundan seçim:

SQL INSERT INTO SELECT, Örnekler

"Tedarikçiler"den yalnızca birkaç sütunun "Müşteriler"e kopyalanması:

Yalnızca Alman tedarikçileri "Müşteriler"e kopyalamak.

sql sorgusu INSERT INTO, bir veritabanı tablosu oluşturulduğunda anlamlıdır. Yani tablo var, bir adı var, oluşturulmuş satırları ve sütunları var. tablo operatörü tarafından oluşturulur: , tablo operatörü tarafından değiştirilir.

sql sorgusu INSERT INTO - sorgu sözdizimi

sql sorgusu INSERT INTO aşağıdaki sözdizimine sahiptir:

INSERT INTO tablo_adı (gerekiyorsa parantez içinde veri eklemek istediğiniz sütunların listesini ekleyin) VALUES eklenen veri1, eklenen veri2, eklenen veri3.

INSERT ve INTRO arasına IGNORE seçeneğini ekleyebilirsiniz. Bu gerekli değildir. Bir tabloyu düzenlerken birincil anahtarları korumak için gereklidir. Aksi takdirde, düzenleme sırasında birincil anahtarların kopyalanması meydana gelirse, IGNORE seçeneği eklenirken, düzenlenen tabloda birincil anahtarın bulunduğu ilk satır kalacak, diğer birincil anahtarlar silinecektir. Varsayılan olarak bu seçeneği atlıyoruz.

İsteğe bağlı olarak LOW_PRIORITY ve DELAYED seçenekleri mevcuttur. Veritabanına bilgi ekleme önceliklerini belirlerler. Birincisi veritabanının yayınlanmasının beklenmesini belirtir, ikincisi ise bilgilerin ara belleğe alınması anlamına gelir.

Sorgudaki: VALUES ifadesini içeren INSERT satırı, veritabanı tablosuna tek bir satır eklemenizi sağlar. VALUES cümlesi bu verinin değerlerini içerir.

VALUES ifadesi yerine alt sorgular belirtilebilir. Bir alt sorguya sahip INSERT, alt sorgunun döndürdüğü satırları tabloya ekler. Veritabanı sunucusu alt sorguyu işler ve döndürülen tüm satırları tabloya ekler. Alt sorgu seçmediği sürece sunucu satır eklemez.

  • alt sorgu_1 - sunucunun görünümle aynı şekilde işlediği bir alt sorgu
  • subquery_2, tabloya eklenen satırları döndüren bir alt sorgudur. Bu alt sorgunun listesi, INSERT sütun listesiyle aynı sayıda sütuna sahip olmalıdır.

Alt sorgular pratik olarak MySQL veritabanında kullanılmaz.

MySQL veritabanındaki INSERT INTO sql sorgusu örnekleri

INSERT INTRO komutunu kullanarak MySQL veritabanına yeni satırlar ekliyoruz.

İlk örnek.

tablo_adı tablosuna yeni satırlar ekleyin.

INSERT INTO table_name VALUES ('2′,'145′,'1′,'name');

Bu, tablonun table_name sütunlarına 2,145,1,name değerlerini eklemek istediğimiz anlamına gelir. Sütunlar belirtilmediğinden değerler tablonun tüm sütunlarına doldurulur.

Örnek iki.

Tablo_adı tablosunun gerekli (belirtilen) sütunlarına bilgi ekleyin.

INSERT INTO table_name (client_customer, client_subclient, client_mail) VALUES ('name1','subname1',' [e-posta korumalı]′), ('isim2','altad2',' [e-posta korumalı]′), ('isim3','altad3',(' [e-posta korumalı]′);

Igor Serov özellikle "" sitesi için.

Son güncelleme: 07/13/2017

Veri eklemek için aşağıdaki resmi sözdizimine sahip INSERT komutunu kullanın:

INSERT tablo_adı [(sütun_listesi)] VALUES (değer1, değer2, ... değerN)

İlk önce INSERT INTO ifadesi gelir, ardından parantez içinde verilerin eklenmesi gereken sütunların virgülle ayrılmış listesini belirtebilirsiniz ve en sonunda DEĞERLER kelimesinden sonra sütunlar için eklenecek değerler listelenir. parantez.

Örneğin, aşağıdaki veritabanının daha önce oluşturulduğunu varsayalım:

VERİTABANI OLUŞTURUN ürünleridb; GO ÜRÜNLERİ KULLANINdb; CREATE TABLE Ürünler (Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Üretici NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)

INSERT komutunu kullanarak buna bir satır ekleyelim:

Ürün DEĞERLERİNİ GİRİN ("iPhone 7", "Apple", 5, 52000)

SQL Server Management Studio'da başarılı bir şekilde yürütüldükten sonra mesaj alanında "1 satır etkilendi" mesajı görünmelidir:

VALUES anahtar sözcüğünden sonra parantez içindeki sütunlara ilişkin değerlerin bildirildiği sıraya göre iletildiğini dikkate almakta fayda var. Örneğin yukarıdaki CREATE TABLE ifadesinde ilk sütunun Id olduğunu görebilirsiniz. Ancak IDENTITY özelliği belirtildiği için bu sütunun değeri otomatik olarak oluşturulur ve atlanabilir. İkinci sütun ÜrünAdı'nı temsil eder, dolayısıyla ilk değer olan "iPhone 7" dizesi bu sütuna iletilecektir. İkinci değer - "Apple" dizisi, Üreticinin üçüncü sütununa aktarılacaktır. Yani değerler sütunlara şu şekilde aktarılır:

    ÜrünAdı: "iPhone 7"

    Üretici: "Apple"

Ayrıca değerleri girerken değerlerin ekleneceği doğrudan sütunları da belirleyebilirsiniz:

Ürünlere (ÜrünAdı, Fiyat, Üretici) DEĞERLER GİRİN ("iPhone 6S", 41000, "Apple")

Burada değer yalnızca üç sütun için belirtilmiştir. Üstelik artık değerler sütun sırasına göre aktarılıyor:

    ÜrünAdı: "iPhone 6S"

    Üretici: "Apple"

Belirtilmeyen sütunlar için (bu durumda ProductCount), DEFAULT özniteliği belirtilirse varsayılan bir değer veya bir NULL değeri eklenecektir. Ancak belirtilmemiş sütunların null olması veya DEFAULT niteliğine sahip olması gerekir.

Aynı anda birkaç satır da ekleyebiliriz:

ÜRÜN DEĞERLERİNE GİRİN ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)

Bu durumda tabloya üç satır eklenecektir.

Ayrıca, eklerken DEFAULT anahtar sözcüğünü veya NULL değerini kullanarak sütunun varsayılan bir değere sahip olması gerektiğini belirtebiliriz:

Ürünlere EKLEYİN (ÜrünAdı, Üretici, Ürün Sayısı, Fiyat) DEĞERLER ("Mi6", "Xiaomi", VARSAYILAN, 28000)

Bu durumda ProductCount sütununun varsayılan değeri kullanılacaktır (ayarlanmışsa, değilse NULL).

Tüm sütunların varsayılan değeri belirten bir DEFAULT özelliği varsa veya null yapılabilirse, tüm sütunlar için varsayılan değerler ekleyebilirsiniz:

ÜRÜNLERE VARSAYILAN DEĞERLERİ GİRİN

Ancak Ürünler tablosunu alırsak, birkaç alan DEFAULT niteliğine sahip olmadığından ve aynı zamanda NULL değerine izin vermediğinden böyle bir komut bir hatayla başarısız olur.

INSERT INTO nedir?

Veritabanı sistemlerinin temel amacı verileri tablolarda saklamaktır. Veriler genellikle veritabanı üzerinde çalışan uygulama programları tarafından sağlanır. Bu amaca yönelik olarak SQL, verileri bir tabloya depolamak için kullanılan INSERT komutuna sahiptir. INSERT komutu yeni bir satır oluşturur Verileri depolamak için tabloda.

Temel sözdizimi

Aşağıda gösterilen SQL INSERT komutunun temel sözdizimine bakalım.

INSERT INTO `tablo_adı`(sütun_1,sütun_2,...) VALUES (değer_1,değer_2,...);

  • 'tablo_adı' İÇİNE EKLEYİN MySQL sunucusuna 'tablo_adı' adlı tabloya yeni satır eklemesini söyleyen komuttur.
  • (sütun_1, sütun_2,...) yeni satırda güncellenecek sütunları belirtir
  • DEĞERLER (değer_1, değer_2,...) yeni satıra eklenecek değerleri belirtir

Yeni tabloya eklenecek veri değerleri sağlanırken farklı veri türleri ile ilgilenirken aşağıdaki hususlara dikkat edilmelidir.

  • Dize veri türleri- tüm dize değerleri tek tırnak içine alınmalıdır.
  • Sayısal veri türleri- tüm sayısal değerler tek veya çift tırnak içine alınmadan doğrudan sağlanmalıdır.
  • Tarih veri türleri- tarih değerlerini "YYYY-AA-GG" biçiminde tek tırnak içine alın.

Örnek:

Veritabanına eklenmesi gereken yeni kütüphane üyelerinin aşağıdaki listesine sahip olduğumuzu varsayalım.

Tam isimler Doğum tarihi cinsiyet Fiziksel adres posta adresi İletişim numarası E-posta Adresi
Leonard Hofstadter Erkek Ağaç Tepesi 0845738767
Sheldon Cooper Erkek Ağaç Tepesi 0976736763
Rajesh Koothrappali Erkek Fairview 0938867763
Leslie Winkle 14/02/1984 Erkek 0987636553
Howard Wolowitz 24/08/1981 Erkek Güney Parkı P.O. Kutu 4563 0987786553

Verileri tek tek EKLEYELİM. Leonard Hofstadter ile başlayacağız. İletişim numarasını sayısal bir veri türü olarak ele alacağız ve numarayı tek tırnak içine almayacağız.

INSERT INTO "üyeler" ("tam_adlar", "cinsiyet", "fiziksel_adres", "iletişim_numarası") DEĞERLER ("Leonard Hofstadter", "Erkek", "Woodcrest",0845738767);

Yukarıdaki betiğin çalıştırılması Leonard'ın iletişim numarasındaki 0'ı düşürür. Bunun nedeni, değerin sayısal bir değer olarak ele alınması ve başlangıçtaki sıfırın (0) anlamlı olmaması nedeniyle atlanmasıdır.

Bu tür sorunları önlemek için değerin aşağıda gösterildiği gibi tek tırnak içine alınması gerekir -

INSERT INTO "üyeler" ("tam_adlar", "cinsiyet", "fiziksel_adres", "iletişim_numarası") DEĞERLER ("Sheldon Cooper", "Erkek", "Woodcrest", "0976736763");

Yukarıdaki durumda sıfır(0) düşürülmeyecektir.

Doğru değerler doğru sütunlarla eşlendiği sürece sütunların sırasının değiştirilmesinin INSERT sorgusu üzerinde hiçbir etkisi yoktur.

Aşağıda gösterilen sorgu yukarıdaki noktayı göstermektedir.

INSERT INTO `üyeler` (`kişi_numarası`,`cinsiyet`,`tam_adlar`,`fiziksel_adres`)VALUES ("0938867763", "Erkek", "Rajesh Koothrappali", "Woodcrest");

Yukarıdaki sorgularda doğum tarihi sütunu atlandı, Varsayılan olarak MySQL, INSERT sorgusunda atlanan sütunlara NULL değerleri ekleyecektir.

Şimdi Leslie'nin doğum tarihini içeren kaydını ekleyelim. Tarih değeri "YYYY-AA-GG" biçimi kullanılarak tek tırnak içine alınmalıdır.

'Üyelere' EKLEYİN ("tam_adlar", "doğum tarihi", "cinsiyet", "fiziksel_adres", "kişi_numarası") DEĞERLER ("Leslie Winkle", "1984-02-14", "Erkek", "Woodcrest") 0987636553");

Yukarıdaki sorguların tümü sütunları belirtti ve bunları insert ifadesindeki değerlerle eşleştirdi. Tablodaki TÜM sütunlar için değer sağlıyorsak, bu durumda sütunları ekleme sorgusundan çıkarabiliriz.

INSERT INTO `üyelerin` DEĞERLERİ (9,"Howard Wolowitz", "Erkek", "1981-08-24", "SouthPark", "P.O. Box 4563", "0987786553", "lwolowitzemail.me");

Şimdi üyeler tablosundaki tüm satırları görüntülemek için SELECT ifadesini kullanalım.SELECT * FROM `members`;

Üye numarasıtam_adlarcinsiyetdoğum tarihifiziksel adresposta adresiiletişim_numarasıe-posta
1 Janet JonesDişi21-07-1980 Birinci Sokak Parsel No:4Özel Çanta0759 253 542 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkinleştirilmesi gerekir.
2 Janet Smith JonesDişi23-06-1980 Melrose 123HÜKÜMSÜZHÜKÜMSÜZBu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkinleştirilmesi gerekir.
3 Robert PhilErkek12-07-1989 3. Sokak 34HÜKÜMSÜZ12345 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkinleştirilmesi gerekir.
4 Gloria WilliamsDişi14-02-1984 2. Sokak 23HÜKÜMSÜZHÜKÜMSÜZHÜKÜMSÜZ
5 Leonard HofstadterErkekHÜKÜMSÜZAğaç TepesiHÜKÜMSÜZ845738767 HÜKÜMSÜZ
6 Sheldon CooperErkekHÜKÜMSÜZAğaç TepesiHÜKÜMSÜZ976736763 HÜKÜMSÜZ
7 Rajesh KoothrappaliErkekHÜKÜMSÜZAğaç TepesiHÜKÜMSÜZ938867763 HÜKÜMSÜZ
8 Leslie WinkleErkek14-02-1984 Ağaç TepesiHÜKÜMSÜZ987636553 HÜKÜMSÜZ
9 Howard WolowitzErkek24-08-1981 Güney ParkıP.O. Kutu 4563987786553 Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'in etkinleştirilmesi gerekir.

Leonard Hofstadter'in iletişim numarasının iletişim numarasından sıfırı (0) düşürdüğüne dikkat edin. Diğer irtibat numaraları başlangıçta sıfırı (0) düşürmediler.

Başka bir Tablodan Tabloya Ekleme

INSERT komutu aynı zamanda başka bir tablodan bir tabloya veri eklemek için de kullanılabilir. Temel sözdizimi aşağıda gösterildiği gibidir.

tablo_1'E EKLEYİN tablo_2'DEN SEÇİN *;

Şimdi pratik bir örneğe bakalım, gösterim amacıyla film kategorileri için kukla bir tablo oluşturacağız. Yeni kategoriler tablosuna kategoriler_arşiv adını vereceğiz. Aşağıda gösterilen komut dosyası tabloyu oluşturur.

CREATE TABLE `categories_archive` (`category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))

Tabloyu oluşturmak için yukarıdaki betiği çalıştırın.

Şimdi kategoriler tablosundaki tüm satırları kategoriler arşiv tablosuna ekleyelim.Aşağıda gösterilen komut dosyası bunu başarmamıza yardımcı oluyor.

'Kategori_arşiv'E EKLEYİN 'kategoriler'den SEÇ *;

Yukarıdaki betiğin çalıştırılması, kategoriler tablosundaki tüm satırları kategoriler arşiv tablosuna ekler. Komut dosyasının çalışması için tablo yapılarının aynı olması gerektiğini unutmayın. Daha sağlam bir komut dosyası, ekleme tablosundaki sütun adlarını verileri içeren tablodakilerle eşleştiren komut dosyasıdır.

Aşağıda gösterilen sorgu, kullanımını göstermektedir.

`Kategori_arşiv`E EKLEYİN(kategori_id,kategori_adı,açıklamalar) `Kategoriler'DEN kategori_id,kategori_adı,açıklamaları SEÇİN;

SELECT sorgusunu yürütme

'categories_archive'dan * SEÇİN

aşağıda gösterilen sonuçları verir.

kimlik kategorisiKategori adınotlar
1 KomediMizah içeren filmler
2 RomantikAşk hikayeleri
3 EpikHikaye antik filmler
4 KorkuHÜKÜMSÜZ
5 BilimkurguHÜKÜMSÜZ
6 GerilimHÜKÜMSÜZ
7 AksiyonHÜKÜMSÜZ
8 Romantik KomediHÜKÜMSÜZ
9 Çizgi filmlerHÜKÜMSÜZ
10 Çizgi filmlerHÜKÜMSÜZ

Özet

  • INSERT komutu tabloya yeni veri eklemek için kullanılır.
  • Tarih ve dize değerleri tek tırnak içine alınmalıdır.
  • Sayısal değerlerin tırnak içine alınmasına gerek yoktur.
  • INSERT komutu aynı zamanda bir tablodan diğerine veri eklemek için de kullanılabilir.

Daha önce tartışılan SELECT deyimine ek olarak, Veri İşleme Dili (DML) üç deyim daha içerir: INSERT, UPDATE ve DELETE. SELECT deyimi gibi, bu üç deyim de tablolarda veya görünümlerde çalışır. Bu makalede INSERT deyimi anlatılmaktadır ve diğer iki deyim bir sonraki makalede tartışılmaktadır.

INSERT beyanı tabloya satırlar (veya satırların parçalarını) ekler. Bu talimatın iki farklı şekli vardır:

INSERT tab_name [(col_list)] VARSAYILAN DEĞERLER | DEĞERLER (( VARSAYILAN | NULL | ifade ) [ ,...n]) INSERT INTO sekme_adı | görünüm_adı [(sütun_listesi)] (select_ifadesi | yürütme_ifadesi) Sözdizimi kuralları

Talimatın ilk şekli tabloya bir satır (veya bir kısmını) eklemenizi sağlar. Ve INSERT ifadesinin ikinci biçimi, bir SELECT ifadesinin sonuç kümesini veya bir EXECUTE ifadesi tarafından yürütülen saklı bir prosedürü bir tabloya eklemenizi sağlar. Saklı yordamın tabloya eklenecek verileri döndürmesi gerekir. SELECT ifadesi, INSERT deyimiyle birlikte kullanıldığında, karşılık gelen sütunların veri türleri uyumlu olduğu sürece, verilerin eklendiği farklı veya aynı tablodaki değerleri seçebilir.

Her iki form için de eklenen her değerin veri türü, karşılık gelen tablo sütununun veri türüyle uyumlu olmalıdır. Tüm dize ve geçici veriler tırnak içine alınmalıdır; Sayısal değerlerin tırnak içine alınmasına gerek yoktur.

Tek satır ekleme

INSERT ifadesinin her iki biçimi için de sütun listesinin açıkça belirtilmesi isteğe bağlıdır. Sütunları listelememek, tablodaki tüm sütunları belirtmekle aynı şeydir.

VARSAYILAN DEĞERLER parametresi tüm sütunlar için varsayılan değerleri ekler. TIMESTAMP veri türüne veya IDENTITY özelliğine sahip sütunlar, sistem tarafından otomatik olarak oluşturulan değerlerle varsayılan olarak eklenir. Diğer veri türlerinin sütunları için, eğer varsa karşılık gelen boş olmayan varsayılan değer eklenir, aksi halde NULL eklenir. Bir sütun boş değerlere izin vermiyorsa ve tanımlanmış bir varsayılan değere sahip değilse, INSERT deyimi başarısız olur ve bir mesaj görüntülenir.

Aşağıdaki örnek, SampleDb veritabanındaki Çalışan tablosuna satırlar ekleyerek veritabanına küçük miktarda veri eklemek için INSERT ifadesinin kullanımını gösterir:

SampleDb'yi KULLANIN; Çalışan DEĞERLERİNE EKLEYİN (34990, "Andrey", "Batonov", "d1"); Çalışan DEĞERLERİNE EKLEYİN (38640, "Alexey", "Vasin", "d3");

İki tane Farklı yollar değerlerin içine eklenmesi Yeni hat. Aşağıdaki örnekteki INSERT ifadesi açıkça NULL anahtar sözcüğünü kullanır ve karşılık gelen sütuna bir NULL değeri ekler:

SampleDb'yi KULLANIN; Çalışan DEĞERLERİNE EKLEYİN (34991, "Andrey", "Batonov", NULL);

Bir tablonun bazı (ancak hepsine değil) sütunlarına değer eklemek için genellikle bu sütunları açıkça belirtmeniz gerekir. Belirtilmeyen sütunlar ya NULL değerlere izin vermeli ya da tanımlanmış bir varsayılan değere sahip olmalıdır.

SampleDb'yi KULLANIN; INSERT INTO Employee(Id, FirstName, LastName) VALUES (34992, "Andrey", "Batonov");

Önceki iki örnek eşdeğerdir. Employee tablosunda NULL değerlerine izin veren tek sütun DepartmanNumarası sütunudur ve diğer tüm sütunlar CREATE TABLE deyimindeki NOT NULL yan tümcesi tarafından devre dışı bırakılmıştır.

Değerlerin sırası DEĞERLER teklifi INSERT deyimleri, CREATE TABLE deyiminde belirtilen sıradan farklı olabilir. Bu durumda bunların sırası, ilgili sütunların sütun listesinde listelendiği sırayla eşleşmelidir. Aşağıda orijinalden farklı bir sırayla veri ekleme örneği verilmiştir:

SampleDb'yi KULLANIN; INSERT INTO Employee(DepartmanNumber, LastName, Id, FirstName) VALUES ("d1", "Batonov", 34993, "Andrey");

Birden çok satır ekleme

INSERT ifadesinin ikinci biçimi, bir alt sorgu tarafından seçilen bir veya daha fazla satırı tabloya ekler. Aşağıdaki örnek, INSERT ifadesinin ikinci biçimini kullanarak bir tabloya nasıl satır ekleneceğini gösterir. Bu durumda, Moskova'da bulunan departmanların numaralarını ve adlarını seçmek için bir sorgu yürütülür ve ortaya çıkan sonuç seti daha önce oluşturulan yeni bir tabloya yüklenir.

Yukarıdaki örnekte oluşturulan yeni MoskovaDepartman tablosu, eksik Konum sütunu dışında mevcut Departman tablosuyla aynı sütunlara sahiptir. INSERT deyimindeki alt sorgu, Departman tablosundaki Konum sütunu değeri "Moskova" olan tüm satırları seçer ve bunlar daha sonra sorgunun başında oluşturulan yeni tabloya eklenir.

Aşağıdaki örnek, INSERT ifadesinin ikinci biçimini kullanarak bir tabloya satır eklemenin başka bir yolunu gösterir. Bu durumda proje p2'de çalışan “Yönetici” pozisyonundaki tüm çalışanlar için personel sayılarını, proje sayılarını ve proje başlangıç ​​tarihlerini seçmek ve ardından ortaya çıkan sonuç setini proje başlangıcında oluşturulan yeni bir tabloya yüklemek için bir sorgu yürütülür. sorgu:

SampleDb'yi KULLANIN; CREATE TABLE ManagerTeam (EmpId INT NOT NULL, ProjectNumber CHAR (4) NOT NULL, EnterDate DATE); INSERT INTO ManagerTeam (EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Job = "Yönetici";

INSERT deyimini kullanarak satır eklemeden önce, Moskova Departmanı ve ManagerTeam tabloları (yukarıdaki örneklerde) boştu. Tablo zaten mevcutsa ve veri içeren satırlar içeriyorsa, tabloya yeni satırlar eklenir.


Tepe