Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore การเปลี่ยนแปลงข้อมูลด้วยคำสั่ง Transform

การเปลี่ยนแปลงข้อมูลด้วยคำสั่ง Transform

Published by natnatnat988, 2018-01-25 23:18:49

Description: การเปลี่ยนแปลงข้อมูลด้วยคำสั่ง Transform

Search

Read the Text Version

ดว้ ยคาส่ัง UPDATE คุณสามารถเปลี่ยนคา่ ของคอลมั นไ์ ด้มากกวา่ หนงึ่ ค่าในแต่ละแถว ซึง่ ตรงตามเง่อื นไขการคน้ หาของคาสง่ั ย่อย WHERE ผลลพั ธข์ องคาส่งั UPDATE จะมีคา่คอลมั นท์ ่เี ปลยี่ นแปลงมากกวา่ หนง่ึ คอลมั น์ในจานวนศนู ย์หรือมากกวา่ ของตาราง (ขนึ้ อย่กู ับจานวนแถวท่ีตรงกับเงอื่ นไขการคน้ หาท่ีระบใุ นคาสงั่ ย่อย WHERE) คาสง่ัUPDATE จะเปน็ ดงั น:้ี UPDATE table-name SET column-1 = value-1, column-2 = value-2, ... WHERE search-condition ...

สมมตวิ า่ มกี ารย้ายพนกั งาน ในการอพั เดตตารางCORPDATA.EMPLOYEE เพอ่ื ใหส้ อดคลอ้ งกับการยา้ ยดังกล่าว ใหร้ ันคาส่ังต่อไปน้ี: UPDATE CORPDATA.EMPLOYEE SET JOB = :PGM-CODE, PHONENO = :PGM-PHONE WHERE EMPNO = :PGM-SERIAL

ใชค้ าสงั่ ยอ่ ย SET เพอ่ื ระบคุ ่าใหม่สาหรบั แตล่ ะคอลมั น์ ที่คณุตอ้ งการอัพเดต คาสั่งยอ่ ย SET จะแสดงช่อื คอลัมน์ทค่ี ุณตอ้ งการให้อัพเดตและให้คา่ ทคี่ ณุ ต้องการให้เปลยี่ นเป็นค่าน้นั คุณสามารถระบุ ชนิดคา่ ดังตอ่ ไปน้ี:ชือ่ คอลัมน์:แทนทคี่ ่าปัจจุบนั ของคอลมั น์ดว้ ยเนื้อหาของอีกคอลมั น์ในแถวเดยี วกันคา่ คงท่ี:แทนทค่ี ่าปจั จบุ ันของคอลัมนด์ ้วยคา่ ท่มี ใี หใ้ นคาสัง่ ย่อยSETค่า null: แทนที่คา่ ปัจจบุ ันของคอลัมน์ด้วยคา่ null โดยใชค้ ีย์เวริ ด์ NULL คอลัมนจ์ ะตอ้ งถกู กาหนดเป็น แบบมคี ่า null ์ได้เมอื่มกี ารสรา้ งตาราง มิฉะน้นั จะเกิด ขอ้ ผิดพลาดตัวแปรโฮสต:์ แทนที่ค่าปัจจุบันของคอลัมนด์ ว้ ยเน้ือหาของตวั แปรโฮสต์ตัวแปรโกลบอล:แทนท่คี ่าปัจจบุ นั ของคอลัมน์ ด้วยเนื้อหาของตัวแปรโกลบอล

รจี ิสเตอรพ์ ิเศษ: แทนท่คี า่ ปจั จบุ ันของคอลมั นด์ ว้ ยค่ารีจิสเตอร์พเิ ศษ ตวั อยา่ งเช่น USERนิพจน:์ แทนท่ีค่าปจั จุบนั ของคอลัมนด์ ว้ ยคา่ ทเ่ี ป็นผลลัพธจ์ ากนิพจน์scalar fullselect:แทนทคี่ า่ ปัจจุบันของคอลมั น์ ดว้ ยคา่ ทเ่ี คียวรียอ่ ยใหม้ าคียเ์ วริ ด์ DEFAULT: แทนท่ีคา่ ปจั จุบันของคอลมั น์ ดว้ ยค่าดฟี อลต์ของคอลมั น์ คอลมั น์ตอ้ งมคี า่ ดฟี อลต์ ท่ีกาหนดไว้ให้ หรอื ยอมใหม้ ีค่า NULL มฉิ ะนัน้ จะเกดิ ขอ้ ผิดพลาด คาสั่ง UPDATE ตอ่ ไปนี้ใชค้ า่ ท่ีแตกต่างกัน หลายค่า: UPDATE WORKTABLE SET COL1 = 'ASC', COL2 = NULL, COL3 = :FIELD3, COL4 = CURRENT TIME, COL5 = AMT - 6.00, COL6 = COL7 WHERE EMPNO = :PGM-SERIAL

