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開始的,若想修改可以使用start with n,則可以設置為從n開始,
語法為:create sequence 序列名 start with n
固定取值
create sequence 序列名 maxvalue n increment by m start with l cache k cycle;
序列從l開始按照步長為m開始循環取值,最大值不超過n,緩存為k,k必須小于n,例如m=2,n=10,k=2,則循環取值為:1,3,5,7,9
同義詞
同義詞,可以讓其他用戶通過一個名稱方便的訪問“用戶名.表名稱”。
創建語法:create synonym 同義詞名稱 for 用戶名.表名稱,范例:create synonym emp for scott.emp
刪除語法:drop synonym 同義詞名稱,范例:drop synonym emp
用戶管理
創建用戶:create user 用戶名 identified by 密碼
用戶授權:grant 權限1,權限2.... to 用戶名
如果想要把鎖個權限一次性賦予一個用戶,則可以將這些權限定義成一組角色,有兩個角色:connect和resource。
用戶登錄之后再賦權限。
超級管理員修改普通用戶密碼:alter user 用戶名 identified by 密碼;
手工使密碼失效:alter user 用戶名 password expire;
鎖住用戶:alter user 用戶名 account lock
解鎖用戶:alter user 用戶名 account unlock
當前普通用戶去訪問其他用戶的表,需要授予此張表的權限(超級管理員可以操作)
grant 權限1,權限2.... on 用戶名A.表1 to 用戶名B,將用戶A的表1的權限1和權限2賦給用戶B
回收權限:revoke 權限 on 用戶A.表名稱 from 用戶B,將A用戶的權限從B用戶那里收回來
數據庫備份與恢復
備份:exp
恢復:imp
范例:在d盤上建立一個data的文件夾,在此文件夾中保存所有的備份文件,如果要備份,則需要使用dos命令行方式
????? 進入到d:/data文件夾中。
????? 備份完成之后,為了檢驗備份的效果,將數據庫中的全部表刪除掉。
總結
以上是生活随笔為你收集整理的oracle练习(mldn视频课程)四的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [css] 你们团队中css的clas
- 下一篇: 工作260:js判断一个数组是否包含一个