• Oracle 操作数据库(增删改语句)


      对数据库的操作除了查询,还包括插入、更新和删除等数据操作。后3种数据操作使用的 SQL 语言也称为数据操纵语言(DML)。

    一、插入数据(insert 语句)

      插入数据就是将数据记录添加到已经存在的数据表中,可以通过 insert 语句实现向数据表中一次插入一条记录,也可以使用 select 子句将查询结果批量插入数据表。

      1、单条插入数据

       语法:

    insert into table_name [ (column_name[,column_name2]...) ] values(express1[,express2]... )
    
    •     table_name:要插入数据的表名
    •     column_name1 和 column_name2:指定表的完全或部分列名称
    •     express1 和 express2 :表示要插入的值列表

          EG:

    SQL > insert into dept(deptno,dname,loc) values(88,'Tony','tianjin')

           注意:

    •  insert into 中指定添加数据的列,可以是数据表的全部列,也可以是部分列
    •    给指定列添加数据时,需要注意哪些列不能空;对于可以为空的列,添加数据可以不指定值;添加数据时,还应该数据添加数据和字段的类型和范围
    •    向表中所有列添加数据时,可以省略 insert into 子句后面的列表清单,使用这种方法时,必须根据表中定义列的顺序为所有的列提供数据
    •    添加数据时,还应该注意哪个字段是主键(主键的字段是不允许重复的),不能给主键字段添加重复的值 

      2、批量插入数据

      insert 语句还可以一次向表中添加一组数据,可以使用 select 语句替换原来的 values 子句,语法如下:

    insert  into  table_name [ (column_name1[,column_name2...]...) ] selectSubquery
    •       table_name:要插入数据的表名
    •       column_name1  和 column_name2 :表示指定的列名
    •       selectSubquery:任何合法的 select 语句,其所选列的个数和类型要与语句中的 column 对应。

         EG:

    SQL > insert into jobs_temp select * from jobs where jobs.salary > 1000
    

          注意:

    •      使用这种语句实现批量插入数据时,insert into 子句指定的列名可以与 select 子句指定的列名不同,但是它们之间的数据类型必须是兼容的

    二、更新数据(update 语句)

      如果表中的数据不正确或不符合需求,那么就可以通过 update 语句实现修改现有的数据记录。

      更新数据时,更新的列数可以有自己指定,列与列之间用逗号分隔;更新的条数可以通过 where 子句来加以限制,使用 where 子句时,系统只更新符合 where 条件的记录,语法如下:

    update table_name set {column_nam1=express1 [,column_name2=express2...] | (column_name1 [,column_name2...]) = (selectSubquery)} [where condition]
    •    table_name:表示要修改的表名
    •         column_name1 和 column_name2 :表示指定要更新的列名
    •         selectSubquery: 任何合法的 select 语句,其所选列的个数和类型要与语句中 column 对应
    •         condition:筛选条件表达式,只有符合筛选条件的记录才会被更新

      EG1:

    SQL > update emp set sal = sal*1.2 where job = "salesman"
    

        表示把销售员(salesman)的工资上调20%。

      EG2:

    SQL > update emp set sal = (select avg(sal) from emp where job = "manager") where sal < 2000
    

        表示把emp表中工资小于2000的人员工资调整为管理者的平均工资的水平。

      注意:

    •   将 update 语句与 select 语句组合使用时,必须保证 select 语句返回单一的值,否则会出现错误提示,导致更新数据失败。

    三、删除数据 (delete 语句和 truncate 语句) 

      Oracle 系统提供了从数据库删除记录的功能,删除记录可以使用 delete 语句和 truncate 语句,区分如下:

      1、delete 语句

       delete  语句用来删除数据库中的所有记录和指定方位的记录,若要删除指定范围的记录,需用 where 子句进行限制,语法如下:

    delete from table_name [where condition]
    •     table_name:表示要删除记录的表名
    •     condition:筛选条件,可选项,只有符合筛选条件的记录才会被删除掉

      EG:

    SQL > delete from jobs where job_id = "pro"
    

       注意:使用 delete 语句来删除数据时, Oracle 系统会产生回滚记录,所有这种操作可以使用 rollback 语句来进行撤销

      2、truncate 语句

      删除记录也可以使用 truncate 语句,语法同 delete 语句,使用 truncate 语句删除表中的所有记录要比 delete 语句快得多,但是不会产生回滚记录,执行了 truncate 语句的操作也就无法使用 rollback 语句撤销。

      注意在 truncate 语句还可以使用 reuse storage  关键字或者 drop  storage  关键字,前者表示删除记录后仍然保存记录所占用的空间;后者表示删除记录后立即回收记录所占用的空间。Oracle 系统默认情况下的 truncate 语句使用 drop storage 关键字。

  • 相关阅读:
    SQL注入方法之:获取列名
    手把手教会你模拟退火算法
    我的G++编译选项
    编译器优化误解程序员的意思
    ZKW线段树
    扩展欧几里得算法
    快速幂
    乘法取模
    莫队算法良心讲解
    高精度模板
  • 原文地址:https://www.cnblogs.com/niujifei/p/10952414.html
Copyright © 2020-2023  润新知