دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
توابع منطقی در SQL Server
1403/10/16 -
تخریب کننده ها (destructors) در سی شارپ
1403/10/15 -
توابع مدیریت تاریخ و زمان در SQL Server
1403/10/15 -
کلمه کلیدی this در سی شارپ
1403/10/14 -
توابع MAX و MIN در پایگاه داده SQL
1403/10/14
دستور INSERT در SQL Server
دستور INSERT در SQL Serve
دستور INSERT در SQL Server برای افزودن رکوردهای جدید به جداول پایگاه داده به کار میرود و امکان وارد کردن مقادیر به تمامی ستونها یا فقط برخی از ستونهای یک جدول را فراهم میکند.
در این دستور، مقادیر باید مطابق با نوع داده و ترتیب تعریفشده برای ستونها در جدول باشند.
اگر برای ستونی مقداری تعیین نشود، مقدار پیشفرض آن (در صورت وجود) یا NULL استفاده میشود.
استفاده از دستور INSERT به دو روش امکانپذیر است: یکی وارد کردن داده برای تمامی ستونها و دیگری وارد کردن داده فقط برای ستونهای مشخصشده.
یکی از کاربردهای اصلی این دستور، افزودن اطلاعات جدید به جداول پس از تعریف ساختار آنها است.
همچنین میتوان این دستور را برای وارد کردن داده از جداول دیگر با استفاده از دستور INSERT INTO SELECT ترکیب کرد.
این انعطافپذیری، دستور INSERT را به یکی از پرکاربردترین دستورات SQL Server برای مدیریت دادهها تبدیل کرده است.
رعایت اصول تطابق دادهها با ساختار جدول، به ویژه در جداولی که محدودیتهایی مانند کلید اصلی یا مقادیر غیرتکراری دارند، برای موفقیت عملیات ضروری است
ساختار دستور INSERT
فرم کلی دستور INSERT به این شکل است:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
اجزای دستور
table_name: نام جدول هدف برای وارد کردن دادهها.
column1, column2, ...: ستونهایی که مقادیر در آنها وارد میشود.
value1, value2, ...: مقادیری که به ستونهای جدول اختصاص مییابند.
درج یک سطر (Single Row Insert)
در این حالت، فقط یک سطر داده به جدول اضافه میشود.
مثال:
فرض کنید جدولی به نام Employees با ساختار زیر داریم:
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name NVARCHAR(50),
Department NVARCHAR(50),
HireDate DATE
);
درج یک رکورد
INSERT INTO Employees (EmployeeID, Name, Department, HireDate)
VALUES (1, 'Ali Rezaei', 'IT', '2023-12-01');
نکات
ستونهایی که مقادیر برای آنها مشخص نشده، باید مقدار پیشفرض (Default) یا NULL داشته باشند.
مقدار ستون کلید اصلی (Primary Key) باید یکتا باشد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
دستور Multirow Insert در SQL Server
در SQL Server، میتوانید چندین سطر را به صورت همزمان وارد کنید. این روش سریعتر از اجرای چندین دستور INSERT جداگانه است.
مثال:
INSERT INTO Employees (EmployeeID, Name, Department, HireDate)
VALUES
(2, 'Sara Ahmadi', 'Finance', '2023-11-20'),
(3, 'Hossein Karimi', 'HR', '2023-10-15'),
(4, 'Maryam Nikpour', 'IT', '2023-12-05');
مزایا دستور Multirow Insert در SQL Server
-
کاهش تعداد دستورات ارسال شده به سرور.
-
بهبود عملکرد در بارگذاری دادههای حجیم.
درج با استفاده از SELECT
میتوانید دادهها را از یک جدول دیگر یا کوئری، به یک جدول جدید وارد کنید.
مثال:
فرض کنید جدولی به نام NewEmployees داریم:
CREATE TABLE NewEmployees (
EmployeeID INT PRIMARY KEY,
Name NVARCHAR(50),
Department NVARCHAR(50),
HireDate DATE
);
درج دادهها از جدول Employees
INSERT INTO NewEmployees (EmployeeID, Name, Department, HireDate)
SELECT EmployeeID, Name, Department, HireDate
FROM Employees
WHERE Department = 'IT';
کاربرد:
-
انتقال دادهها بین جداول.
-
ایجاد نسخه پشتیبان از دادهها.
انواع درج در SQL Server
-
درج مقادیر ثابت (Static Values Insert)
دادهها به صورت مستقیم در دستور INSERT نوشته میشوند.
مثال:
INSERT INTO Employees (EmployeeID, Name, Department)
VALUES (5, 'Nima Salari', 'Marketing');
-
درج با انتخاب (Insert with SELECT)
دادهها از یک جدول دیگر استخراج و وارد جدول جدید میشوند.
مثال:
INSERT INTO NewEmployees (EmployeeID, Name, Department)
SELECT EmployeeID, Name, Department
FROM Employees
WHERE HireDate > '2023-01-01';
-
درج مقادیر پیشفرض (Insert Default Values)
اگر ستونهایی مقدار پیشفرض داشته باشند، میتوانید فقط نام جدول را بنویسید.
مثال:
INSERT INTO Employees DEFAULT VALUES;
-
درج خروجی یک دستور (Insert with OUTPUT)
از دستور OUTPUT برای مشاهده دادههای وارد شده استفاده میشود.
مثال:
INSERT INTO Employees (EmployeeID, Name, Department)
OUTPUT INSERTED.EmployeeID, INSERTED.Name
VALUES (6, 'Arman Hosseini', 'Sales');
مدیریت خطاها در دستور INSERT
-
استفاده از TRY...CATCH
میتوانید خطاهای احتمالی را با استفاده از بلوکهای TRY...CATCH مدیریت کنید.
BEGIN TRY
INSERT INTO Employees (EmployeeID, Name, Department)
VALUES (7, 'Zahra Jafari', 'IT');
END TRY
BEGIN CATCH
PRINT 'An error occurred: ' + ERROR_MESSAGE();
END CATCH;
-
اطمینان از موفقیت عملیات
با استفاده از @@ROWCOUNT میتوانید تعداد سطرهای وارد شده را بررسی کنید.
INSERT INTO Employees (EmployeeID, Name, Department)
VALUES (8, 'Mehdi Hashemi', 'Support');
IF @@ROWCOUNT = 1
PRINT 'Record inserted successfully!';
محدودیتها و نکات مهم
-
نوع دادهها
دادههای وارد شده باید با نوع دادههای ستونها مطابقت داشته باشند. -
کلید اصلی
مقدار کلید اصلی باید یکتا باشد. -
ستونهای غیرقابل مقداردهی
ستونهایی مانند IDENTITY به طور خودکار مقداردهی میشوند و نیازی به ذکر آنها نیست. -
عملیات انبوه (Bulk Insert)
برای وارد کردن حجم بالایی از دادهها، از ابزارهایی مانند BULK INSERT یا SSIS استفاده کنید.
عملیات پیشرفته INSERT
-
استفاده از ستونهای محاسباتی
میتوانید از توابع SQL برای محاسبه مقادیر قبل از درج استفاده کنید.
INSERT INTO Employees (EmployeeID, Name, Department, HireDate)
VALUES (9, 'Lila Majidi', 'IT', GETDATE());
-
استفاده از جداول موقت
ابتدا دادهها را در یک جدول موقت وارد کرده و سپس به جدول اصلی انتقال دهید.
CREATE TABLE #TempEmployees (
EmployeeID INT,
Name NVARCHAR(50),
Department NVARCHAR(50)
);
INSERT INTO #TempEmployees (EmployeeID, Name, Department)
VALUES (10, 'Hadi Motamed', 'HR');
INSERT INTO Employees (EmployeeID, Name, Department)
SELECT * FROM #TempEmployees;
DROP TABLE #TempEmployees;
بهینهسازی عملیات INSERT
-
استفاده از تراکنشها
با استفاده از BEGIN TRANSACTION و COMMIT میتوانید از کامل بودن عملیات اطمینان حاصل کنید.
BEGIN TRANSACTION;
INSERT INTO Employees (EmployeeID, Name, Department)
VALUES (11, 'Shirin Bahrami', 'Finance');
COMMIT;
-
استفاده از شاخصها (Indexes)
حذف شاخصها قبل از عملیات حجیم و بازسازی آنها پس از درج داده، میتواند عملکرد را بهبود دهد. -
استفاده از Bulk Insert
برای دادههای حجیم، BULK INSERT یک روش سریع است.
BULK INSERT Employees
FROM 'C:\data\employees.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
مثال پروژه محور از دستور INSERT در SQL Server
پروژه: ثبت اطلاعات کاربران جدید در جدول
ایجاد یک جدول برای کاربران و وارد کردن اطلاعات جدید آنها
-
ایجاد جدول کاربران
CREATE TABLE Users (
UserID INT IDENTITY(1,1) PRIMARY KEY,
UserName NVARCHAR(50) NOT NULL,
Email NVARCHAR(100) NOT NULL,
RegistrationDate DATE DEFAULT GETDATE()
);
-
درج اطلاعات یک کاربر جدید
INSERT INTO Users (UserName, Email)
VALUES ('Ali Rezaei', 'ali.rezaei@example.com');
-
مشاهده اطلاعات کاربران
SELECT * FROM Users;
توضیح:
جدول Users شامل ستونهای UserID (کلید اصلی)، UserName، Email و تاریخ ثبتنام (RegistrationDate) است.
اطلاعات یک کاربر جدید وارد جدول میشود.
در نهایت، تمامی کاربران جدول نمایش داده میشوند.
دوره های مرتبط
آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .