DML:数据库操作语言(Data Manipulation Language)
--创建学生表
create table tb_clazz(
id number,
code varchar2(18)
);
select * from tb_clazz;
--插入数据
insert into tb_clazz(id, code) values (1, 'j1202');
insert into tb_clazz(id, code) values (2, 'j1202');
insert into tb_clazz(id, code) values (3, 'j1203');
--merge 支持合并表
merge into tb_clazz
t1 --tb_clazz表是要更新的表
using tb_clazz2
t2 --关联表
on(t1.id=t2.id) --关联条件
when matched then --匹配关联条件,作更新处理
update set t1.code=t2.code
when not matched then
insert --不匹配关联条件,作插入处理
values(t2.id,t2.code);
--当所有操作完成,可以一次性提交,不需要每操作一条SQL语句提交一次
commit;
--某某转账10000给某某老师,从账户扣除10000
--抛出异常
--某某老师账户增加10000
commit;
rollback;
--建表另一种方式,从其他表中创建
create table tb_clazz2 --创建表tb_clazz2,表结构和内容和tb_clazz表中一样
as
select * from tb_clazz;
create table tb_clazz3 --创建表tb_clazz3,只创建--创建表tb_clazz中的code字段和内容
as
select code from tb_clazz;
create table tb_clazz4
as
select * from tb_clazz where id=1;
select * from tb_clazz2;
select * from tb_clazz3;
select * from tb_clazz4;
--插入数据比较复杂的方式
insert into tb_clazz4(id, code)
select id,code from tb_clazz;
--修改数据
--将tb_clazz表的凑得改成id 为1的数据,code改成j1201
update tb_clazz
set code='1201',id=6
where id=1;
--如果不加where 条件,所有符合条件的数据都会被修改
update tb_clazz
set code='1209';
--删除数据,会删除所有符合条件的数据
delete from tb_clazz
where id=3;
delete from tb_clazz
where code=1209;
--DML 删除所有数据,保留表结构(可以回滚)
delete from tb_clazz;
--DDL 截断表 删除所有数据,保留表结构 (DDL 语句,不能回滚)
truncate table tb_clazz;
--drop 删除数据和表结构,不可以回滚数据
drop table tb_clazz;