📞 02166056460

دستور Insert در sql

8 / 10
از 10 کاربر
بازگشت به لیست مقالات » | شنبه 2 آبان 1405 در ساعت 16 و 50 دقیقه | نظرات کاربران ( 2 )

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

آموزش SQL

دستور Insert در اسکیوال

افزودن رکورد به جدول با ساختار صحیح و مثال های کاربردی
۰۱

دستور Insert چیست و چه کاری انجام می دهد؟

دستور Insert یکی از دستورهای اصلی SQL برای افزودن یک یا چند رکورد جدید به جدول پایگاه داده است. هر رکورد از مقدارهایی تشکیل می شود که در ستون های جدول ذخیره می شوند؛ برای نمونه، در جدول دانشجویان ممکن است نام، نام خانوادگی و شماره دانشجویی نگهداری شود.

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

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

۲ الگو
روش اصلی درج رکورد
۱ جدول
مقصد ثبت داده
۱ رکورد
خروجی نمونه

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

۰۲

روش اول: درج مقدار برای همه ستون ها

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

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

INSERT INTO table_name
VALUES (value1, value2, value3);

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

۰۳

روش دوم: مشخص کردن نام ستون ها

در روش دوم، نام ستون های مقصد را داخل پرانتز و پس از نام جدول می نویسیم. سپس مقدارهای متناظر را با همان ترتیب در بخش VALUES قرار می دهیم. کاما میان نام ستون ها و میان مقدارها، هر مورد را از مورد بعدی جدا می کند.

این شکل از دستور Insert معمولاً خواناتر و قابل نگهداری تر است؛ چون مشخص می کند هر مقدار برای کدام ستون در نظر گرفته شده است. همچنین اگر ستونی مقدار پیش فرض داشته باشد یا اجازه خالی ماندن آن وجود داشته باشد، می توان آن ستون را از فهرست حذف کرد.

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

نکته مهم این است که تعداد ستون های نوشته شده و تعداد مقدارهای واردشده باید با هم برابر باشد. علاوه بر این، ترتیب هر مقدار باید با ستون هم جایگاه آن هماهنگ باشد. برای نمونه، مقدار نام باید در مقابل ستون نام و مقدار نام خانوادگی در مقابل ستون نام خانوادگی قرار بگیرد.

📌

نام ستون ها

ستون های مقصد را به ترتیب مورد نظر در پرانتز بنویسید.

✅

مقدارهای متناظر

هر مقدار باید با ستون هم جایگاه خود مطابقت داشته باشد.

⚙️

نوع داده

مقدار ورودی باید با نوع داده ستون سازگار باشد.

۵ نکته مهم درباره دستور Insert در اسکیوال

۰۴

۱. نام ستون ها را صریح مشخص کنید

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

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

INSERT INTO Student (Name, Family)
VALUES ('Saeed', 'Rajabi');
۰۵

۲. تعداد ستون ها و مقدارها را برابر نگه دارید

در دستور دارای فهرست ستون، هر ستون باید یک مقدار متناظر داشته باشد. برای نمونه، اگر سه نام ستون تعیین شده باشد، بخش VALUES نیز باید سه مقدار داشته باشد. کمتر یا بیشتر بودن تعداد مقدارها معمولاً باعث خطای اجرا می شود.

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

۰۶

۳. مقدارهای متنی را درست بنویسید

در بیشتر سامانه های پایگاه داده، مقدارهای متنی در دستور SQL با کوتیشن تکی نوشته می شوند. برای مثال، نام یک دانشجو را می توان به شکل 'Saeed' وارد کرد. مقدارهای عددی معمولاً بدون کوتیشن نوشته می شوند، اما رفتار دقیق به نوع ستون و سامانه پایگاه داده بستگی دارد.

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

۰۷

۴. مقدار پیش فرض و Null را از هم تشخیص دهید

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

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

۰۸

۵. نوع داده و محدودیت های جدول را بررسی کنید

