一、插入语句
1、插入单行记录
INSERT INTO table_name|view_name[(column1_name [,column2_name, ... ])]
VALUES( value1 [, value2, ...] )
注意:
[1] 如果在INTO子句中没有指明任何列名,则VALUES子句中的列值的个数、顺序、类型必须与表中的列一致。
[2] 如果在INTO子句中指明了列名,则VALUES子句中的列值的个数、顺序、类型必须与指明的列一致。
[3] 向表或视图中插入的数据必须满足表的完整性约束。
[4] 字符型和日期型数据在插入时要加单引号,日期型数据需要按系统默认格式输入,或使用 TO_DATE 函数进行日期转换。
2、利用子查询插入数据
INSERT INTO table_name|view_name[(column1_name [,column2_name, ... ])]
subquery
注意:
[2] 如果在INTO子句中指明了列名,则子查询中的列的个数、顺序、类型必须与指明的列一致。
如果要将大量数据插入到表中,使用子查询直接装在的方式。由于直接装载数据的操作过程不写入日志文件,插入效率大大提高。需要使用“ /*+APPEND*/ ”关键字,语法如下:
INSERT /*APPEND*/ INTO table_name|view_name[(column1_name [,column2_name, ... ])]
subquery
3、向多个表中插入数据
INSERT ALL|FIRST
WHEN condition1 THEN INTO table1
WHEN condition2 THEN INTO table2
......
ELSE INTO tablen
subquery
注意:
[1] ALL表示一条记录可以同时插入到多个满足条件的表中;
[2] FIRST表示一条记录只会插入到第一个满足条件的表中;
二、修改数据
1、基本语法,如下:
UPDATE table name | view_name
SET column1 = value1 [, column2 = value2 , ...]
[FROM <source table(s)>]
[ WHERE condition ]
三、删除数据
DELETE语句用于删除表中的数据。
1、基本的语法结构如下:
DELETE FROM table | view [ WHERE condition ]
利用DELETE语句删除数据,实际上是把数据标记为 UNUSED,并不释放空间,同时将操作过程写入日志文件,因此DELETE操作可以进行回滚。但是,如果要删除的数据量非常大,则DELETE的操作效率非常低。Oracle中,提供了 TRUNCATE 语句,执行该语句时释放存储空间,并且不写入日志文件,因此执行效率高,但操作不可回滚。
TRUNCATE TABLE table_name;