INSERT INTO چیست؟

هدف اصلی سیستم های پایگاه داده ذخیره داده ها در جداول است. داده ها معمولاً توسط برنامه های کاربردی که در بالای پایگاه داده اجرا می شوند، تهیه می شوند. در این راستا، SQL دارددستور INSERT که برای ذخیره داده ها در جدول استفاده می شود. را دستور INSERT یک ردیف جدید ایجاد می کنددر جدول برای ذخیره داده ها

نحو پایه

بیایید به نحو اصلی دستور SQL INSERT که در زیر نشان داده شده است نگاه کنیم.

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

  • در «نام_جدول» درج کنیددستوری است که به سرور MySQL می‌گوید ردیف جدیدی را به جدولی به نام «table_name» اضافه کند.
  • (ستون_1،ستون_2،...)ستون هایی را که باید در ردیف جدید به روز شوند را مشخص می کند
  • VALUES (value_1,value_2,...)مقادیری را که باید به ردیف جدید اضافه شوند را مشخص می کند

هنگام ارائه مقادیر داده برای درج در جدول جدید، هنگام برخورد با انواع داده های مختلف، موارد زیر باید در نظر گرفته شود.

  • انواع داده های رشته ای- تمام مقادیر رشته باید در یک نقل قول محصور شوند.
  • انواع داده های عددی- تمام مقادیر عددی باید مستقیماً بدون محصور کردن آنها در گیومه های تکی یا دوگانه ارائه شوند.
  • انواع داده های تاریخ- مقادیر تاریخ را در گیومه های تک در قالب "YYYY-MM-DD" قرار دهید.

مثال:

فرض کنید لیست زیر از اعضای جدید کتابخانه را داریم که باید به پایگاه داده اضافه شوند.

اسامی کامل تاریخ تولد جنسیت آدرس حقیقی آدرس پستی شماره تماس آدرس ایمیل
لئونارد هافستاتر نر تاج چوبی 0845738767
شلدون کوپر نر تاج چوبی 0976736763
راجش کوتراپالی نر فیر ویو 0938867763
لزلی وینکل 14/02/1984 نر 0987636553
هوارد ولوویتز 24/08/1981 نر پارک جنوبی P.O. جعبه 4563 0987786553

اجازه دهید" داده ها را یک به یک درج کنیم. ما با لئونارد هافستادتر شروع می کنیم. شماره تماس را به عنوان یک نوع داده عددی در نظر می گیریم و شماره را در یک نقل قول قرار نمی دهیم.

INSERT INTO «اعضا» («نامهای_کامل»، «جنس»، «آدرس_فیزیکی»، «شماره_تماس») VALUES ("لئونارد هافستادتر"، "مذکر"، "وودکرست"، 0845738767);

اجرای اسکریپت بالا 0 را از شماره تماس لئونارد حذف می کند. این به این دلیل است که مقدار به عنوان یک مقدار عددی در نظر گرفته می شود و صفر (0) در ابتدا حذف می شود زیرا معنی دار نیست.

برای جلوگیری از چنین مشکلاتی، مقدار باید در گیومه های تکی مانند شکل زیر محصور شود -

INSERT INTO «اعضا» («نامهای_کامل»، «جنس»، «آدرس_فیزیکی»، «شماره_تماس») مقادیر ("شلدون کوپر"، "مذکر"، "وودکرست"، "0976736763");

در حالت فوق، صفر (0) حذف نخواهد شد

تا زمانی که مقادیر صحیح به ستون‌های صحیح نگاشت شده باشند، تغییر ترتیب ستون‌ها تأثیری بر پرس و جوی INSERT ندارد.

کوئری که در زیر نشان داده شده است، نکته فوق را نشان می دهد.

INSERT INTO «اعضا» («شماره_مخاطبین»، «جنس»، «نامهای_کامل»، «آدرس_فیزیکی») VALUES ("0938867763"، "مذکر"، "راجش کوترپالی"، "Woodcrest");

پرسش‌های بالا از ستون تاریخ تولد رد شدند، به طور پیش فرض MySQL مقادیر NULL را در ستون هایی که در پرس و جوی INSERT نادیده گرفته شده اند وارد می کند.

