Oracle(八)DML语句、DDL语句、事务控制

Posted on 2021-04-08 08:05  MissRong  阅读(213)  评论(0)    收藏  举报

Oracle(八)DML语句、DDL语句、事务控制

----------------------- DML语句: ---------------------------

1、插入-insert into + 表名 (或表名+(, , ,)) + values():

insert into dept values(50, 'ITA', 'SYTX');
insert into dept (deptno, dname) values(60, 'ATTR');
select * from dept;

insert into emp values(7777, 'Mary', 'CLERK', 7698, to_date('1982/6/5','yyyy/mm/dd'), 1500, 200, 10);

2、更新数据

update emp e set e.deptno = 30, e.comm = 150
where e.empno = 7934;

--删除(delete可以回滚,truncate、drop不可回滚)
delete dept d where d.deptno = 10;

------------------- DDL语句(create、drop、truncate、alter) -----------------------

命名规则

1、通过子查询创建表--create table ... as select ...

create table dept30
as select * from dept where deptno = 30;

create table dept30
as select empno, ename, sal*12 年工资 from emp;

2、alter table

--增加列:add(列名 数据类型)

alter table dept30
add (job varchar2(10));

--修改列:modify(列名 数据类型)

alter table dept30
modify (ename varchar(15))

--删除列:drop(列名)

alter table dept30
drop (job);

3、删除表结构和数据:drop table + 表名

drop table dept30;

4、重命名 rename + 旧表名 + to + 新表名

rename mydept to mydept2;

5、删除表中的所有数据:truncate table + 表名

truncate table dept30;

--查询没有学全所有课的同学的学号和姓名

select t.sno, t.sname from SC sc, STUDENT t where sc.sno(+) = t.sno group by t.sno, t.sname having count(1) <
(select count(1) from COURSE)

--查询每门工课被选的次数

select count(c.cno), c.cname from SC sc,COURSE c where sc.cno = c.cno group by c.cno,c.cname;

---------------------- 事务控制 ---------------------------

事务:回滚、提交、保留点

savepoint spl; --返回到某一个保留点
insert into dept values(70,'ITA2',DEFAULT);
insert into dept values(80,'ITA2',DEFAULT);
commit;--提交

delete from dept where deptno in (70,80);
rollback;

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3