ในการระบแุ ถวทจี่ ะอัพเดต ให้ใชค้ าส่ังยอ่ ย WHERE:ในการอพั เดตแถวเดยี ว ให้ใช้คาสั่งย่อย WHERE ทเี่ ลือกเพียงแถวเดียวในการอพั เดตหลายแถว ใหใ้ ช้คาส่งั ย่อย WHERE ทีเ่ ลือกเฉพาะแถว ทค่ี ณุ ต้องการอพั เดตคณุ สามารถละเว้นคาสั่งย่อย WHERE หากคุณเว้น SQL จะอัพเดตแต่ละแถวในตาราง หรอื มมุ มองซงึ่ มีค่าทีค่ ุณให้หากตวั จดั การฐานขอ้ มลู พบขอ้ ผดิ พลาดขณะรนั ข้อความUPDATE ของคุณ ตัวจดั การจะหยดุ และให้ SQLCODE ที่เปน็ คา่ลบ หากคณุ ระบุ กอ่ นหน้าน)้ี หากระบุ COMMIT(*NONE) แถวใดๆ ทีถ่ ูกเปล่ยี นแล้วจะไมถ่ กู เรียกคนื เปน็ คา่ กอ่ นหนา้ น้ี

หากตวั จัดการฐานข้อมลู ไมพ่ บแถวใดที่ตรงตามเงือ่ นไขการคน้ หาจะได้ SQLCODE เป็น +100คาส่ังย่อย SET ของข้อความ UPDATE สามารถใชไ้ ด้หลายวธิ ีเพอ่ืกาหนด ค่าแทจ้ รงิ ท่จี ะกาหนดในแตล่ ะแถวทก่ี าลังอพั เดตตวั อย่างตอ่ ไปนีแ้ สดงแตล่ ะคอลมั นแ์ ละค่าของมัน: UPDATE EMPLOYEE SET WORKDEPT = 'D11', PHONENO = '7213', JOB = 'DESIGNER' WHERE EMPNO = '000270'นอกจากน้ี คุณ ยังสามารถเขยี นคาสงั่ UPDATE นี้ได้ โดยระบุคอลัมน์ทงั้ หมด แลว้ ระบคุ า่ ท้ังหมด: UPDATE EMPLOYEE SET (WORKDEPT, PHONENO, JOB) = ('D11', '7213', 'DESIGNER') WHERE EMPNO = '000270'

ด้วยคาสัง่ UPDATE คุณสามารถเปล่ยี นค่าของคอลมั นไ์ ดม้ ากกวา่หนง่ึ ค่าในแต่ละแถว ซ่ึงตรงตามเงอ่ื นไขการค้นหาของคาสงั่ ย่อยWHERE ผลลพั ธข์ องคาส่งั UPDATE จะมีคา่ คอลมั นท์ ี่เปลี่ยนแปลงมากกว่าหนงึ่ คอลมั นใ์ นจานวนศูนย์ หรอื มากกวา่ ของตาราง(ขน้ึ อยูก่ ับจานวนแถวที่ตรงกบั เงอ่ื นไขการคน้ หาทร่ี ะบใุ นคาสั่งย่อยWHERE) คาส่ัง UPDATE จะเปน็ ดังนี้: UPDATE table-name SET column-1 = value-1, column-2 = value-2, ... WHERE search-condition ...

สมมตวิ า่ มีการยา้ ยพนกั งาน ในการอัพเดตตารางCORPDATA.EMPLOYEE เพ่ือให้สอดคลอ้ งกับการยา้ ยดงั กลา่ ว ให้รนั คาส่งั ตอ่ ไปนี้: UPDATE CORPDATA.EMPLOYEE SET JOB = :PGM-CODE, PHONENO = :PGM-PHONE WHERE EMPNO = :PGM-SERIAL

คาสั่ง UPDATE ตอ่ ไปนี้ใชค้ ่าที่แตกตา่ งกนั หลายคา่ : UPDATE WORKTABLE SET COL1 = 'ASC', COL2 = NULL, COL3 = :FIELD3, COL4 = CURRENT TIME, COL5 = AMT - 6.00, COL6 = COL7 WHERE EMPNO = :PGM-SERIAL




Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook