آموزش دستور UPDATE در SQL

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

دستور UPDATE

فراخوانید دستور UPDATE در حالت کلی به شکل زیر است:

وارد کردن نام جدول و نام فیلد و مقدار جدید برای فیلد الزامی است. وارد کردن شرط به‌روزرسانی هرچند الزامی نیست ولی اگر آن را وارد نکنید تمام ردیف‌های جدول به‌روزرسانی می‌شوند که احتمالا انتظار آن را نداشته باشید.

برای مثال کدهای زیر نام دانش‌آموز با شناسه‌ی ۱۰ را به علی تغییر می‌دهد:

اگر نام فیلدها دارای کلمات کلیدی باشند. با قرار دادن آن‌ها در میان دو علامت backtick از رخداد مشکل جلوگیری می‌کنیم:

با درج چند نام فیلد می‌توانید چند ستون را به صورت همزمان به‌روزرسانی کنید:

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

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

به‌روزرسانی بر اساس مقدار فیلدهای دیگر

در عبارت UPDATE می‌توانید از مقدار فیلدهای دیگر برای به‌روزرسانی یک فیلد دیگر یا همان فیلد استفاده کنید. برای مثال پس از یک سال می‌توانیم سن تمام دانش‌آموزان را یک سال اضافه کنیم:

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

به‌روزرسانی همزمان روی چند جدول

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

فرض کنید دو جدول دانش‌آموزان و مدارس به شکل زیر هستند:

students
id school_id fname lname city
1 1 علی پیروز
2 2 آرش نامدار
schools
id name city
1 دکتر حسابی شیراز
2 فرزانگان تهران

کدهای بالا نام شهر دانش‌آموزانی که شهر آن‌ها خالی است را بر اساس شهر مدرسه‌ای که در آن تحصیل می‌کنند، به‌روزرسانی می‌کند. نتیجه‌ی فراخوانی دستور بالا به صورت زیر خواهد بود:

students
id school_id fname lname city
1 1 علی پیروز شیراز
2 2 آرش نامدار تهران

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

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