دستور Insert در SQL Server

دستور Insert در SQL Server

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۲۴ دی ۱۴۰۲
آخرین بروزرسانی: 08 آذر 1403
زمان مطالعه: 8 دقیقه
۵
(۳)

دستور Insert در SQL Server به منظور درج رکورد (سطر | Row) به جداول پایگاه داده (Database) مورد استفاده قرار می‌گیرد. در مقاله پیشین، دستور Select و کاربردهای آن را بررسی کردیم تا شما نحوه استفاده از این دستور در پایگاه داده رابطه ای (RDBMS) را فرا بگیرید. حال، در این مطلب قصد داریم دستور Insert ، که یکی از دستورات کاربردی در SQL Server است، را بررسی کنیم. برای درک بهتر مفاهیم، پیشنهاد می‌کنیم ابتدا آموزش جامع SQL Server را مطالعه کنید.

دوره کوئری نویسی در SQL Server نیک آموز

دستور Insert در SQL Server چیست؟

دستور Insert در SQL Server برای درج یک یا چند سطر به جدول به کار می‌رود و به واسطه آن می‌توانید برخی از عملیات حیاتی مربوط به پایگاه داده را انجام دهید. در این دستور، از کلمه کلیدی Insert Into استفاده می‌شود. ساختار کلی دستور Insert به صورت زیر است:

 

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

 

اجزای دستور فوق، به شرح زیر است:

  • table_name: منظور از table_name، نام جدولی است که قصد دارید به آن داده‌ها را درج کنید.
  • (column1, column2, column3, …): این قسمت، لیست ستون‌ها یا فیلدها است و شما می‌توانید به واسطه آن، مشخص کنید که داده‌ها به کدام فیلد Insert شوند. در صورت تعیین نکردن این جز از دستور Insert ، فرض می‌شود که مقادیر، به ترتیب برای تمامی فیلدها در نظر گرفته شده‌اند.
  • ;VALUES (value1, value2, value3, …): این بخش، مقادیری است که می‌خواهید به هرکدام از فیلدها تخصیص دهید تا در جدول درج شوند.

با این دید مقدماتی از دستور Insert در SQL Server ، در بخش بعدی، انواع کاربردهای این دستور را شرح خواهیم داد.

 

دستور Insert در SQL Server چیست؟

 

کاربرد دستور Insert در SQL Server

کاربردهای دستور Insert در SQL Server تنها به درج رکورد محدود نمی‌شود و شما می‌توانید از آن در اسکریپت های پرکاربرد SQL بهره‌مند شوید. برخی از مهم‌ترین موارد استفاده دستور درج رکورد در SQL Server به شرح زیر است:

درج داده های جدید

همان‌طور که پیش‌تر به آن اشاره شد، کلیدی‌ترین کاربرد دستور Insert ، افزودن رکوردهای جدید به یک جدول است. دستور Insert این امکان را به شما می‌دهد که داده‌ها را به ستون‌های خاصی اضافه کنید و به کمک آن، یک روشی برای درج اطلاعات جدید به پایگاه داده داشته باشید. برای درک بهتر، به مثال زیر توجه کنید.

 

INSERT INTO Customers (CustomerID, CompanyName, ContactName, Country)
VALUES ('ZBRE', 'Nim Pranch', 'Sarah Colon', 'France');

 

با اجرای کوئری فوق، یک رکورد مربوط به مشتری جدید به جدول Cutomers اضافه می‌شود. در این مثال، برای فیلدهای جدول، به ترتیب، مقادیر تعیین‌شده اضافه خواهد شد.

 

درج داده های جدید

 

درج چند رکورد به صورت همزمان

با به کارگیری تنها یک دستور Insert در SQL Server ، امکان درج همزمان چندین رکورد به جدول وجود دارد. طبیعتاً برای چنین شرایطی، اجرای یک دستور Insert کارایی بیشتری نسبت به اجرای چند دستور Insert دارد. مثال زیر، جزئیات این موضوع را شفاف‌سازی می‌کند.

 

درج سه رکورد در جدول با یک دستور Insert

