Oracle基础语法修改与删除

         修改和删除是基础的语法之一,在数据库使用中,增删改 --> 30%, 查 --> 70% ,虽然使用没有查询多,但是不能表示它不重要,它和查询一样,是必须要掌握的语法;

    update 表 set 列=新的值 [where 条件] 更新满足条件的记录;

如果把关键字翻译成中文就更简单了update 修改、set 设置、where 哪里;如果把它们一起串起来:要修改的表 要设置列的值 要修改哪一列;下面就说一下列子:

Oracle基础语法修改与删除_第1张图片

    这里的列子是把员工表中员工id为199的first_name改为张三,执行修改和删除语句要进行事务的提交或者回滚,提交就是相当确认修改或者删除数据,回滚则是把数据还原成未执行该语句之前的数据样子;oracle对大小写是不敏感的,所有在对表或者字段进行查询或者其他操作可以写小写,也可以用大写,但引号里面是表示字符串,它是要区分字母的大小写;

 

Set可以一起修改多个值,如:

 

条件也可以进行拼接,但是不是加逗号进行拼接,而是通过and关键字进行拼接,如:

 

要注意的是不要忘记写where条件不然会把所有数据都更新,或者说就是要修改该表的所有数据,如:

Oracle基础语法修改与删除_第2张图片

我这里创建了一张新表,然后把新表的first_name都改为张三,如果是平常修改因为忘记写条件导致所有数据都的话也不要慌,还可以进行回滚,把数据恢复到执行语句之前的样子;

    修改不单单可以直接给条件它去执行修改,还可以用子查询去控制条件去修改数据,下面我们就了解一下使用子查询删除数据:

修改前数据:

 

修改后数据:

Oracle基础语法修改与删除_第3张图片    这个例子就是给set一个子查询作为修改值,它查的是员工表中工资最高的工资是多少,整体是修改员工表中员工id为102的员工的工资,修改成和最高工资相等的工资;原本102工资是17000 ,修改后和最高工资相同都是24000;

 

下面来了解一下删除:

   

         删除相比修改少了一个要赋值的步骤,删除语句在这里是把员工表中员工id为199的数据删除,删除是对一条数据进行处理,而修改一般是具体到数据的某一行的某一列进行对数据的处理;

和修改一样,删除也可以用子查询来当做条件去过滤数据:

删除前:

删除后:

   

这里是把employeeszi最大工资作为过滤条件,然后把employeeszi的最大工资的那条数据进行删除;

如果过滤条件没有写,会怎么样呢?

    它就会把整张表的进行删除,也就是把表数据进行清空,它这里也和修改一样需要提交或者回滚事务,所有删除了也没有事情,可以进行回滚;MyEclipse如果设置了自动提交,那就已经是不可挽回的了;MyEclipse可以在左上角处点击提交按钮进行提交或者回滚,也可以用COMMIT 或 ROLLBACK 语句来结束用户会话,

COMMIT是提交的; ROLLBACK是回滚;

Oracle基础语法修改与删除_第4张图片

二者功能是一样的,COMMIT, ROLLBACK是在执行完语句后再执行提交或者回滚来结束会话,可以看到在左上角可以直接点击提交也可以结束这一次会话;或者想偷懒也可以在Developer设置自动提交:

自动提交有2种,一种是退出提交,还有一种是执行完成后自动提交:

  1. 事务执行后自动提交:Tools -> Preferences -> Window Types -> SQL Window:勾选“AutoCommit SQL”,即可实现自动提交操作。
  2. 退出登录自动提交:Tools -> Preferences -> Oracle -> Connection -> Log off with open transaction:选择“Commit”

 

提交意味着什么呢?

  • 数据的改变已经被保存到数据库中。
  • 改变前的数据已经丢失。
  • 所有用户可以看到结果。
  • 所有保存点被释放。
  • 如果有锁的话锁就会被释放,其他用户可以操作涉及到的数据,如果你一直不提交数据那么锁会一直锁住,其他人无法对数据进行操作。

 

最后要注意:

  1. 无论该是修改还是删除where 条件都不要忘记;
  2. where 没有值也是可以的,不会报错,但也不会有效果;
  3. 删除和修改都要进行提交,不然数据库是没有保存的;
  4. oracle对大小写不敏感;

 

 

 

 

 

 

你可能感兴趣的:(Oracle基础语法修改与删除)