دستور update در SQL – از کاربرد تا نحوه استفاده به زبان ساده

۷۰ بازدید
آخرین به‌روزرسانی: ۱۷ بهمن ۱۴۰۲
زمان مطالعه: ۷ دقیقه
دستور update در SQL – از کاربرد تا نحوه استفاده به زبان ساده

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

دستور UPDATE در SQL

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

  • مشخص کردن نام جدولی که عملیات روی داده‌های آن انجام خواهد شد.
  • ستون‌هایی که باید به‌روزرسانی شوند.
  • مقادیر جدید که باید مقادیر قدیمی شوند.
  • شرایطی که در عبارت WHERE می‌آیند تا مشخص کنند کدام رکوردها باید به‌روزرسانی شوند.

دستور UPDATE در SQL روش ساده‌ای برای به‌روزرسانی داده‌ها به‌وسیله تصحیح داده‌های غلط فراهم می‌کند. این کار را با حذف و اضافه کردن داده‌ها و تغییر مقادیر به‌صورت مستقیم درون جدول پایگاه داده انجام می‌دهد.

تصویری از طرح پایگاه داده با جداول و ستون‌ها، که عملیات به‌روزرسانی را برجسته می‌کند.

چگونه از دستور UPDATE در SQL استفاده کنیم؟

دستور UPDATE در SQL برای اصلاح یا تغییردادن رکوردهای موجود درون جدول بکار می‌رود. اگر بخواهیم که مقدار خواصی را «به‌روزرسانی» (UPDATE) کنیم باید از ماده WHERE همرا با ماده UPDATE استفاده کنیم. اگر از ماده WHERE استفاده نکنیم همه سطرها از این دستور تاثیر می‌گیرند و احتمال دارد نظم داده‌ها بهم بریزد. علاوه بر این، می‌توانیم از عبارت UPDATE بسته به نیازمان برای به‌روزرسانی یک یا چند ستون نیز استفاده کنیم.

سینتکس دستور UPDATE در SQL

برای ۳ هدف متفاوت برای این دستور می‌توان به سه روش کلی کوئری نوشت.

  1. عملیات به‌روزرسانی در یک جدول
  2. عملیات به‌روزرسانی جدولی به کمک جدول دیگر
  3. عملیات به‌روزرسانی بر روی چندین جدول متفاوت

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

فرم اول سینتکس در روش اول به‌صورت زیر است.

1UPDATE table_name
2SET col1=val1, col2=val2…
3[Where condition];

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

1UPDATE table_name
2SET col1=val1,
3    col2=val2,
4    ...
5[WHERE conditions];

از آنجا که کلمات UPDATE و SET و WHERE جزو کلمات کلیدی هستند از این کلمات عبور می‌کنیم و باقی پارامترها را توضیح می‌دهیم. کلمه table_name  اشاره به نام جدولی دارد که می‌خواهید داده‌های آن را به‌روزرسانی کنید. col1  ، col2  ، و ... ستون‌هایی هستند که برای به‌روزرسانی درنظر گرفته شده‌اند. پارامترهای val1  ، val2   و ... مقادیر جدیدی هستند که باید در مکان‌های نشان داده شده قرار بگیرند و بخش مربوط به شرط در عبارت WHERE  قرار دارد. در انتهای آن‌ها هم علامت نقطه ویرگول ;  قرار می‌گیرد.

روش دوم نوشتن دستور UPDATE در SQL مربوط به زمانی است که می‌خواهیم داده‌های جدولی را با کمک داده‌های جدول دیگری به‌روزرسانی کنیم. به کد نوشته شده در پایین نگاه کنید.

1UPDATE table1
2SET column1 = (SELECT expression1
3               FROM table2
4               WHERE conditions)
5[WHERE conditions];

و روش سوم نوشتن دستور UPDATE در SQL مربوط به وقتی است که می‌خواهیم داده‌های چندین جدول را در پایگاه داده به‌صورت همزمان به‌روزرسانی کنیم - این کار در پایگاه داده Oracle مجاز نیست. به کدی که در ادامه نوشته‌ایم دقت کنید.

1UPDATE table1, table2, ...
2SET column1 = expression1,
3    column2 = expression2,
4    ...
5WHERE table1.column = table2.column
6[AND conditions];

توضیحات لازم برای پارامترهای استفاده شده در دو روش بالا را در ادامه فهرست کرده‌ایم.

  • column1   و column2  : ستون‌هایی هستند که می‌خواهید داده‌های مربوط به آن‌ ستون‌ها را به‌روزرسانی کنید.
  • expression1   و expression2  : مقادیر جدیدی هستند که با داده‌های قبلی ستون‌های column1 و column2 باید جایگزین شوند و این کار را به ترتیب و منظم انجام می‌دهند.
  • عبارت WHERE  : وجود این بند در عبارت اختیاری است و شرایطی را تعیین می‌کند برای مشخص شدن ردیف‌هایی که باید به‌روزرسانی شوند. اگر عبارت WHERE استفاده نشود همه رکوردهای داخل جدول به‌روزرسانی خواهند شد.

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

