Oracle_2:DML

DML(Data Manipulation Language)数据操纵语言

insert delete update

可以回退——可以进行事务操作

SQL> set linesize 300;
SQL> set pagesize 300;

一、insert

insert into 表明(字段名1,字段名2,……) values(字段值1,字段值2,……)

字段名和字段值一一对应:数据类型、个数、顺序

SQL> insert into mytab1(id,name,age) values(1,'w',18);

--全表插入可以省略字段名,但是必须是完整字段、字段值要和表的顺序一致。
SQL> insert into mytab1 values(2,'c',18);

--插入字段不完整,需要写出字段名
SQL> insert into mytab1(name,age) values('q',16);


--动态插入:
SQL> insert into mytab1(id,name,age) values(&1,&2,&age);
输入 1 的值:  5
输入 2 的值:  'j'
输入 age 的值:  12
原值    1: insert into mytab1(id,name,age) values(&1,&2,&age)
新值    1: insert into mytab1(id,name,age) values(5,'j',12)

已创建 1 行。

SQL> insert into mytab1(id,name,&othername) values(2,'j',&othervalues);
输入 othername 的值:  age
输入 othervalues 的值:  1
原值    1: insert into mytab1(id,name,&othername) values(2,'j',&othervalues)
新值    1: insert into mytab1(id,name,age) values(2,'j',1)

已创建 1 行。

批量插入

创建新表(新表不存在)

SQL> create table mytab2 as select * from mytab1;

SQL> create table mytab3 as select id,name from mytab2;

--快速创建表结构:只有列的信息,但是不要表数据
 SQL> create table mytab4 as select * from mytab3 where 1=0;

批量插入到已经存在的表

SQL> insert into mytab4 select * from mytab3;

begin…end…(存储过程)

begin
insert into mytab1(id,name,age) values(1,'w',18);
insert into mytab1(id,name,age) values(2,'q',16);
end;
/

海量数据:数据泵、SQL Loader/外部表

二、delete 删除

--整个表数据全删:
SQL> delete from mytab4;
--撤回
SQL> rollback;

--条件删除
SQL> delete from mytab1 where id=2;

全部删除

  1. delete from 表名; 可以回退

    • 一行一行的删除。数据量小的时候,删除效率高

    • 支持闪回

    • 不会释放空间:换个地方存储数据(undo空间,相当于回收站)

    • 会产生碎片:整理碎片

      • alter table 表名 move;

        将表自动整理并合并(多个小空间集合成一个大空间)

      • 导出导入:

  2. truncate table 表名; 不能回退

    • 先drop整张表,再重新创建表。数据量打时效率高
    • 不支持闪回
    • 释放空间:数据彻底没了
    • 不会产生碎片

测试性能

打开执行时间

SQL> set timing on/off

三、update

update 表名 set 字段名1=字段值1,字段名2=字段值2,……(where……)

没有where修改整张表

SQL> update mytab1 set id=10 where id=1;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值