هر ستون معمولاً نوع داده و محدودیت هایی دارد؛ برای نمونه، ستون عددی عدد می پذیرد و یک ستون اجباری نمی تواند بدون مقدار باقی بماند. محدودیت کلید اصلی نیز می تواند مانع ثبت مقداری شود که قبلاً در جدول وجود دارد.

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

مزایای درج اصولی داده

کد روشن و مطمئن

چند نتیجه کاربردی از انتخاب روش درست
۰۱
خوانایی

تشخیص ستون مقصد

نام ستون، مقصد هر مقدار را روشن می کند.

۰۲
نگهداری

کاهش وابستگی به ترتیب

تغییر چیدمان ستون ها کمتر مشکل ساز می شود.

۰۳
کنترل

مدیریت مقدارها

مقدارهای ارسالی را می توان دقیق بررسی کرد.

۰۴
پیشگیری

کاهش خطاهای درج

هماهنگی ستون و مقدار ساده تر می شود.

مشکل: دستور اجرا نمی شود یا رکورد ثبت نمی شود

۰۹

علائم

  • پایگاه داده هنگام اجرا پیام خطا نمایش می دهد.
  • رکورد جدید در جدول دیده نمی شود.
  • مقدارها در ستون مورد انتظار قرار نمی گیرند.
  • خطا به نوع داده یا محدودیت ستون اشاره می کند.
۱۰

ریشه یابی

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

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

۱۱

راه حل گام به گام

  1. نام جدول را با نامی که در پایگاه داده تعریف شده مقایسه کنید.
  2. نام ستون های نوشته شده در دستور را بررسی کنید.
  3. تعداد ستون ها و مقدارهای بخش VALUES را با هم تطبیق دهید.
  4. ترتیب مقدارها را با ترتیب نام ستون ها هماهنگ کنید.
  5. نوع هر مقدار را با نوع داده ستون مقصد بسنجید.
  6. مقدار ستون های اجباری و محدودیت های یکتا را بررسی کنید.
  7. پس از اصلاح، دستور را در محیط آزمایشی اجرا و نتیجه را کنترل کنید.
۱۲

راه حل جایگزین موقت

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

🔍

نام جدول

نام جدول را با تعریف پایگاه داده تطبیق دهید.

📊

تعداد مقدارها

برای هر ستون مشخص شده، یک مقدار متناظر در نظر بگیرید.

🛡️

محدودیت جدول

اجباری بودن، یکتا بودن و نوع داده را کنترل کنید.

توسعه وب

پایگاه داده در پروژه های وب

در پروژه های مرتبط با طراحی سایت، آشنایی با SQL و درج امن داده ها می تواند به درک بهتر ارتباط برنامه و پایگاه داده کمک کند.

مشاهده طراحی سایت ←

مقایسه دو شکل رایج دستور

۱۳

کدام روش مناسب تر است؟

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

معیار بدون نام ستون با نام ستون
خوانایی کمتر، به ویژه در جدول های بزرگ بیشتر و روشن تر
وابستگی به ترتیب جدول زیاد کمتر
حذف ستون های دارای مقدار پیش فرض محدود امکان پذیر، با رعایت تعریف جدول
پیشنهاد برای کد روزمره برای موارد ساده گزینه مناسب تر در بیشتر موقعیت ها
۱۴

مثال کامل برای جدول دانشجویان

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

INSERT INTO Student (Name, Family)
VALUES ('Saeed', 'Rajabi');

در این مثال، مقدار 'Saeed' در ستون Name و مقدار 'Rajabi' در ستون Family ذخیره می شود. ستون های دیگر جدول، اگر وجود داشته باشند، بر اساس تعریفشان مقدار پیش فرض می گیرند، خالی می مانند یا ممکن است باعث خطا شوند.

چگونه از خطاهای درج در آینده جلوگیری کنیم؟

۱۵

چک لیست پیش از اجرای دستور

  • نام جدول و ستون ها را با ساختار واقعی پایگاه داده تطبیق دهید.
  • تا حد امکان نام ستون ها را در دستور درج مشخص کنید.
  • تعداد و ترتیب ستون ها را با مقدارهای بخش VALUES بررسی کنید.
  • نوع داده، مقدارهای اجباری، مقدار پیش فرض و محدودیت یکتا را در نظر بگیرید.
  • دستورهای وابسته به ورودی کاربر را با روش های امن و پارامتری اجرا کنید.
