دستور UPDATE این امکان را به شما میدهد تا بتوانید، دادههای مورد نظرتان را تغییر دهید. برای مثال از جدول PERSON استفاده میکنیم.
SELECT *
FROM PERSON;
NAME FAMILY AGE ID_PERSON
---------- ------------ ------------ -----------
MOHAMMAD GHAFFARI 23 1
MAHDI GHAFFARI 21 2
MOHSEN GHAFFARI 19 3
FARZAD KARKHANI 25 4
EHSAN JALALI 23 5
حال با استفاده از دستور UPDATE، افرادی را که نام آنها EHSAN میباشد را تغییر، و ALI را جایگزین آن مینماییم.
UPDATE PERSON
SET NAME = 'ALI';
WHERE NAME = 'EHSAN';
1 row updated.
جدول PERSON را مشاهده کنید.
SELECT *
FROM PERSON;
NAME FAMILY AGE ID_PERSON
---------- ------------ ------------ -----------
MOHAMMAD GHAFFARI 23 1
MAHDI GHAFFARI 21 2
MOHSEN GHAFFARI 19 3
FARZAD KARKHANI 25 4
ALI JALALI 23 5
دستور UPDATE افرادی را که نام آنها EHSAN میباشد را پیدا، سپس به جای آن ALI را قرار دادهاست.
مثال۲:
میخواهیم نام افرادی را که فامیل آنها GHAFFARI است را تغییر داده، و به جای آنها، نام REZA را قرار دهیم.
UPDATE PERSON
SET NAME = 'REZA'
WHERE FAMILY = 'GHAFAFRI';
2 rows updated.
عمل UPDATE انجام شد. حال جدول PERSON را مشاهده کنید.
SELECT *
FROM PERSON;
NAME FAMILY AGE ID_PERSON
---------- ------------ ------------ -----------
REZA GHAFFARI 23 1
REZA GHAFFARI 21 2
REZA GHAFFARI 19 3
FARZAD KARKHANI 25 4
ALI JALALI 23 5
همانگونه که انتظارش را داشتیم، به جای نام تمامی افرادی که FAMILY آنها GHAFAFRI بود، REZA قرار گرفته است.
مثال۳:
فرض کنید شما فروشگاهی دارید که، قیمت اجناس آن را در جدول ORDERS درج کردهاید. محتوای جدول ORDERS را مشاهده کنید.
SELECT *
FROM ORDERS;
PARTNUM DATE COST
---------- ------------- -----------
56 02-MAY-90 500
58 11-APR-90 750
96 14-APR-91 653
23 27-JUN-90 80
66 10-MAY-89 350
45 04-MAY-89 652
85 10-MAY-91 468
7 rows selected.
اینک بنا به تورم و بالا رفتن قیمت اجناس، مجبور به تغییر قیمتها و درج قیمت جدید میباشید. برای رفع این مشکل بهترین راه استفاده از دستور UPDATE است.
UPDATE ORDERS
SET COST = (COST*20/100) + COST;
7 rows updated.
حال تغییرات اعمال گردیده است. برای مشاهده تغییرات دستور زیر را تایپ نمایید.
SELECT *
FROM ORDERS;
PARTNUM DATE COST
---------- ------------- -----------
56 02-MAY-90 600
58 11-APR-90 900
96 14-APR-91 784
23 27-JUN-90 96
66 10-MAY-89 420
45 04-MAY-89 782
85 10-MAY-91 562
7 rows selected.
همانگونه که در نتایج فوق مشاهده کردید تمام دادههای فیلد COST تغییر کردهاند.