ecosmak.ru

Select oracle sözdizimine ekleyin. SQL sorgusu INSERT INTO - veritabanını bilgilerle doldurun

Takım tabloya satır ekler veya ana tablo görünümü.

Sql INSERT Komut Söz Dizimi

Komut Sözdizimini Ekle


INSERT komutunun temel anahtar sözcükleri ve parametreleri
  • şema- genellikle bazı kullanıcıların adlarıyla eşleşen izin tanımlayıcı
  • tablo görünümü- satırların ekleneceği tablonun adı; bir görünüm belirtilirse satırlar görünümün ana tablosuna eklenir
  • alt sorgu_1- sunucunun görünümle aynı şekilde işlediği bir alt sorgu
  • kolon- eklenen her satır için ifadedeki değerin girildiği bir tablo veya görünüm sütunu DEĞERLER veya alt sorgu; tablonun sütunlarından biri bu listeden çıkarılırsa, eklenen satırın sütun değeri, tablo oluşturulduğunda tanımlanan varsayılan sütun değeri olur. Bir sütun listesi tamamen atlanırsa, madde DEĞERLER veya sorgunun tablodaki tüm sütunlar için değerleri belirlemesi gerekir
  • DEĞERLER- tabloya veya görünüme eklenecek bir değerler dizisini tanımlar; Anlam cümlede tanımlanmalıdır DEĞERLER sütun listesindeki her sütun için
  • alt sorgu_2- tabloya eklenen satırları döndüren bir alt sorgu; bu alt sorgunun seçim listesi, ifade sütun listesiyle aynı sayıda sütuna sahip olmalıdır

İfade ifadeyle DEĞERLER tabloya tek bir satır ekler. Bu satır ifadeyle tanımlanan değerleri içerir DEĞERLER.
İle beyan alt sorgu bir cümle yerine DEĞERLER alt sorgunun döndürdüğü tüm satırları tabloya ekler. Sunucu işlemleri alt sorgu ve döndürülen her satırı tabloya ekler. Alt sorgu herhangi bir satırı seçmezse sunucu tabloya herhangi bir satır eklemez.
Alt sorgu hedef iddia tablosu da dahil olmak üzere herhangi bir tabloya veya görünüme erişebilir . Sunucu, tablodaki sütunların iç konumuna ve ifade değerlerinin sırasına göre yeni satırlardaki alanlara değerler atar. DEĞERLER veya sorgu seçim listesinde. Sütun listesinde herhangi bir sütun eksikse, sunucu onlara tablo oluşturulduğunda tanımlanan varsayılan değerleri atar. Bu sütunlardan herhangi birinde NOT NULL kısıtlaması varsa sunucu, kısıtlamanın ihlal edildiğini belirten bir hata döndürür ve INSERT deyimini iptal eder.
Bir INSERT ifadesi yayınlandığında, tabloda tanımlanan herhangi bir INSERT tetikleyicisi etkinleştirilir.

Örnek 1'E EKLEYİN

TAKIN borç DEĞERLER(50, "ÜRÜNLER", "SAN FRANCISCO");

TAKIN Müşteriler (şehir, ad, kişi sayısı) DEĞERLER('Londra', 'Hoffman', 2001);

Örnek 2'YE EKLEYİN
Aşağıdaki komut, komisyonları gelirlerinin %25'ini aşan şirket çalışanlarının verilerini prim tablosuna kopyalar:

TAKIN bonus SEÇİN adı, işi, salı, iletişim FROM emp WHERE iletişim > 0.25 * sal;

Örnek 3'E EKLEYİN
Eklemeniz gerekiyorsa HÜKÜMSÜZ-value, bunu normal bir değer olarak aşağıdaki gibi belirtmelisiniz:

TAKIN Satış Elemanları DEĞERLERİ (1001,'Peel',NULL,12);

Örnek 4'E EKLEYİN
Komut, bir tablodan değerleri almak ve bunları bir sorgu kullanarak başka bir tabloya yerleştirmek için kullanılabilir. Bunu yapmak için cümleyi değiştirmek yeterlidir. DEĞERLER ilgili talebe göre:

TAKIN Londonstaff SELECT * FROM Satış Görevlileri WHERE şehir = 'Londra';

