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;
浙公网安备 33010602011771号