SQL語言分爲五大類:
DDL(數據定義語言) - Create、Alter、Drop 這些語句自動提交,無需用Commit提交。
DQL(數據查詢語言) - Select 查詢語句不存在是否提交問題。
DML(數據操縱語言) - Insert、Update、Delete 這些語句需要Commit才能提交。
DTL(事務控制語言) - Commit、Rollback 事務提交與回滾語句。
DCL(數據控制語言) - Grant、Revoke 授予權限與回收權限語句。
1.commit
在數據庫的插入(insert)、刪除(delete)和修改(update)操作時,只有當事務在提交到數據庫時纔算完成。在Oracle 數據庫中,在事務提交前,只有操作數據庫的當前session能有權看到所做的事情,別的session在另外一個session最後提交完成時才能看見所修改的內容。commit就是確定提交的意思,比如你用update更新表中一條記錄,而不commit,那麼別的賬戶在查詢這個表時就查詢不到你update的記錄,自己是可以查詢到的;而commit後則其他賬戶就能查詢到你update的記錄了。
2.rollback
rollback:就是回退的意思,比如你用update更新表中一條記錄,這時你查詢這個表時,則發現表已經更新(注意別的用戶查詢這個表會發現表未更新);再rollback後,你再查詢表時,發現表還是更新之前的樣子。
在沒有進行commit之前,是對內存的操作,可以rollback;如果commit,則修改了物理地址的數據,則不能rollback了。
3.作用的範圍與注意點
兩者只對insert、update、delete(DML數據操縱語句)操作有效。
注意點:
3.1、先commit再rollback,則rollback相當於不起作用。
3.2、若現delete再select再rollback,,則rollback會撤回delete操作。
3.3、其他用戶查詢你的表示看到的是commit之後的表,而你看到的是最新操作的表。