مدیر پایگاه داده در کوهستان در حال کار با لپتاپ خویش است.

دستور UPDATE برای به روزرسانی جدول در SQL

در ادامه به به‌روزرسانی چند رکورد در جدول فرضی کارمندان employee  با استفاده از دستور UPDATE در SQL می‌پردازیم.

1UPDATE employee
2SET e_age=42
3WHERE e_name=’sam’;

بعد از نوشتن کوئری بالا بر روی دکمه «Execute» کلیک کنید تا وجود خطاهای احتمالی را بررسی کنید.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

وقتی که کوئری اجرا شد پیامی با این مضمون که «دستورات با موفقیت اجرا شدند» به صورت «Commands completed successfully» به نمایش درخواهد آمد.

دستور SELECT * from بر روی جدول کارمندان

در تصویر زیر اجرای دستور SELECT * from   را بر روی جدول کارمندان بررسی کرده‌ایم.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

با اجرای دستور بالا می‌توانیم نتیجه اجرای دستور UPDATE  را روی داده‌های داخل جدول ببینیم.

دستور UPDATE در SQL برای به روزرسانی یک ستون

در این بخش به کمک مثالی روش استفاده از دستور UPDATE در SQL برای به‌روزرسانی یک ستون را بررسی خواهیم کرد. در این مثال از دستور UPDATE  ، جدولی برای مشتریان به نام customers  با داده‌های فرضی آمده در پایین داریم.

favorite_websitefirst_namelast_namecustomer_id
techonthenet.comJoeJackson4000
digminecraft.comJaneSmith5000
bigactivities.comSamanthaFerguson6000
checkyourmath.comAllenReynolds7000
NULLPaigeAnderson8000
techonthenet.comDerekJohnson9000

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

1UPDATE customers
2SET first_name = 'Judy'
3WHERE customer_id = 8000;

الان فقط ۱ رکورد آپدیت شده است. همان‌طور که در کوئری زیر آمده، داده‌های جدول customers را دوباره با بکاربردن دستور SELECT  نگاه می‌کنیم.

1SELECT * FROM customers;

نتایجی که خواهید دید باید به‌صورت زیر باشند.

favorite_websitefirst_namelast_namecustomer_id
techonthenet.comJoeJackson4000
digminecraft.comJaneSmith5000
bigactivities.comSamanthaFerguson6000
checkyourmath.comAllenReynolds7000
NULLJudyAnderson8000
techonthenet.comDerekJohnson9000

در مثال بالا برای دستور UPDATE اول رکوردی که درآن customer_id  برابر 8000 است شناسایی می‌شود بعد مقدار رکورد را در ستون first_name  به «Judy» تغییر می‌کند.

دستور UPDATE در SQL برای به‌روزرسانی چندین ستون

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

1UPDATE EMPLOYEE
2SET Last_Name='KAPADIA',First_Name='MANISH'
3WHERE Employee_ID=7369

بعد از اینکه کوئری بالا را نوشتید بر روی دکمه «Execute» کلیک کنید تا خطاهای احتمالی را بررسی کنید. وقتی که کوئری اجرا شد، پیامی شبیه « 1row affected» به معنای اینکه عمل به‌روزرسانی روی یک ردیف اعمال شد، نشان داده ‌می‌شود.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

در ادامه این مطلب از مجله فرادرس به بررسی نتیجه اعمال کوئری بالا خواهیم پرداخت.

دستور SELECT * from بر روی جدول کارمندان

برای دیدن نتیجه کوئری دستور SELECT * from را بر روی جدول customers  اعمال می‌کنیم. الان می‌توانیم داده‌های به‌روزرسانی شده را در داخل جدول ببنیم.

«برای مشاهده تصویر در اندازه اصلی، روی آن کلیک کنید»

دستور UPDATE در SQL برای به‌روزرسانی چندین ردیف

به کمک این دستور می‌توان چندین ردیف را مانند یک ردیف به‌روزرسانی کرد. برای انجام این کار فقط باید کوئری را کمی توسعه دهیم. به کدی که به عنوان مثال در پایین آمده توجه کنید.

1UPDATE Employee
2SET Middle_Name 
3= CASE Employee_ID
4WHEN 7369 THEN 'A'
5WHEN 7499 THEN 'B'
6ELSE Middle_Name
7END
8WHERE Employee_ID IN(7369,7499);

بعد از اینکه کوئری بالا را نوشتیم بر روی دکمه «Execute» کلیک می‌کنیم تا خطاهای احتمالی را بررسی کنیم. وقتی که کوئری اجرا شد، پیامی شبیه «2rows affected» به معنای اینکه عمل به‌روزرسانی روی دو ردیف اعمال شد نشان داده ‌می‌شود.