بیایید اکنون رکورد لزلی را وارد کنیم که تاریخ تولد ارائه شده است. مقدار تاریخ باید با فرمت "YYYY-MM-DD" در گیومه های تکی قرار داده شود.

درج در «اعضا» («نام_های_کامل»، «تاریخ_تولد»، «جنسیت»، «آدرس_فیزیکی»، «شماره_مخاطب») VALUES ("لزلی وینکل"، "14-02-1984"، "مذکر"، "وودکرست"، " 0987636553");

همه پرس و جوهای بالا ستون ها را مشخص کرده و آنها را به مقادیر در عبارت insert نگاشت می کنند. اگر برای همه ستون‌های جدول مقادیر ارائه می‌کنیم، می‌توانیم ستون‌ها را از کوئری درج حذف کنیم.

INSERT INTO "Members" VALUES (9"Howard Wolowitz"،"Male"،"1981-08-24"،"SouthPark"،"P.O. Box 4563"، "0987786553"، "lwolowitzemail.me");

اجازه دهید اکنون از عبارت SELECT برای مشاهده تمام سطرهای جدول اعضا استفاده کنیم. SELECT * FROM `Members`;

شماره عضویتنامهای کاملجنسیتتاریخ تولدآدرس حقیقیآدرس پستیشماره تماسپست الکترونیک
1 جانت جونززن21-07-1980 قطعه خیابان اول شماره 4کیف خصوصی0759 253 542 این آدرس ایمیل در مقابل هرزنامه ها محافظت می شود. برای مشاهده باید جاوا اسکریپت را فعال کنید.
2 جانت اسمیت جونززن23-06-1980 ملروز 123خالیخالیاین آدرس ایمیل در مقابل هرزنامه ها محافظت می شود. برای مشاهده باید جاوا اسکریپت را فعال کنید.
3 رابرت فیلنر12-07-1989 خیابان سوم 34خالی12345 این آدرس ایمیل در مقابل هرزنامه ها محافظت می شود. برای مشاهده باید جاوا اسکریپت را فعال کنید.
4 گلوریا ویلیامززن14-02-1984 خیابان دوم 23خالیخالیخالی
5 لئونارد هافستاترنرخالیتاج چوبیخالی845738767 خالی
6 شلدون کوپرنرخالیتاج چوبیخالی976736763 خالی
7 راجش کوتراپالینرخالیتاج چوبیخالی938867763 خالی
8 لزلی وینکلنر14-02-1984 تاج چوبیخالی987636553 خالی
9 هوارد ولوویتزنر24-08-1981 پارک جنوبیP.O. جعبه 4563987786553 این آدرس ایمیل در مقابل هرزنامه ها محافظت می شود. برای مشاهده باید جاوا اسکریپت را فعال کنید.

توجه داشته باشید که شماره تماس لئونارد هافستادتر صفر (0) را از شماره تماس حذف کرده است. شماره تماس های دیگر در ابتدا صفر (0) را کاهش نداده اند.

درج در یک جدول از یک جدول دیگر

دستور INSERT همچنین می تواند برای وارد کردن داده ها به یک جدول از جدول دیگر استفاده شود. سینتکس اصلی مطابق شکل زیر است.

INSERT INTO table_1 SELECT * FROM table_2;

اجازه دهید اکنون به یک مثال عملی نگاه کنیم، ما یک جدول ساختگی برای مقوله‌های فیلم برای اهداف نمایشی ایجاد می‌کنیم. جدول دسته‌های جدید را kategori_archive می‌نامیم. اسکریپت نشان داده شده در زیر جدول را ایجاد می‌کند.

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»)

اسکریپت بالا را برای ایجاد جدول اجرا کنید.

اکنون اجازه دهید تمام ردیف‌ها را از جدول دسته‌ها در جدول بایگانی دسته‌ها وارد کنیم. اسکریپت زیر به ما کمک می‌کند تا به آن برسیم.

INSERT INTO `categories_archive` SELECT * FROM `categories`;

