创建视图简化上面 视图就是一张表 一个子查询 虚表
视图通常以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;