MySQL EKLEYİN

MySQL veritabanına yeni satırlar eklemek için şunu kullanın: EKLEYİN komutu, komut örnekleri aşağıda verilmiştir:
Örnek 1'E EKLEYİN.
Tablo_adı tablosuna yeni bir satır ekleniyor.

TAKIN

Örnek 2'YE EKLEYİN.
İhtiyacımız olan sütunlara veri eklendiğini gösteren tablo_adı tablosuna yeni bir satır eklemek.

TAKIN tablo_adı VALUES('1','165','0','ad');

Veritabanında MySQL Tek komutla birden fazla yeni satır eklemek mümkündür.
Örnek 3'E EKLEYİN.
Tablo_adı tablosuna birden fazla satır ekleme.

TAKIN table_name (tbl_id, chislo, chislotwo, name) VALUES ('1′,'159′,'34','name1′), ('2′,'14','61','name2′), ('3 ′,'356′,'8′,'isim3');

Bu ifade bir tabloya bir veya daha fazla kayıt ekler (bir ekleme sorgusu gerçekleştirir).

Sözdizimi

Birden fazla kayıt ekleme isteği:

TAKIN final_object [(alan1[, alan2[, ...]])]
SEÇME [ kaynak.]alan1[, alan2[, ...]
İTİBAREN tablo_ifadesi

Bir kayıt ekleme isteği:

TAKIN final_object [(alan1[, alan2[, ...]])]
DEĞERLER ( alan1[, alan2[, ...])

INSERT INTO deyimi aşağıdaki öğelerden oluşur:

Parça

Tanım

final_object

Kayıtların eklendiği tablo veya sorgunun adı.

alan1, alan2

Tartışmadan sonra final_object- verilerin eklendiği alanların adları; tartışmadan sonra kaynak- verilerin çıkarıldığı alanların adları.

harici_veritabanı

Harici veritabanına giden yol. Yolun açıklaması için IN yan tümcesi hakkındaki makaleye bakın.

kaynak

Kayıtların kopyalandığı tablo veya sorgunun adı.

tablo_ifadesi

Kayıtlarını almak istediğiniz bir veya daha fazla tablo adı. Bu bağımsız değişken tek bir tablonun adı, INNER JOIN, LEFT JOIN veya RIGHT JOIN kullanılarak oluşturulan bir sonuç ifadesi veya depolanan bir sorgu olabilir.

değer1, değer2

Yeni kaydın belirli alanlarına eklenecek değerler. Her değer, listedeki konumuna karşılık gelen alana eklenir: değer1 ilave alan1 Yeni giriş, değer2-V alan2 vb. Değerleri virgülle ayırmalı ve metin alanlarını tırnak işaretleri ("") içine almalısınız.

Notlar

INSERT INTO ifadesi yukarıdaki sözdizimini kullanarak bir tabloya tek bir kayıt ekleyebilir. Bu durumda kayıttaki her alan için adları ve değerleri belirtirsiniz. Kayıttaki değerlerin atandığı tüm alanları ve karşılık gelen değerleri belirtmeniz gerekir. Bir alan değeri belirtmezseniz, buna varsayılan değer veya NULL atanacaktır. Kayıtlar tablonun sonuna eklenir.

INSERT INTO ifadesi, yukarıda gösterildiği gibi SELECT... FROM yan tümcesini kullanarak başka bir tablodan veya sorgudan bir dizi kayıt eklemek için de kullanılabilir (bkz. Birden Çok Kayıt Eklemek için Sorgu Sözdizimi). Bu durumda SELECT yan tümcesi belirtilen alana eklenecek alanları belirtir. final_object.

Kaynak veya final_object bir tablo veya sorgu olabilir. Bir sorgu verildiğinde, Microsoft Access veritabanı motoru, döndürdüğü tüm tablolara kayıtları ekler.

INSERT INTO ifadesinin kullanılması isteğe bağlıdır. Belirtilmişse SELECT deyiminden önce gelmelidir.

Hedef tablo bir birincil anahtar içeriyorsa, bir veya daha fazla birincil anahtar alanına eklediğiniz değerlerin benzersiz ve farklı olduğundan emin olun. HÜKÜMSÜZ; aksi takdirde girişler eklenmeyecektir.

Sayaç alanı olan bir tabloya kayıtlar eklenmişse ve bunları yeniden numaralandırmak istiyorsanız Sayaç alanını sorguya dahil etmeyin. Alandaki orijinal değerleri korumak istiyorsanız Sayaç alanını sorguya ekleyin.

IN deyimini kullanarak başka bir veritabanındaki bir tabloya kayıt ekleyebilirsiniz.

Bir tablo oluşturmak için, tabloyu oluşturma sorgusu yapmak üzere SELECT... INTO deyimini kullanın.

Ekleme sorgusunu çalıştırmadan önce, hangi kayıtların ekleneceğini belirlemek amacıyla sonuçları kullanmak için aynı seçim ölçütlerine sahip bir seçme sorgusu kullanın.

Ekleme sorgusu, kayıtları bir veya daha fazla tablodan başka bir tabloya kopyalar. Bu durumda eklenen kayıtları içeren tablolar değişmeden kalır.

Başka bir tablodan kayıt eklemek yerine, VALUES yan tümcesini kullanarak her alanın değerini ayrı yeni bir kayıtta ayarlayabilirsiniz. Bir alan listesi atlanırsa VALUES yan tümcesinin her tablo alanı için karşılık gelen değerleri içermesi gerekir; aksi takdirde INSERT işlemi başarısız olur. Oluşturmak istediğiniz her ek kayıt için VALUES yan tümcesiyle birlikte INSERT INTO deyimini kullanın.

Herkese selam! Bu makale bunu nasıl yapabileceğinizi tartışacak tabloya veri ekle Microsoft SQL Server'da, T-SQL diline en azından biraz aşina iseniz, muhtemelen şimdi INSERT deyimi ve bunun bir tabloya veri eklemek için nasıl kullanılabileceği hakkında konuşacağımızı fark etmişsinizdir.

Her zamanki gibi küçük bir teoriyle başlayalım.

T-SQL'de INSERT ifadesi

SOKMAK bir tabloya veri eklemek için tasarlanmış bir T-SQL talimatıdır; yeni kayıtlar oluşturuyoruz. Bu talimat hem bir tabloya tek satır eklemek hem de verileri toplu olarak eklemek için kullanılabilir. INSERT deyimi veri eklemek için izin gerektirir ( SOKMAK) hedef tabloya.

Eklenmesi gereken veri parçasında INSERT deyimini kullanmanın birkaç yolu vardır:

  • Eklenecek belirli değerlerin listelenmesi;
  • Bir veri kümesini SELECT sorgusu olarak belirtme;
  • Tablo verilerini döndüren bir prosedür çağrısı biçiminde bir veri kümesinin belirtilmesi.

Basitleştirilmiş sözdizimi

EKLEYİN [tablo] ( sütun listesi...) DEĞERLER ( Değerler listesi...) Veya SEÇİN örnek istek Veya UYGULA prosedür

  • INSERT INTO bir tabloya veri ekleme komutudur;
  • Tablo, yeni kayıtlar eklemek istediğiniz hedef tablonun adıdır;
  • Sütun listesi, verilerin ekleneceği tablonun virgüllerle ayrılmış sütun adlarının bir listesidir;
  • VALUES, tabloya ekleyeceğimiz değerleri belirttiğimiz bir tablo değeri yapıcısıdır;
  • Değer listesi, virgülle ayrılmış olarak eklenecek değerlerdir. Sütun listesinde sütunların görünme sırasına göre listelenirler;
  • SELECT, tabloya eklenecek verileri seçmek için kullanılan bir sorgudur. Sorgunun döndürdüğü sonuç kümesi sütun listesiyle eşleşmelidir;
  • EXECUTE, bir tabloya eklenmek üzere veri elde etmeye yönelik bir prosedür çağrısıdır. Saklı yordamın döndürdüğü sonuç kümesinin sütun listesiyle eşleşmesi gerekir.

INSERT INTO ifadesinin basitleştirilmiş sözdizimi kabaca böyle görünür; çoğu durumda tablolara yeni kayıtları bu şekilde eklersiniz.

Veri ekleyeceğiniz sütunların listesinin yazılmasına gerek yoktur, bu durumda sıraları tablodaki sütunların gerçek sırasına göre belirlenecektir. Eklenecek değerleri belirlerken veya seçilecek sorguyu yazarken bu sırayı hatırlamanız gerekir. Kişisel olarak, yine de veri eklemeyi planladığınız sütunların bir listesini belirtmenizi öneririm.

Ayrıca sütun listesinin ve değer listesinin sırasıyla zorunlu sütunlar içermesi gerektiğini de unutmamalısınız; bunlar NULL değerini içeremeyen sütunlardır. Bunları belirtmezseniz ve sütunun varsayılan değeri yoksa bir hata oluşur.

Ayrıca ekleyeceğiniz değerlerin veri tipinin, bu değerin ekleneceği sütunun veri tipiyle eşleşmesi veya en azından örtülü dönüşümü desteklemesi gerektiğini de belirtmek isterim. Ancak veri türünü kontrol etmenizi öneririm ( biçim) hem değerler listesinde hem de SELECT sorgusunda değerler.

Bu kadar teori yeter, hadi pratiğe geçelim.

İlk veri

Tabloya veri eklemek için tablonun kendisine ihtiyacımız var, o yüzden onu oluşturalım ve ona kayıt eklemeyi deneyelim.

Not! Tüm örnekler Microsoft SQL Server 2016 Express'te çalıştırılacaktır.

TABLO OLUŞTUR TestTable( KİMLİK(1,1) NULL DEĞİL, (100) NULL DEĞİL, NULL DEĞİL)

Test tablomuz fiyatları içeren ürünlerin bir listesini içerecektir.

Ayrıca örneklerde tabloya veri eklemek için tablo değeri döndüren bir prosedür kullanacağız, hadi onu da oluşturalım.

PROSEDÜR OLUŞTURUN TestProsedürünü BAŞLARKEN SEÇİN ÜrünAdı, Fiyat TestTable SONUDAN

Örneğin, yeni oluşturulan TestTable tablosundan veri döndürecektir.

Not!

Anladığınız gibi, bu materyali okumak T-SQL dili hakkında biraz bilgi sahibi olmayı gerektirir; bu nedenle, bir şey sizin için net değilse, aşağıdaki materyallere aşina olmanızı öneririm:

Örnek 1 – Tablo değeri yapıcısını kullanarak tabloya yeni bir kayıt eklemek

Öncelikle bir kayıt eklemeyi deneyelim ve hemen sonuca bakalım, yani. Örnek için istek yazalım.

INSERT INTO TestTable(ÜrünAdı, Fiyat) DEĞERLER ("Bilgisayar", 100) GO SELECT * FROM TestTable

Tablo adından sonra veri ekleyeceğimiz sütunların isimlerini virgülle ayırarak sıraladığımızı, ardından anahtar kelimeyi belirttiğimizi görüyorsunuz. DEĞERLER ve parantez içinde de aynı sırayla virgülle ayırarak eklemek istediğimiz değerleri yazdık.

INSERT deyiminden sonra SELECT deyimi yazıp bunları GO deyimiyle ayırdım.

Şimdi birkaç satır eklememiz gerektiğini düşünelim. Bunun için aşağıdaki isteği yazacağız.

INSERT INTO TestTable(ÜrünAdı, Fiyat) DEĞERLER ("Bilgisayar", 100), ("Klavye", 20), ("Monitör", 50) GO SELECT * FROM TestTable


Örnek 2 - SELECT sorgusu kullanarak tabloya yeni satırlar ekleme

Çoğu zaman bir tabloya, örneğin bir seçme sorgusuna dayalı olarak çok fazla veri eklemeye ihtiyaç duyulur; SEÇME. Bunu yapmak için VALUES yerine isteği belirtmemiz yeterli.

TestTable'A EKLEYİN(ÜrünAdı, Fiyat) TestTable'DAN ÜrünAdı'nı, Fiyatı SEÇİN NEREDE Kimliği >


Bu örnekte, TestTable tablosundaki verileri döndüren, ancak tamamını değil, yalnızca kimliği 2'den büyük olan verileri döndüren bir SELECT sorgusu yazdık. Ve sonuç aynı TestTable tablosuna eklendi.

Sütun listesi belirtmeden bir tabloya nasıl kayıt ekleyebileceğinize örnek olarak yukarıdaki sorguyla tamamen aynı işi yapacak, yalnızca eklenecek sütunları listelemeyecek başka bir veri ekleme sorgusu yazalım.

TestTable'A EKLEYİN ÜrünAdı'nı, Fiyatını TestTable'DAN SEÇİN NEREDE Kimliği > 2 GO SELECT * TestTable'DAN


Bu durumda, TestTable tablosunda ilk sütunun ÜrünAdı ve ikincisinin Fiyat olduğundan eminiz, dolayısıyla bunu bu şekilde yazmaya gücümüz yetiyor. Ancak yine de pratikte bir sütun listesi belirtmek daha iyidir.

Dikkat ettiyseniz, tüm örneklerde Id sütununu belirtmedim ama elimizde var, herhangi bir hata oluşmadı, bu sütun IDENTITY özelliğine sahip olduğundan, otomatik olarak tanımlayıcılar oluşturur, dolayısıyla böyle bir sütuna veri eklemek basitçe yapılamaz.

Örnek 3 - Saklı yordam kullanarak tabloya yeni kayıtlar ekleme

Şimdi saklı yordamın bize döndüreceği verileri tabloya ekleyelim. Buradaki anlam aynı, DEĞERLER yerine istek yerine prosedür çağrısını belirtiyoruz. Ancak anladığınız gibi, prosedür tarafından döndürülen sütunların sırası ve sayısı, eklenecek sütunların listesiyle tam olarak eşleşmelidir ( sütun listesi belirtilmemiş olsa bile).

TestTable'A EKLEYİN (ÜrünAdı, Fiyat) EXEC TestProsedürüne GİT * TestTable'DAN SEÇİN


Umarım bu materyal talimatları anlamanıza yardımcı olmuştur. TAKIN ve şimdilik sahip olduğum tek şey bu!

Önceki bölümlerde önceden oluşturulmuş tablolardan veri alma işine baktık. Şimdi tabloları nasıl oluşturup silebileceğimizi, yeni kayıtları nasıl ekleyebileceğimizi ve eskilerini nasıl silebileceğimizi anlamanın zamanı geldi. Bu amaçlarla SQL Aşağıdaki gibi operatörler vardır: YARATMAK- bir tablo oluşturur, DEĞİŞTİR- tablo yapısını değiştirir, DÜŞÜRMEK- bir tabloyu veya alanı siler, SOKMAK- tabloya veri ekler. Operatörden bu operatör grubunu tanımaya başlayalım SOKMAK.

1. Satırların tamamını ekleme

Adından da anlaşılacağı gibi operatör SOKMAK Bir veritabanı tablosuna satır eklemek (eklemek) için kullanılır. Ekleme birkaç şekilde yapılabilir:

  • - bir tam satır ekleyin
  • - satırın bir kısmını ekleyin
  • - sorgu sonuçlarını ekleyin.

Dolayısıyla, bir tabloya yeni bir satır eklemek için tablo adını belirtmemiz, sütun adlarını listelememiz ve yapıyı kullanarak her sütunun değerini belirtmemiz gerekir. TAKIN tablo_adı (alan1, alan2 ...) DEĞERLER (değer1, değer2...). Bir örneğe bakalım.

Satıcılara EKLEYİN (Kimlik, Adres, Şehir, Satıcı_adı, Ülke) DEĞERLER("6", "1. Cadde", "Los Angeles", "Harry Monroe", "ABD")

Sütun adlarının sırasını da değiştirebilirsiniz ancak aynı zamanda parametredeki değerlerin sırasını da değiştirmeniz gerekir. DEĞERLER.

2. Satırların bir kısmını ekleme

Önceki örnekte operatörü kullanırken SOKMAK tablo sütun adlarını açıkça işaretledik. Bu sözdizimini kullanarak bazı sütunları atlayabiliriz. Bu, bazı sütunlara değer girdiğiniz ancak diğer sütunlara değer sağlamadığınız anlamına gelir. Örneğin:

Satıcılara EKLEYİN (ID, Şehir, Satıcı_adı) DEĞERLER("6", "Los Angeles", "Harry Monroe")

Bu örnekte iki sütun için değer belirtmedik. Adres Ve Ülke. Bazı sütunları ifadeden hariç tutabilirsiniz TAKIN, eğer bu tablo tanımına izin veriyorsa. Bu durumda koşullardan birinin karşılanması gerekir: bu sütun geçerli olarak tanımlandı HÜKÜMSÜZ(herhangi bir değerin olmaması) veya tablo tanımında belirtilen varsayılan değer. Bu, herhangi bir değer belirtilmezse varsayılan değerin kullanılacağı anlamına gelir. Tablonun satırlarında değerlerin görünmesine izin vermeyen bir sütun eksikse HÜKÜMSÜZ ve tanımlanmış bir varsayılan değer yoksa, DBMS bir hata mesajı oluşturacak ve satır eklenmeyecektir.

3. Seçilen verileri ekleme

Önceki örnekte, sorguya manuel olarak girerek tablolara veri ekledik. Ancak operatör TAKIN Başka bir tablodan veri eklemek istiyorsak bu işlemi otomatikleştirmemize olanak tanır. Bu amaçla SQL'de şöyle bir yapı vardır: EKLEYİN... SEÇİN.... Bu tasarım aynı anda bir tablodan veri seçip diğerine eklemenizi sağlar. Diyelim ki başka bir masamız var Satıcılar_ABürünlerimizin Avrupa'daki satıcılarının bir listesi ile bunları genel tabloya eklememiz gerekiyor Satıcılar. Bu tabloların yapısı aynıdır (aynı sayıda sütun ve aynı adlar), ancak veriler farklıdır. Bunu yapmak için aşağıdaki sorguyu yazabiliriz:

Satıcılara EKLEYİN (Kimlik, Adres, Şehir, Satıcı_adı, Ülke) SEÇKimlik, Adres, Şehir, Satıcı_adı, Ülke Satıcılar_AB'DEN

Dahili anahtarların değerlerinin tekrarlanmamasına dikkat etmeniz gerekmektedir (alan İD), aksi halde bir hata meydana gelecektir. Şebeke SEÇMEönerileri de içerebilir NEREDE Verileri filtrelemek için. Ayrıca DBMS'nin ifadede yer alan sütunların adlarına dikkat etmediğini de belirtmek gerekir. SEÇME onun için yalnızca bunların düzenlenme sırası önemlidir. Bu nedenle seçilen ilk belirtilen sütundaki veriler SEÇME, her durumda tablonun ilk sütunu doldurulacaktır. Satıcılar, operatörden sonra belirtilir TAKIN, alan adından bağımsız olarak.

4. Verileri bir tablodan diğerine kopyalamak

Genellikle veritabanlarıyla çalışırken, yedekleme veya değişiklik amacıyla herhangi bir tablonun kopyalarını oluşturmaya ihtiyaç duyulur. Bir tablonun tam kopyasını oluşturmak için SQL ayrı bir ifade sağlar İÇİNİ SEÇİN. Örneğin tablonun bir kopyasını oluşturmamız gerekiyor Satıcılar isteği şu şekilde yazmanız gerekir:

Satıcılardan * INTO Sellers_new SEÇİN

Önceki tasarımın aksine EKLEYİN... SEÇİN... Mevcut bir tabloya veri eklendiğinde tasarım, verileri yeni tabloya kopyalar. Ayrıca, ilk yapının verileri içe aktardığını, ikinci yapının ise dışa aktardığını da söyleyebilirsiniz. Tasarımı kullanırken SEÇİN ... İÇİNE ... FROM ... Aşağıdakiler dikkate alınmalıdır:

  • - operatördeki herhangi bir cümleyi kullanabilirsiniz SEÇME, örneğin GRUPLANDIRMA ŞEKLİ Ve SAHİP OLMAK
  • - birden fazla tablodan veri eklemek için birleştirmeyi kullanabilirsiniz
  • - kaç tablodan alınmış olursa olsun veriler yalnızca bir tabloya eklenebilir.

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 makale INSERT deyimini kapsamaktadır ve diğer iki ifade bir sonraki makalede ele alınmaktadı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");

Yeni bir satıra değer eklemenin iki farklı yolu vardır. 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 teklif 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.

Yükleniyor...