با اجرای اسکریپت فوق، تمام سطرها از جدول دسته ها در جدول بایگانی دسته ها وارد می شود. توجه داشته باشید که ساختار جدول باید یکسان باشد تا اسکریپت کار کند. یک اسکریپت قوی تر اسکریپتی است که نام ستون ها را در جدول درج به موارد موجود در جدول حاوی داده ها نگاشت می کند.

پرس و جو نشان داده شده در زیر کاربرد آن را نشان می دهد.

INSERT INTO `categories_archive`(category_id,category_name, remarks) SELECT category_id,category_name, remarks FROM `categories`;

اجرای کوئری SELECT

* از «categories_archive» را انتخاب کنید

نتایج زیر را نشان می دهد.

category_idنام دستهملاحظات
1 کمدیفیلم های طنز
2 رومانتیکداستان های عاشقانه
3 حماسهداستان فیلم های باستانی
4 وحشتخالی
5 علمی تخیلیخالی
6 دلهره آورخالی
7 عملخالی
8 کمدی رمانتیکخالی
9 کارتونخالی
10 کارتونخالی

خلاصه

  • دستور INSERT برای افزودن داده های جدید به جدول استفاده می شود
  • مقادیر تاریخ و رشته باید در گیومه های تکی محصور شوند.
  • لازم نیست مقادیر عددی در گیومه قرار بگیرند.
  • دستور INSERT همچنین می تواند برای وارد کردن داده ها از یک جدول به جدول دیگر استفاده شود.

با استفاده از SQL می توانید اطلاعات را از یک جدول به جدول دیگر کپی کنید.

دستور INSERT INTO SELECT داده ها را از یک جدول کپی می کند و آن را در جدول موجود وارد می کند.

دستور SQL INSERT INTO SELECT،

دستور INSERT INTO SELECT داده ها را از یک جدول انتخاب می کند و آن را در جدول موجود وارد می کند. هیچ یک از ردیف های موجود در جدول هدف تغییر نمی کند.

SQL INSERT INTO SELECT، Syntax

ما می توانیم تمام ستون ها را از یک جدول به جدول موجود دیگر کپی کنیم:

درج کنید جدول 2
انتخاب * از میز 1؛

یا فقط می‌توانیم ستون‌هایی را که می‌خواهیم در جدول موجود دیگری کپی کنیم:

درج کنید جدول 2
(نام(های) ستونی)
انتخاب کنید نام(های) ستون
از جانب میز 1؛

پایگاه داده نسخه ی نمایشی

در این آموزش از پایگاه داده معروف Northwind استفاده خواهیم کرد.

در زیر منتخبی از جدول "مشتریان" آمده است:

شناسه کاربرنام مشتریفرد تماسنشانیشهرکد پستیکشور
1 آلفرد فوترکیست ماریا آندرس اوبره خ. 57 برلین 12209 آلمان
2 Ana Trujillo Emparedados و Helados آنا تروخیلو آودا. de la Constitucion 2222 مکزیک D.F. 05021 مکزیک
3 آنتونیو مورنو تاکوریا آنتونیو مورنو ماتادروس 2312 مکزیک D.F. 05023 مکزیک

و انتخابی از جدول "تامین کنندگان":

SQL INSERT INTO SELECT، مثالها

کپی کردن تنها چند ستون از "تامین کنندگان" به "مشتریان":

فقط تامین کنندگان آلمانی را در "مشتریان" کپی کنید.

پرس و جوی INSERT INTO sql زمانی معنا پیدا می کند که جدول پایگاه داده ایجاد شود. یعنی جدول وجود دارد، نام دارد، سطرها و ستون ها ایجاد شده است. جدول توسط عملگر ایجاد می شود: ، جدول توسط عملگر اصلاح می شود.

پرس و جو sql INSERT INTO - نحو پرس و جو

پرس و جوی sql INSERT INTO دارای نحو زیر است:

INSERT INTO table_name (در داخل پرانتز، در صورت لزوم، فهرستی از ستون‌ها را درج کنید که می‌خواهید داده‌ها را درج کنید) VALUES داده‌های درج شده1، داده‌های درج شده2، داده‌های درج شده3.

