oracle练习(mldn视频课程)四
視圖
創(chuàng)建新表: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 更新內(nèi)容 條件
更新視圖
有兩個(gè)參數(shù):with check option和with read only
將視圖中的7369職員的部門號(hào)修改為30
update empv20 set deptno=30 where empno=7369;
創(chuàng)建視圖時(shí)添加上with check option則不會(huì)對(duì)創(chuàng)建條件更新,但是可以對(duì)其他字段更新。
若修改視圖中7369的職員姓名為“史密斯”,可否修改?
update empv20 set ename='史密斯' where empno=7369;
創(chuàng)建視圖時(shí)添加上with read only則不會(huì)對(duì)創(chuàng)建條件更新,
create view empv20 as select empno,ename,job,hiredate,deptno from emp where deptno=20 with read only;
以下操作時(shí)提示不允許虛擬列,是只讀操作
update empv20 set deptno=30 where empno=7369;
update empv20 set ename='史密斯' where empno=7369;
序列
語法:create sequence 序列名
范例:create sequence myseq
使用序列
兩種操作:nextval—取得序列的下一個(gè)內(nèi)容
????????? currval—取得序列的當(dāng)前內(nèi)容
insert into 表名(列一,列二) values(表名.nextval,表名.currval);
刪除序列:drop sequence 序列名
增長幅度:increment by 長度(放在創(chuàng)建序列的后邊)
范例:1,創(chuàng)建序列create sequence myseq
????? 2,創(chuàng)建表create table testseq(next number,curr number);
????? 3,重復(fù)插入數(shù)據(jù)insert into testseq(next,curr) values(myseq.nextval,myseq.currval);
????? 4,查詢數(shù)據(jù)select * from testseq;
????? 查詢出來的數(shù)據(jù)以步長為一的速度增加,若想要步長不為一,則需要在創(chuàng)建序列時(shí)加上increment by n,n為步長,
????? 語法為:create sequence 序列名 increment by n
不能修改已創(chuàng)建序列的步長,只能刪除序列重新創(chuàng)建時(shí)修改步長。
默認(rèn)情況下序列是從1開始的,若想修改可以使用start with n,則可以設(shè)置為從n開始,
語法為:create sequence 序列名 start with n
固定取值
create sequence 序列名 maxvalue n increment by m start with l cache k cycle;
序列從l開始按照步長為m開始循環(huán)取值,最大值不超過n,緩存為k,k必須小于n,例如m=2,n=10,k=2,則循環(huán)取值為:1,3,5,7,9
同義詞
同義詞,可以讓其他用戶通過一個(gè)名稱方便的訪問“用戶名.表名稱”。
創(chuàng)建語法:create synonym 同義詞名稱 for 用戶名.表名稱,范例:create synonym emp for scott.emp
刪除語法:drop synonym 同義詞名稱,范例:drop synonym emp
用戶管理
創(chuàng)建用戶:create user 用戶名 identified by 密碼
用戶授權(quán):grant 權(quán)限1,權(quán)限2.... to 用戶名
如果想要把鎖個(gè)權(quán)限一次性賦予一個(gè)用戶,則可以將這些權(quán)限定義成一組角色,有兩個(gè)角色:connect和resource。
用戶登錄之后再賦權(quán)限。
超級(jí)管理員修改普通用戶密碼:alter user 用戶名 identified by 密碼;
手工使密碼失效:alter user 用戶名 password expire;
鎖住用戶:alter user 用戶名 account lock
解鎖用戶:alter user 用戶名 account unlock
當(dāng)前普通用戶去訪問其他用戶的表,需要授予此張表的權(quán)限(超級(jí)管理員可以操作)
grant 權(quán)限1,權(quán)限2.... on 用戶名A.表1 to 用戶名B,將用戶A的表1的權(quán)限1和權(quán)限2賦給用戶B
回收權(quán)限:revoke 權(quán)限 on 用戶A.表名稱 from 用戶B,將A用戶的權(quán)限從B用戶那里收回來
數(shù)據(jù)庫備份與恢復(fù)
備份:exp
恢復(fù):imp
范例:在d盤上建立一個(gè)data的文件夾,在此文件夾中保存所有的備份文件,如果要備份,則需要使用dos命令行方式
????? 進(jìn)入到d:/data文件夾中。
????? 備份完成之后,為了檢驗(yàn)備份的效果,將數(shù)據(jù)庫中的全部表刪除掉。
總結(jié)
以上是生活随笔為你收集整理的oracle练习(mldn视频课程)四的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [css] 你们团队中css的clas
- 下一篇: 工作260:js判断一个数组是否包含一个