oracle练习(mldn视频课程)四
视图
创建新表:create table emp2 as select * from emp;
create view empv20 as select empno,ename,job,hiredate,deptno from emp where deptno=20 with check option;
语法:create or replace view 视图名称 as 子查询(修改之后的子查询)
替换视图(修改)
create or replace view empv20 as select empno,ename,job,hiredate,deptno,sal from emp
where deptno=20 with check option;
语法:update 视图名 set 更新内容 条件
更新视图
有两个参数:with check option和with read only
将视图中的7369职员的部门号修改为30
update empv20 set deptno=30 where empno=7369;
创建视图时添加上with check option则不会对创建条件更新,但是可以对其他字段更新。
若修改视图中7369的职员姓名为“史密斯”,可否修改?
update empv20 set ename='史密斯' where empno=7369;
创建视图时添加上with read only则不会对创建条件更新,
create view empv20 as select empno,ename,job,hiredate,deptno from emp where deptno=20 with read only;
以下操作时提示不允许虚拟列,是只读操作
update empv20 set deptno=30 where empno=7369;
update empv20 set ename='史密斯' where empno=7369;
序列
语法:create sequence 序列名
范例:create sequence myseq
使用序列
两种操作:nextval—取得序列的下一个内容
currval—取得序列的当前内容
insert into 表名(列一,列二) values(表名.nextval,表名.currval);
删除序列:drop sequence 序列名
增长幅度:increment by 长度(放在创建序列的后边)
范例:1,创建序列create sequence myseq
2,创建表create table testseq(next number,curr number);
3,重复插入数据insert into testseq(next,curr) values(myseq.nextval,myseq.currval);
4,查询数据select * from testseq;
查询出来的数据以步长为一的速度增加,若想要步长不为一,则需要在创建序列时加上increment by n,n为步长,
语法为:create sequence 序列名 increment by n
不能修改已创建序列的步长,只能删除序列重新创建时修改步长。
默认情况下序列是从1
相关文档:
最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库、读数据表、执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢。
ADOOperate.H
//////////////////////////////////////////////////////////////////////
// ......
修改Oracle的进程数[processes]及会话数[sessions]
1.通过SQLPlus修改
Oracle的sessions和processes的关系是
sessions=1.1*processes + 5
使用sys,以sysdba权限登录:
SQL> show parameter processes;
NAME &n ......
关于Oracle的session
1.如何查看session级的等待事件?
当我们对数据库的性能进行调整时,一个最重要的参考指标就是系统等待事件。$system_event,v$session_event,v$session_wait这三个视图里记录的就是系统级和session级的等待事件,通过查询这些视图你可以发现数据库的一些操作到底在等 ......