|=--------------------------------------------------=| _________________ .____ ___________________ / _____/\_____ \ | | \_ _____/\______ \ \_____ \ / / \ \| | | __)_ | | \ / \/ \_/. \ |___ | \ | ` \ /_______ /\_____\ \_/_______ \/_______ //_______ / \/ \__> \/ \/ \/ |=--------------------------------------------------=| . |03.09 - Updating records . |=--------------------------------------------------=| Once the records are inserted into the table there could come need to modify it. For this purposes SQL offers UPDATE type of query. We can modify rows using the update. Let's assume the user wrote his note into the NOTES table and he would like to update it. Then following query can be used: update notes set no_text = 'Updated' where no_key = 3; That's give us following result: select n.* from notes n where no_key = 3; Like this: no_key no_text user_key -------- --------- ---------- 3 Updated 3 Let's assume we would like to clear all notes for given user. So we will use subquery lookup user_key and then update all the notes for given user. Examine following query: update notes set no_text = null and no_text is not null where no_key in ( select no_key from notes where user_key in ( select user_key from users where user_name = 'user3' ) ); The above query could be run multiple time but only once it would update some data. See the part with no_text is not null. That would prevent updates on the next run despite all the given rows would be already empty (or null). Result of the table notes after this part would be following: select n.user_key, n.no_key, n.no_text from notes n order by user_key, no_key; With following result: user_key no_key no_text ---------- -------- ------------ 1 1 Hello World! 1 4 Notes no. 2 1 7 Notes no. 5 1 10 Notes no. 8 2 5 Notes no. 3 2 8 Notes no. 6 3 3 3 6 3 9 And that's it for this part. |=--------------------------------------------------=| |=--------------------------------------------------=|