INSERT INTO Employees (FirstName, LastName, Title, BirthDate, Country, City, HireDate) VALUES 
  ('John', 'ADoe', 'Sales Manager', '1980-01-15', 'USA', 'New York', '2000-05-01'),
  ('Jane', 'ASmith', 'Software Developer', '1985-03-20', 'USA', 'Los Angeles', '2005-08-10'),
  ('Alice', 'AJohnson', 'HR Manager', '1977-09-05', 'Canada', 'Toronto', '2002-12-15')

 

درج سه رکورد در جدول با سه دستور Insert

INSERT INTO Employees (FirstName, LastName, Title, BirthDate, Country, City, HireDate)
VALUES (1, 'John', 'ADoe', 'Sales Manager', '1980-01-15', 'USA', 'New York', '2000-05-01');

INSERT INTO Employees (FirstName, LastName, Title, BirthDate, Country, City, HireDate)
VALUES (2, 'Jane', 'ASmith', 'Software Developer', '1985-03-20', 'USA', 'Los Angeles', '2005-08-10');

INSERT INTO Employees (FirstName, LastName, Title, BirthDate, Country, City, HireDate)
VALUES (3, 'Alice', 'AJohnson', 'HR Manager', '1977-09-05', 'Canada', 'Toronto', '2002-12-15');

 

در مثال فوق، با کمک دستور Insert Into ، سه رکورد را به ‌صورت همزمان، به جدول Employees درج کرده‌ایم.

 

درج چند رکورد به صورت همزمان

 

ایجاد نسخه کپی از داده های جدول

شما می‌توانید دستور Insert و دستور Select و کاربردهای آن را به گونه‌ای استفاده کنید که داده‌ها از یک جدول به جدول دیگر اضافه شوند. برای انجام این کار، لازم است از سینتکس Insert Into …. Select استفاده کنید. به واسطه این قابلیت، می‌توانید داده‌ها را از منابع مختلف کپی کنید. به منظور درک بهتر، در ادامه یک مثال قرار داده شده است.

 

USE Northwind;

CREATE TABLE DiscontinuedProducts (
    ProductID INT,
    ProductName NVARCHAR(50),
    SupplierID INT,
    CategoryID INT,
    Discontinued BIT
);

INSERT INTO DiscontinuedProducts (ProductID, ProductName, SupplierID, CategoryID, Discontinued)
SELECT 
    ProductID,
    ProductName,
    SupplierID,
    CategoryID,
    Discontinued
FROM Products
WHERE Discontinued = 1;

 

در مثال فوق، ابتدا یک جدول برای محصولاتی که توقف تولید شده‌اند، ایجاد کرده و در ادامه، این محصولات را با استفاده از دستور Insert ، از جدول Products به این جدول جدید (DiscontinuedProducts) درج می‌کنیم. خروجی این دوره کوئری نویسی پیشرفته به صورت زیر است:

 

ایجاد نسخه کپی از داده های جدول

 

تاثیر دستور Insert بر روی فیلدهایی از نوع Identity

زمانی که جدول دیتابیس حاوی ستون Identity است، دستور Insert به شما اجازه می‌دهد که آن ستون را از لیست ستون‌ها از قلم بیاندازید.

ستون Identity، یک فیلد در جدول پایگاه داده است که با افزایش یک رکورد جدید به جدول، مقدار آن به طور خودکار افزایش می‌یابد. معمولاً از این ستون به‌عنوان کلید اصلی (PK | Primary Key) جدول استفاده می‌کنیم تا خیالتان از بابت یکتایی (Uniqueness) هر رکورد راحت باشد.

در مثال زیر، با اجرای این کوئری، ابتدا یک جدول تحت عنوان ExampleTable ایجاد می‌کنیم که دارای Identity Coulmn است و پس از آن، بدون نیاز به مقداردهی کردن ستون Identity، یک رکورد جدید به این جدول درج می‌کنیم.

 

CREATE TABLE ExampleTable (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    Name NVARCHAR(50),
    Description NVARCHAR(255)
);

INSERT INTO ExampleTable (Name, Description)
VALUES ('Example Name', 'This is an example description');

 

خروجی حاصل از اجرای دستور Insert مذکور، به صورت زیر است:

 

تاثیر دستور Insert بر روی فیلدهایی از نوع Identity

 

تعیین مقادیر پیش فرض

با کمک دستور DEFAULT VALUES می‌توان یک سطر جدید به همراه مقادیر پیش‌فرض برای تمامی ستون‌ها درج کرد. این موضوع در مواقعی مناسب است که ستون‌ها دارای محدودیت‌های پیش‌فرض (Default Constraints) هستند. 

شایان ذکر است که شما می‌توانید تمام محدودیت‌های پیش‌فرض تعریف‌شده را ازطریق یک اسکریپت مشاهده کنید. برای آشنایی با نحوه انجام این کار، پیشنهاد می‌شود مقاله اسکریپت: خلاصه ای از Default Constraint‍ های تعریف شده در یک دیتابیس را مطالعه کنید. مثال زیر، به کاربرد دستور Insert در SQL Server و اهمیت آن در تعیین مقدار پیش‌فرض اشاره دارد.

 

USE Northwind;

INSERT INTO Orders DEFAULT VALUES;

 

با اجرای کوئری فوق، یک رکور با مقادیر پیش‌فرض به جدول Orders درج می‌شود.

 

تعیین مقادیر پیش فرض

 

تراکنش ها (Transaction)

تراکنش (Transaction) در دستورات SQL Server، دنباله‌ای از یک یا چند دستور SQL است که به‌عنوان یک واحد کاری یکه اجرا می‌شوند. هدف از تراکنش‌ها، اطمینان از سازگاری (Consistency) و یکپارچگی (Integrity) داده‌ها در درون پایگاه داده است.

در حقیقت، به واسطه تراکنش‌ها، یک مکانیزم مناسب برای گروه‌بندی چند عملیات SQL به یک عملیات تجزیه‌‌ناپذیر یا همان Atomic فراهم خواهد شد. تراکنش‌ها این تضمین را می‌دهند که یا تمام تغییرات درون تراکنش اعمال می‌شوند یا هیچ کدام از آن‌ها اعمال نخواهند شد. این ویژگی «همه یا هیچ» در تراکنش‌ها، به هدف حفظ سازگاری پایگاه داده ارائه شده است. 

مثال زیر، نحوه ایجاد یک تراکنش و درج یک رکورد مشتری جدید به جدول آن را نمایش می‌دهد.

 

BEGIN TRANSACTION;

INSERT INTO Customers (CustomerID, CompanyName, ContactName, Country)
VALUES ('NEWC1', 'New Company', 'John Doe', 'USA');

COMMIT TRANSACTION;

 

تراکنش ها (Transaction)

 

استفاده از دستور Insert به صورت شرطی

با قید کردن شرط‌هایی در دستور Insert ، می‌توان داده‌های درج‌شونده را براساس معیارهای خاصی کنترل کرد. این عمل، هنگام فیلترینگ داده در حین درج آن کاربرد است. برای درک بهتر، به مثال زیر توجه کنید.

 

INSERT INTO Products (ProductName, CategoryID, SupplierID, UnitPrice)
SELECT 'Blueberry drink', CategoryID, 1, 10.99
FROM Categories
WHERE CategoryName = 'Beverages';

 

استفاده از دستور Insert به صورت شرطی

 

سخن پایانی

دستور Insert در SQL Server ، از Command های پایه به شمار می‌رود و استفاده از آن، مزیت‌های مخصوص به خود را به همراه دارد. در عمل، اموری همچون درج داده در جداول بانک اطلاعاتی، تخصیص مقدار به فیلدها استفاده در تراکنش‌ها و سایر موارد، همگی از کاربردهای دستور Insert تلقی می‌شوند. در این مطلب، به بررسی دقیق موارد استفاده دستور Insert در SQL Server پرداخته شد. به دلیل اهمیت دستورات SQL Server و کوئری‌نویسی در حوزه‌ها و دامنه‌های گوناگون علم کامپیوتر، در مقالات آتی، سایر دستورات آن را تشریح می‌کنیم. ما در نیک آموز منتظر نظرات ارزشمند شما درباره این مقاله هستیم.

چه رتبه ای می‌دهید؟

میانگین ۵ / ۵. از مجموع ۳

اولین نفر باش

title sign
دانلود مقاله
دستور Insert در SQL Server
فرمت PDF
7 صفحه
حجم 0/5 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
401 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link