آموزش

دستور INSERT در SQL

دستور INSERT در SQL برای اضافه کردن داده‌های جدید به یک جدول استفاده می‌شود. این دستور یکی از دستورات CRUD (ایجاد، خواندن، به‌روزرسانی، حذف) در SQL است که برای مدیریت داده‌ها در پایگاه‌های داده به کار می‌رود.

اجزای دستور INSERT:

  • INSERT INTO: نام جدول مورد نظر برای اضافه کردن داده‌ها را مشخص می‌کند.
  • (column_name1, column_name2, …): نام ستون‌هایی که می‌خواهید داده‌ها را در آنها درج کنید، لیست می‌کند.
  • VALUES (value1, value2, …): مقادیر مربوط به هر ستون را لیست می‌کند.

مثال:

SQL
INSERT INTO employees (name, age, department)
VALUES ("علی", 30, "فروش");

این دستور اطلاعات یک کارمند جدید با نام “علی”، سن 30 سال و دپارتمان “فروش” را به جدول employees اضافه می‌کند.

نکات:

  • ترتیب ستون‌ها در لیست column_name باید با ترتیب مقادیر در لیست VALUES مطابقت داشته باشد.
  • اگر می‌خواهید فقط برخی از ستون‌ها را با داده پر کنید، می‌توانید ستون‌های خالی را بدون مقدار رها کنید.
  • می‌توانید از NULL برای نشان دادن مقدار خالی در یک ستون استفاده کنید.
  • برای درج چندین رکورد به طور همزمان، می‌توانید از دستور INSERT INTO … SELECT استفاده کنید.

مثال1:

SQL
INSERT INTO employees (name, age, department)
SELECT name, age, department FROM new_employees;

این دستور تمام اطلاعات موجود در جدول new_employees را به جدول employees اضافه می‌کند.

گزینه‌های پیشرفته:

  • ON DUPLICATE KEY UPDATE: این گزینه به شما اجازه می‌دهد تا در صورت وجود رکوردی با کلید تکراری، مقادیر آن را به‌روزرسانی کنید.
  • IGNORE: این گزینه باعث می‌شود که اگر رکوردی با کلید تکراری وجود داشته باشد، دستور INSERT نادیده گرفته شود.

مثال2:

SQL
INSERT INTO employees (name, age, department)
VALUES ("علی", 30, "فروش")
ON DUPLICATE KEY UPDATE age = 31;

این دستور اطلاعات یک کارمند جدید با نام “علی” و سن 30 سال و دپارتمان “فروش” را به جدول employees اضافه می‌کند. اگر رکوردی با نام “علی” از قبل در جدول وجود داشته باشد، سن آن به 31 سال به‌روزرسانی می‌شود.

مثال جامع 3:

فرض کنید جدول زیر را برای ذخیره اطلاعات مشتریان داریم:

SQL
CREATE TABLE customers (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  phone_number VARCHAR(20) NOT NULL,
  address VARCHAR(255) NOT NULL,
  city VARCHAR(50) NOT NULL,
  postal_code VARCHAR(10) NOT NULL
);

مثال 1: اضافه کردن یک رکورد جدید

SQL
INSERT INTO customers (name, email, phone_number, address, city, postal_code)
VALUES ("علی احمدی", "ali.ahmadi@example.com", "09123456789", "خیابان آزادی", "تهران", "12345");

این دستور اطلاعات یک مشتری جدید با نام “علی احمدی” و … را به جدول customers اضافه می‌کند.

مثال 2: اضافه کردن چندین رکورد به طور همزمان

SQL
INSERT INTO customers (name, email, phone_number, address, city, postal_code)
VALUES
  ("مریم رضایی", "maryam.rezaei@example.com", "09387654321", "خیابان انقلاب", "تهران", "12346"),
  ("احمد محمدی", "ahmad.mohammadi@example.com", "09101234567", "خیابان ولیعصر", "مشهد", "56789");

این دستور اطلاعات دو مشتری جدید را به طور همزمان به جدول customers اضافه می‌کند.

مثال 3: به‌روزرسانی رکورد موجود

SQL
INSERT INTO customers (name, email, phone_number, address, city, postal_code)
VALUES ("علی احمدی", "ali.ahmadi@example.com", "09123456789", "خیابان آزادی", "تهران", "12345")
ON DUPLICATE KEY UPDATE email = "new_email@example.com";

این دستور اطلاعات یک مشتری جدید با نام “علی احمدی” و … را به جدول customers اضافه می‌کند. اگر رکوردی با نام “علی احمدی” از قبل در جدول وجود داشته باشد، آدرس ایمیل آن به “new_email@example.com” به‌روزرسانی می‌شود.

مثال 4: نادیده گرفتن رکورد تکراری

SQL
INSERT INTO customers (name, email, phone_number, address, city, postal_code)
VALUES ("علی احمدی", "ali.ahmadi@example.com", "09123456789", "خیابان آزادی", "تهران", "12345")
IGNORE;

اگر رکوردی با نام “علی احمدی” در جدول customers وجود داشته باشد، این دستور نادیده گرفته می‌شود و هیچ رکوردی اضافه نمی‌شود.

نکات:

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

 

نمایش بیشتر

نوشته‌های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا