مقدمه (Introduction)
زبان Structured Query Language که بیشتر با نام SQL شناخته میشود، انعطافپذیری بالایی در روشهای درج داده در جدولها فراهم میکند. برای مثال، میتوانید با استفاده از کلمه کلیدی VALUES ردیفهای داده را بهصورت دستی وارد کنید، با استفاده از کوئریهای SELECT مجموعهای از دادهها را از جدولهای دیگر کپی کنید، یا ستونهایی تعریف کنید که SQL بهصورت خودکار دادهها را در آنها درج کند.
در این راهنما، بررسی میکنیم که چگونه با استفاده از سینتکس INSERT INTO در SQL، دادهها را به روشهای مختلف به جدولها اضافه کنیم.
پیشنیازها (Prerequisites)
برای دنبال کردن این راهنما به موارد زیر نیاز دارید:
-
یک سیستم مدیریت پایگاه داده رابطهای (RDBMS) که از SQL پشتیبانی کند
-
مثالها و دستورات این آموزش در محیط زیر بررسی شدهاند:
-
سروری با Ubuntu 20.04
-
یک کاربر non-root با دسترسی مدیریتی و فایروال فعال (UFW)
-
MySQL نصب و ایمنسازیشده روی سرور
-
یک کاربر non-root در MySQL
-
توجه: بسیاری از RDBMSها پیادهسازی مخصوص به خود از SQL را دارند. اگرچه دستورات این آموزش در اغلب سیستمها کار میکنند، اما ممکن است سینتکس یا خروجی در دیتابیسهایی غیر از MySQL کمی متفاوت باشد.
همچنین به یک دیتابیس و جدول نمونه نیاز دارید تا بتوانید درج دادهها را تمرین کنید. اگر چنین ساختاری ندارید، میتوانید بخش «اتصال به MySQL و ساخت دیتابیس نمونه» را دنبال کنید.
اتصال به MySQL و ساخت دیتابیس نمونه
اگر دیتابیس SQL شما روی یک سرور راه دور اجرا میشود، ابتدا از طریق SSH به سرور متصل شوید:
سپس وارد محیط MySQL شوید (بهجای sammy نام کاربر MySQL خود را قرار دهید):
ایجاد دیتابیس با نام insertDB:
در صورت موفقیت، خروجی مشابه زیر دریافت میکنید:
انتخاب دیتابیس:
ساخت جدول نمونه
فرض کنید مالک یک کارخانه هستید و میخواهید اطلاعات کارکنان را ذخیره کنید. جدول موردنظر دارای ستونهای زیر است:
-
name: نام کارمند (varchar با حداکثر ۳۰ کاراکتر)
-
position: عنوان شغلی (varchar با حداکثر ۳۰ کاراکتر)
-
department: بخش محل کار (varchar با حداکثر ۲۰ کاراکتر)
-
hourlyWage: دستمزد ساعتی (decimal با فرمت 4,2)
-
startDate: تاریخ شروع به کار (date با فرمت YYYY-MM-DD)
ساخت جدول:
درج دستی دادهها (Inserting Data Manually)
سینتکس کلی درج داده در SQL به شکل زیر است:
مثال: درج یک ردیف داده در جدول factoryEmployees:
ترتیب ستونها مهم نیست، اما ترتیب مقادیر باید دقیقاً با ترتیب ستونها هماهنگ باشد. در غیر این صورت، دادهها اشتباه درج میشوند یا خطا رخ میدهد.
مثال درج با ترتیب متفاوت ستونها:
اگر نوع دادهها با ستونها سازگار نباشد، خطا دریافت خواهید کرد:
درج ناقص ستونها
لازم نیست برای همه ستونها مقدار وارد کنید. اگر ستونی محدودیت NOT NULL نداشته باشد، مقدار آن بهصورت NULL درج میشود:
اگر برای تمام ستونها مقدار وارد میکنید، میتوانید نام ستونها را حذف کنید (به شرط رعایت ترتیب تعریف جدول):
درج چند ردیف بهصورت همزمان
کپی داده با SELECT
میتوانید دادهها را از یک جدول به جدول دیگر با SELECT منتقل کنید:
مثال: ساخت جدول جدید showroomEmployees:
کپی داده از جدول قبلی:
هر بار اجرای این دستور، دادهها را دوباره درج میکند و ممکن است باعث ایجاد دادههای تکراری شود.
درج خودکار دادهها (AUTO_INCREMENT و DEFAULT)
برخی ستونها میتوانند بهصورت خودکار مقداردهی شوند:
درج داده بدون مشخصکردن ستونهای خودکار:
در این حالت، مقدار internID بهصورت خودکار افزایش مییابد و مقدار department برابر مقدار پیشفرض قرار میگیرد.
استفاده از مقدار پیشفرض بهصورت دستی:
جمعبندی (Conclusion)
در این آموزش یاد گرفتید:
-
چگونه با VALUES دادهها را بهصورت دستی درج کنید
-
چگونه با SELECT دادهها را از جدولهای دیگر کپی کنید
-
چگونه از AUTO_INCREMENT و DEFAULT برای درج خودکار داده استفاده کنید
اگرچه این دستورات در اکثر دیتابیسها کار میکنند، اما هر RDBMS پیادهسازی مخصوص خود را دارد. برای جزئیات بیشتر، همیشه به مستندات رسمی دیتابیس خود مراجعه کنید.
از همراهی شما با پارمین کلود متشکریم.
نظرات کاربران