یک گزینه IGNORE را می توان بین INSERT و INTRO درج کرد. اجباری نیست برای محافظت از کلیدهای اصلی هنگام ویرایش جدول مورد نیاز است. در غیر این صورت، اگر در حین ویرایش کلیدهای اصلی تکراری شد، با قرار دادن گزینه IGNORE، ردیف اول با کلید اصلی در جدول اصلاح شده باقی می ماند، کلیدهای اصلی دیگر حذف می شوند. به طور پیش فرض این گزینه حذف شده است.

گزینه های اختیاری LOW_PRIORITY و DELAYED وجود دارد. آنها اولویت ها را برای افزودن اطلاعات به پایگاه داده تعیین می کنند. اولی انتظار انتشار پایگاه داده را تعیین می کند، دومی به معنای بافر کردن اطلاعات است.

خط پرس و جو: INSERT با عبارت VALUES یک سطر را به جدول پایگاه داده اضافه می کند. عبارت VALUES حاوی مقادیر این داده ها است.

به جای عبارت VALUES می توان از سوالات فرعی استفاده کرد. INSERT with subquery ردیف های برگردانده شده توسط subquery را به جدول اضافه می کند. سرور پایگاه داده پرس و جو فرعی را پردازش می کند و تمام ردیف های برگشتی را در جدول درج می کند. اگر پرس و جوی فرعی آنها را انتخاب نکند، سرور ردیف ها را وارد نمی کند.

  • subquery_1 - یک پرس و جو فرعی که سرور به همان روشی که view پردازش می کند
  • subquery_2 یک پرس و جو فرعی است که سطرهایی که در جدول درج شده اند را برمی گرداند. فهرست این پرسش فرعی باید به اندازه فهرست ستون‌های INSERT تعداد ستون داشته باشد.

سوالات فرعی عملا در پایگاه داده MySQL استفاده نمی شود.

نمونه های پرس و جوی sql را در پایگاه داده MySQL درج کنید

سطرهای جدید را با دستور INSERT INTRO در پایگاه داده MySQL وارد کنید.

مثال اول

ردیف های جدید را در جدول table_name درج کنید.

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

این بدان معنی است که می خواهیم مقادیر 2,145,1,name را در ستون های جدول table_name وارد کنیم. از آنجایی که ستون ها مشخص نیستند، مقادیر در تمام ستون های جدول پر می شوند.

مثال دوم

درج اطلاعات در ستون های مورد نظر (مشخص شده) جدول table_name.