۱۶

نتیجه گیری

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

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

سوالات متداول دستور Insert در اسکیوال

دستور Insert در SQL برای چه کاری استفاده می شود؟

این دستور برای افزودن رکورد جدید به یک جدول پایگاه داده استفاده می شود. با عبارت INSERT INTO جدول مقصد و با عبارت VALUES مقدارهای مورد نظر را مشخص می کنید.

آیا نوشتن نام ستون ها در دستور Insert ضروری است؟

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

اگر برای یک ستون مقداری وارد نکنم چه اتفاقی می افتد؟

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

چرا تعداد ستون ها و مقدارها باید برابر باشد؟

هر مقدار باید به یک ستون مشخص اختصاص پیدا کند. برابر نبودن تعداد موارد یا رعایت نکردن ترتیب، رابطه میان ستون ها و مقدارها را به هم می زند و معمولاً باعث خطای اجرای دستور می شود.

برای درج داده متنی از چه کوتیشنی استفاده کنم؟

در بسیاری از پایگاه های داده، مقدار متنی با کوتیشن تکی نوشته می شود؛ مانند 'Saeed'. برای داده های دریافتی از کاربر در برنامه ها، از پارامترهای امن استفاده کنید و مقدار ورودی را مستقیم به متن دستور SQL نچسبانید.

با اصول درج داده در SQL شروع کنید

نام ستون ها، ترتیب مقدارها و محدودیت های جدول را بررسی کنید تا رکوردها دقیق و قابل اعتماد ذخیره شوند.

مرور دستور Insert ←
ارسال نظر و نظرات ثبت شده
کتایون :
3 2
واقعا ممنون مطالب مفیدی دارید . میخواستم بدونم اگر نخوایم خود برنامه نویس با کد رکورد اضافه کنه با مثلا همون سعید رجبی (مثال خودتون) و بخوایم کاربر اطلاعات جدول رو پر کنه ، کد ب شکلی در میاد؟
:
24 0
مثال های بیشتری زده بشه بهتره
سایر مقالات
دستور Delete در sql دستور DELETE در SQL؛ آموزش حذف رکورد از جدول 💡آشنایی با حذف داده‌ها دستور DELETE در ...
دستور Update در sql دستور Update در SQL چیست و چه کاربردی دارد؟ 💡آشنایی با به روزرسانی داده ها دستور Update در ...
دستور Insert در sql دستور Insert در اسکیوال برای افزودن رکورد به جدول به کار می رود. در این راهنما با شیوه نوشتن دستور، ...
دستور مرتب سازی Order By در sql دستور ORDER BY در SQL چیست و چه کاربردی دارد؟ 💡مرتب سازی خروجی کوئری دستور ORDER BY در SQL ...
دستور Group By در sql آموزش SQL دستور GROUP BY در SQL؛ آموزش گروه بندی و مثال کاربردی یاد بگیرید داده ها را ...
دستور شرطی Having در sql دستور Having در SQL برای فیلتر کردن نتیجه گروه بندی و اعمال شرط روی مقادیر محاسبه شده با توابعی مانن ...
عملگر های And و Or در SQL آموزش SQL عملگرهای AND و OR در SQL؛ راهنمای ترکیب شرط ها با مثال های کاربردی، تفاوت AND و ...
دستور شرطی WHERE در sql دستور WHERE در SQL چیست و چه کاربردی دارد؟ 🔎فیلتر کردن نتیجه ها دستور WHERE در SQL برای تعی ...
دستور SELECT DISTINCT در sql دستور SELECT DISTINCT در SQL چیست و چه کاربردی دارد؟ 💡آشنایی با حذف تکرارها در پایگاه داده، ...
دستور SELECT در sql دستور SELECT در SQL چیست و چه کاربردی دارد؟ 💡آشنایی با بازیابی داده ها دستور SELECT در SQL ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید