DML(Oralce)

创建视图简化上面              视图就是一张表    一个子查询  虚表

视图通常以v$开头

grant create table,create view to scott;         授权

 创建视图:create view v$_dept_avg_sal_info as ...

DML 语句     数据操作语言

每个用户有一个表空间 操作自己空间的表     所以是多用户的

 -----表的备份 

create table dept2 as select * fromdept; 

子查询插入 (表的结构同)

insert into dept2 select * from dept;

insert into dept2 (deptno,dname) values(60,'game2');

insert into dept2 values(50,'game','bj');

•  -----------事务回退语句-------- 

•      rollback;                      所有语句都回退 

•  -----------事务确认语句-------- 

•      commit;//此时再执行rollback无效

(使用虚字段rownum 只能使用 < 或 = 要使用 > 必须使用子查询)

试题:

•  有3个表S,C,SC  

•      S(SNO,SNAME)代表(学号,姓名)  

•      C(CNO,CNAME,CTEACHER)代表(课号,课名,教师)  

•      SC(SNO,CNO,SCGRADE)代表(学号,课号成绩)  

•      问题:  

•      1,找出没选过“黎明”老师的所有学生姓名。  

•      2,列出2门以上(含2门)不及格学生姓名及平均成绩。  

•      3,即学过1号课程有学过2号课所有学生的姓名。

答案: 

1、 

select sname from s join sc on(s.sno =sc.sno) join c on (sc.cno = c.cno) where cteacher <> '黎明'; 

2、 

select sname where sno in (select sno fromsc where scgrade < 60 group by sno having count(*) >=2);  

3、 

select sname from s where sno in (selectsno, from sc where cno=1 and sno in 

 (select distinct sno from sc where cno =2);   

update emp2 set sal = sal*2 ,ename=ename||'-' where deptno = 10;

delete from emp2 where deptno<25;

原文地址:https://www.cnblogs.com/kydnn/p/5034774.html