پیاده سازی دستور UPDATE در SQL بروی 2 ردیف از جدول کارمندان

برای اینکه کد بالا و نحوه اجرای آن را درک کنیم به نتیجه اجرای کد باید نگاه کنیم.

دستور SELECT * from بر روی جدول کارمندان

با استفاده از دستور SELECT * from  بر روی جدول کارمندان می‌توان نتیجه عملیات UPDATE را در جدول دید.

می‌بینید که در دو ردیف فقط مقدار ستون Middle_Name  هر ردیف در بند WHEN  ازکوئری با شماره Employee_ID  مشخص شده و مقدار جدید بعد از عبارت THEN  آمده است.

به روزرسانی داده های جدولی با کمک داده های جدول دیگر

بعضی وقت‌ها نیاز داریم که مقدار زیادی داده‌ را از طریق جداول دیگر به‌روزرسانی کنیم. در اینجا مثالی از انجام این عملیات را پیاده‌سازی کرده‌ایم. در مثال UPDATE  که در ادامه آورده‌ایم، جدولی برای محصولات به‌نام products  با داده‌های زیر موجود است.

category_idproduct_name product_id
50Pear1
50Banana2
50Orange3
50Apple4
75Bread5
25Sliced Ham6
NULLKleenex7

و جدولی هم برای خلاصه اطلاعات محصول، یعنی تعداد هر محصول بر اساس شماره id به نام summary_data  داریم.

current_categoryproduct_id
101
102
103
104
105
108

می‌بینیم که اطلاعات جدول summary_data  غلط است و باید اصلاح شوند. بنابراین الان باید اطلاعات جدول summary_data  را با کمک اطلاعات جدول products  به‌روزرسانی کنیم. برای این کار از عبارت UPDATE  استفاده خواهیم کرد. به کوئری آمده در پایین از دستور UPDATE در SQL دقت کنید.

1UPDATE summary_data
2SET current_category = (SELECT category_id
3   FROM products
4   WHERE products.product_id = summary_data.product_id)
5WHERE EXISTS (SELECT category_id
6   FROM products
7   WHERE products.product_id = summary_data.product_id);

بر اثر دستور بالا ۵ رکورد به‌روزرسانی خواهند شد. یکبار دیگر به جدول summary_data  با کمک دستور زیر نگاهی می‌اندازیم.

1SELECT * FROM summary_data;

نتایجی که نشان داده می‌شوند به‌صورت زیر خواهند بود.

current_categoryproduct_id
501
502
503
504
755
108

در مثالی که دیدیم مقادیر current_category  از جدول summary_data  توسط اطلاعات مقادیر category_id  از جدول products  به‌روزرسانی خواهند شد، به شرطی که مقادیر product_id  در هر دو جدول برابر باشد. در نتیجه ۵ رکورد اول از جدول summary_data  اصلاح شده‌اند.

توجه کنید که عبارت UPDATE  شامل شرط EXISTS  در بند WHERE  شده است تا قبل از شروع به UPDATE کردن داده‌ها، تضمین کند که product_id  مشترکی بین هر دو جدول products و summary_data وجود داشته باشد.

اگر در این کوئری شرط EXISTS را لحاظ نمی‌کردیم، کوئری UPDATE ستون current_category را با مقدار NULL در ردیف ششم از جدول summary_data به‌روزرسانی کرده بود. زیرا جدول products رکوردی نداشت که در آن product_id برابر با 8 باشد.

پرسنل در حال تصور فرایند کار با داده ها در SQL هستند.

سوالات متداول

در این بخش به بررسی چند سوال می‌پردازیم که بین کاربران بیشترین پرسش را داشته‌اند. شاید برای شما هم پیش آمده‌اند.

کاربرد دستور UPDATE در SQL چیست؟

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

آیا از دستور UPDATE هم می توان برای وارد کردن داده در SQL استفاده کرد؟

دستور UPDATE در SQL داده‌هایی را که در قبل از پایگاه داده موجود بودند را تغییر می‌دهد و دستور INSERT برای وارد کردن داده‌های جدید در جدول کاربرد دارد اما دستوری وجود دارد به نام UPSERT که ترکیبی از دستورهای UPDATE و INSERT است. از این دستور می‌توان هم برای به‌روزرسانی رکورد و هم وارد کردن رکورد در جدول استفاده کرد.

جمع بندی

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

دانشجویان و افرادی که به دلایل شغلی به کار با پایگاه‌های داده می‌پردازند باید مهارت خود را در استفاده از دستورات اصلی SELECT و INSERT و DELETE و UPDATE و غیره افزایش دهند تا بتوانند به بهترین روش از پس مسئولیت‌های خود برآیند.

بر اساس رای ۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
IntelliPaatTechOnTheNettutorialspointpurestorage
نظر شما چیست؟

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