数据库操作语言DML

数据库操作语言DMLData Manipulation Language)用于操作数据库中的数据,包括:插入新数据;修改已有的数据;删除不再需要的数据;数据合并。

 

1.insert语句

insert语句用于向表中插入数据

语法:

insert into table [(column [, column …]) ] values (value [,value …]);

insert into dept values(88,’装备部’,’北京’);

insert into dept(deptno,dname) values(99,’交通部’);

说明:

insert语句每次只能向表中插入一条记录。

缺省字段名列表时,应为新插入记录中的每个时段设定新值。

也可在insert语句中指定赋值字段列表,只为部分字段显式设定新值,其余字段将被缺省赋值为null

 

2.表间数据拷贝

可以在insert语句中使用子查询,实现表间数据拷贝:

insert into dept(id, name) select deptno, dname from dept;

说明:

此时不必再给出value子句。

子查询中的值列表应与insert子句中的字段列表相对应(类型匹配)。

 

3.update语句

update语句用于更新表中数据

语法:

update table set column=value[, column=value, …] [where condition];

update emp set sal=sal+88;

update emp set sal=sal+1000, comm=comm+0.5 where empno=7778;

说明:

update语句每次可更新多条记录。

可使用where子句限定要更新的记录,如果缺省where子句,则更新表中的所有记录。

 

4.delete语句

delete语句用于从表中删除数据

语法:

delete [from] table [where condition];

delete emp;

delete from emp;

delete emp where empno=7778;

说明:

delete语句每次可删除多条记录。

可使用where子句限定要删除的记录,如果缺省where子句则删除表中的所有记录。

 

5.merge语句

merge语句用于进行数据合并----根据条件在表中执行数据的修改或插入操作,如果要插入的记录在目标表中已经存在,则执行更新操作,否则执行插入操作。

语法:

merge into table [alias]

using (table|view|sub_query) [alias]

on (join_condition)

when matched then

update set coll=coll_val, col2=col2_val

when not matched then

insert(column_list) values (column_values);

例:

create table test1(eid number(10), name varchar2(20), birth date, salary number(8,2) );

insert into test1 values (1001, ‘张三’, ’20-5-70’, 2300);

insert into test2 values(1002, ‘李四’, ’16-4-73’, 6600);

select * from test1;

 

create table test2(eid number(10), name varchar2(20), birth date, salary number(8,2) );

select * from test2;

 

merge into test2

  using test1

  on(test1.eid=test2.eid)

  when matched then

    update set name=test1.name, birth=test1.birth, salary=test1.salary

  when not matched then

    insert(eid,name,birth,salar) values(test1.eid, test1.name, test1.birth, test1.salary);

 

select * from test2;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值