INSERT INTO table_name (client_customer، client_subclient، client_mail) VALUES ('name1','subname1',' [ایمیل محافظت شده]")، ('name2','subname2',' [ایمیل محافظت شده]")، ('name3','subname3',(' [ایمیل محافظت شده]′);

ایگور سروف مخصوص سایت "".

علاوه بر عبارت SELECT که قبلاً مورد بحث قرار گرفت، زبان دستکاری داده ها (DML) شامل سه عبارت دیگر است: INSERT، UPDATE، و DELETE. مانند دستور SELECT، این سه دستور بر روی جداول یا نماها عمل می کنند. این مقاله به عبارت INSERT می پردازد و دو عبارت دیگر در مقاله بعدی مورد بحث قرار می گیرند.

درج بیانیهسطرها (یا قسمت هایی از ردیف ها) را در جدول قرار می دهد. دو شکل متفاوت از این دستورالعمل وجود دارد:

درج tab_name [(col_list)] مقادیر پیش‌فرض | VALUES (( پیش فرض | NULL | عبارت ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement | execute_statement) قراردادهای نحوی

شکل اول عبارت به شما امکان می دهد یک ردیف (یا بخشی از آن) را در جدول وارد کنید. و شکل دوم دستور INSERT به شما امکان می دهد مجموعه نتایج یک دستور SELECT یا یک رویه ذخیره شده اجرا شده توسط یک دستور EXECUTE را در جدول درج کنید. رویه ذخیره شده باید داده ها را برای درج در جدول برگرداند. هنگامی که با دستور INSERT استفاده می‌شود، دستور SELECT می‌تواند مقادیری را از یک جدول متفاوت یا یکسان که داده‌ها در آن درج می‌شوند انتخاب کند، تا زمانی که انواع داده‌های ستون‌های مربوطه با هم سازگار باشند.

برای هر دو فرم، نوع داده هر مقدار درج شده باید با نوع داده ستون جدول مربوطه سازگار باشد. تمام رشته ها و داده های موقت باید در علامت نقل قول قرار داده شوند. لازم نیست مقادیر عددی در گیومه قرار بگیرند.

درج تک خط

برای هر دو شکل دستور INSERT، فهرست صریح ستون‌ها اختیاری است. عدم وجود لیستی از ستون ها معادل تعیین تمام ستون های جدول است.

پارامتر DEFAULT VALUESمقادیر پیش فرض را برای همه ستون ها درج می کند. ستون‌هایی با نوع داده TIMESTAMP یا ویژگی IDENTITY به‌طور پیش‌فرض با مقادیری که به‌طور خودکار توسط سیستم تولید می‌شوند درج می‌شوند. برای ستون‌های دیگر انواع داده، مقدار پیش‌فرض غیر تهی مربوطه، در صورت وجود، یا NULL درج می‌شود. اگر مقادیر null برای یک ستون مجاز نباشد و هیچ مقدار پیش فرضی برای ستون تعریف نشده باشد، عبارت INSERT ناموفق بوده و یک پیام مناسب نمایش داده می شود.

مثال زیر ردیف‌هایی را در جدول Employee در پایگاه داده SampleDb وارد می‌کند و نحوه استفاده از دستور INSERT را برای درج مقدار کمی داده در پایگاه داده نشان می‌دهد:

از SampleDb استفاده کنید. INSERT INTO Employee VALUES(34990، "Andrey"، "Batonov"، "d1"); INSERT INTO Employee VALUES(38640، "Aleksey"، "Vasin"، "d3");

دو تا هستند روش های مختلفدرج مقادیر در خط جدید. عبارت INSERT در مثال زیر به صراحت استفاده می کند کلمه کلیدی NULL و مقدار NULL را در ستون مربوطه وارد می کند:

از SampleDb استفاده کنید. INSERT INTO Employee VALUES(34991، "Andrey"، "Batonov"، NULL);

برای درج مقادیر در برخی (و نه همه) ستون‌های جدول، معمولاً باید آن ستون‌ها را به صراحت مشخص کنید. ستون هایی که مشخص نشده اند باید مقادیر NULL را مجاز کنند یا باید یک مقدار پیش فرض برای آنها تعریف شده باشد.

از SampleDb استفاده کنید. INSERT INTO Employee(Id, FirstName, LastName) VALUES (34992, "Andrey", "Batonov");

دو مثال قبلی معادل هستند. در جدول Employee، تنها ستونی که مقادیر null را مجاز می‌کند، ستون DepartmentNumber است و برای سایر ستون‌ها، این مقدار توسط عبارت NOT NULL در عبارت CREATE TABLE ممنوع شده است.

ترتیب ارزش ها در جمله VALUESعبارات INSERT ممکن است با ترتیب مشخص شده در عبارت CREATE TABLE متفاوت باشد. در چنین حالتی، ترتیب آنها باید با ترتیبی که ستون های مربوطه در لیست ستون ها فهرست شده اند مطابقت داشته باشد. در زیر نمونه ای از درج داده ها با ترتیبی متفاوت از اصلی آورده شده است:

از SampleDb استفاده کنید. INSERT INTO Employee(DepartamentNumber, LastName, Id, FirstName) VALUES ("d1"، "Batonov"، 34993، "Andrey");

درج چند ردیف

شکل دوم دستور INSERT یک یا چند ردیف انتخاب شده توسط پرس و جو فرعی را در جدول درج می کند. مثال زیر نحوه درج ردیف ها را با استفاده از فرم دوم عبارت INSERT نشان می دهد. در این مورد، یک پرس و جو برای انتخاب اعداد و نام بخش های مستقر در مسکو و بارگیری مجموعه به دست آمده در جدول جدیدی که قبلاً ایجاد شده است انجام می شود.

جدول جدید MoscowDepartment ایجاد شده در مثال بالا دارای همان ستون‌هایی است که جدول Department موجود است، به جز ستون مکان از دست رفته. پرسش فرعی در عبارت INSERT همه سطرهایی را در جدول Department که مقدار ستون Location برای آنها مسکو است، انتخاب می کند و سپس در جدول جدید ایجاد شده در ابتدای پرس و جو درج می شود.

مثال زیر روش دیگری را برای درج ردیف ها در جدول با استفاده از شکل دوم عبارت INSERT نشان می دهد. در این حالت، یک کوئری برای انتخاب شماره پرسنل، شماره پروژه و تاریخ شروع پروژه برای همه کارکنان با موقعیت "مدیر" که روی پروژه p2 کار می کنند اجرا می شود و سپس مجموعه حاصل را در جدول جدیدی که در ابتدا ایجاد شده است بارگذاری می کند. از پرس و جو:

از SampleDb استفاده کنید. 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 = "Manager";

قبل از درج ردیف ها با استفاده از عبارت INSERT، جداول MoscowDepartment و ManagerTeam (در مثال های بالا) خالی بودند. اگر جدول قبلاً وجود داشت و دارای ردیف های داده بود، ردیف های جدیدی به آن اضافه می شد.

در قسمت های قبلی کار به دست آوردن داده ها از جداول از پیش ساخته شده را در نظر گرفتیم. اکنون زمان آن است که بفهمیم چگونه می توانیم جداول ایجاد / حذف کنیم، رکوردهای جدید اضافه کنیم و موارد قدیمی را حذف کنیم. برای این اهداف در SQLاپراتورهایی مانند: ایجاد کردن- یک جدول ایجاد می کند تغییر دهید- تغییر ساختار جدول، رها کردن- یک جدول یا فیلد را حذف می کند، درج کنید- داده ها را به جدول اضافه می کند. بیایید آشنایی خود را با این دسته از اپراتورها از اپراتور شروع کنیم درج کنید.

1. اضافه کردن خطوط کامل

همانطور که از نام آن پیداست، اپراتور درج کنیدبرای درج (الحاق) ردیف ها به جدول پایگاه داده استفاده می شود. اضافه کردن را می توان به چند روش انجام داد:

  • - یک خط کامل اضافه کنید
  • - بخشی از یک رشته را اضافه کنید
  • - اضافه کردن نتایج پرس و جو

بنابراین، برای افزودن یک ردیف جدید به جدول، باید نام جدول را مشخص کنیم، نام ستون ها را لیست کنیم و مقدار هر ستون را با استفاده از ساختار مشخص کنیم. درج کنید جدول_نام (فیلد1، فیلد2 ...) ارزش های (value1, value2...). بیایید به یک مثال نگاه کنیم.

INSERT INTO Sellers (ID، آدرس، شهر، Seller_name، کشور) VALUES("6"، "خیابان اول"، "لس آنجلس"، "هری مونرو"، "ایالات متحده آمریکا")

شما همچنین می توانید ترتیب نام ستون ها را تغییر دهید، اما در همان زمان باید ترتیب مقادیر در پارامتر را تغییر دهید. ارزش های.

2. اضافه کردن بخشی از خطوط

در مثال قبلی هنگام استفاده از عملگر درج کنیدما به صراحت نام ستون های جدول را علامت گذاری کردیم. با استفاده از این نحو، می توانیم برخی از ستون ها را رد کنیم. این به این معنی است که برای برخی از ستون ها مقداری وارد می کنید اما برای برخی دیگر مقادیری ارائه نمی کنید. مثلا:

INSERT INTO Sellers (ID، شهر، Seller_name) VALUES("6"، "لس آنجلس"، "هری مونرو")

AT این مثالما مقداری برای دو ستون مشخص نکردیم نشانیو کشور. می توانید برخی از ستون ها را از بیانیه حذف کنید درج کنید، اگر اجازه تعریف جدول را بدهد. در این مورد، یکی از شرایط زیر باید برآورده شود: این ستون به عنوان اجازه دادن به مقدار تعریف شده است خالی(عدم وجود هیچ مقدار) یا در تعریف جدول مقدار پیش فرض مشخص شده است. به این معنی که اگر مقداری مشخص نشده باشد، از مقدار پیش فرض استفاده می شود. اگر ستونی را در جدولی که اجازه مقادیر در سطرهای آن را نمی دهد رد شوید خالیو مقدار پیش فرض تعریف نشده باشد، DBMS یک پیغام خطا صادر می کند و این ردیف اضافه نمی شود.

3. اضافه کردن داده های انتخاب شده

در مثال‌های قبلی، داده‌ها را با نوشتن دستی جداول در کوئری وارد کردیم. با این حال، اپراتور درج کنیدبه ما این امکان را می دهد که اگر می خواهیم داده ها را از جدول دیگری وارد کنیم، این فرآیند را خودکار کنیم. برای انجام این کار، SQL ساختاری مانند زیر دارد: درج در ... انتخاب .... این طراحی به شما این امکان را می دهد که به طور همزمان داده ها را از یک جدول انتخاب کرده و در جدول دیگر وارد کنید. فرض کنید میز دیگری داریم Sellers_EUبا لیستی از فروشندگان کالاهای ما در اروپا و باید آنها را به جدول کلی اضافه کنیم فروشندگان. ساختار این جداول یکسان است (تعداد ستون ها و نام های یکسان) اما داده های متفاوتی دارد. برای این کار می توانیم کوئری زیر را بنویسیم:

INSERT INTO Sellers (شناسه، آدرس، شهر، نام فروشنده، کشور) انتخاب کنیدشناسه، آدرس، شهر، نام فروشنده، کشور از فروشندگان_EU

باید توجه داشته باشید که مقدار کلیدهای داخلی تکرار نشود (فیلد شناسه) در غیر این صورت خطایی رخ خواهد داد. اپراتور انتخاب کنیدهمچنین ممکن است شامل پیشنهاداتی باشد جایی کهبرای فیلتر کردن داده ها همچنین لازم به ذکر است که DBMS به نام ستون های موجود در بیانیه توجهی نمی کند. انتخاب کنید، فقط ترتیب چیدمان آنها برای او مهم است. بنابراین، داده ها در اولین ستون مشخص شده که به دلیل انتخاب شده است انتخاب کنید، به هر حال در ستون اول جدول پر می شود فروشندگانبعد از اپراتور مشخص شده است درج کنید، صرف نظر از نام فیلد.

4. کپی داده ها از یک جدول به جدول دیگر

اغلب، هنگام کار با پایگاه های داده، ایجاد کپی از هر جداول به منظور تهیه نسخه پشتیبان یا اصلاح ضروری است. برای ایجاد یک کپی کامل از یک جدول در SQL، یک عبارت جداگانه ارائه شده است INTO را انتخاب کنید. به عنوان مثال، باید یک کپی از جدول ایجاد کنیم فروشندگان، باید درخواست را به صورت زیر بنویسید:

SELECT * INTO Sellers_new FROM Sellers

برخلاف طرح قبلی درج در ... انتخاب ...هنگامی که داده ها به یک جدول موجود اضافه می شود، ساختار داده ها را در جدول جدید کپی می کند. همچنین می توان گفت که ساختار اول داده های واردات را ایجاد می کند، در حالی که ساخت دوم صادرات را انجام می دهد. هنگام استفاده از ساختار انتخاب ... به ... از ...موارد زیر باید در نظر گرفته شود:

  • - می توانید از هر جمله ای در عملگر استفاده کنید انتخاب کنید، مانند دسته بندی بر اساسو داشتن
  • - از join می توان برای اضافه کردن داده ها از چندین جداول استفاده کرد
  • - داده ها را فقط می توان به یک جدول اضافه کرد، صرف نظر از اینکه از چند جدول گرفته شده است.