Oracle-数据库对象(index、synonsym、view、sequence、tablespace)
同義詞synonym
同義詞是數據庫對象的一個別名,Oracle可以為表、視圖、序列、過程、函數、程序包等指定一個別名
有私有同義詞,公有同義詞
創建同義詞
create [ or replace ] [ public ] sysnonym 同義詞名稱 for 用戶名.對象名稱 (對象是用戶下的表等等)注意: []中是可選項可加可不加,synonym默認私有
刪除同義詞
drop [public] synonym 同義詞名稱drop sysnoym myemp注意:public同義詞只是為數據庫對象定義了一個公共的別名,其他用戶能否通過這個別名訪問這個數據庫對象,還要看是否已經為這個用戶授權
序列sequence
序列是Oracle專有的對象,他用來產生一個自動遞增/遞減的數列
創建序列
create sequence 序列名稱[increment by n] -------- 創建序列名稱遞增的序列值是n,如果n是正數就遞增,如果是負數就遞減,默認是1[start with n] -------- 開始的值為n ,遞增默認是minvalue,遞減是maxvalue[{maxvalue n | nomaxvalue}] -------- 最大值[{minvalue n | nominvalue}] -------- 最小值[{cycle | nocycle}] -------- 循環/不循環[{cache n | nocache}] -------- 分配并存入到內存中 例如:create sequence seq_nameincrement by 1start with 1nomaxvaluenocache;nextval 應在 currval 之前指定 ,二者應同時有效
currval 表示序列的當前值,新序列必須使用一次nextval 才能獲取到值,否則會報錯
nextval 表示序列的下一個值。新序列首次使用時獲取的是該序列的初始值,從第二次使用時開始按照設置的步進遞增
查詢序列的值
select seq_name.[currval,nextval] from dual; --序列 在 實際開發中的使用:insert 實現主鍵自增insert into emp (eid) values (seq_name.nextval);修改序列
alter sequence 序列名稱 [increment by n] -------- 創建序列名稱遞增的序列值是n,如果n是正數就遞增,如果是負數就遞減,默認是1[start with n] -------- 開始的值為n ,遞增默認是minvalue,遞減是maxvalue[{maxvalue n | nomaxvalue}] -------- 最大值[{minvalue n | nominvalue}] -------- 最小值[{cycle | nocycle}] -------- 循環/不循環[{cache n | nocache}] -------- 分配并存入到內存中刪除序列
drop sequence 序列名稱視圖
視圖對應一條select語句,虛表
查詢視圖就是在執行查詢語句,查詢背后的數據庫表
視圖只是一條查詢語句 ,本事沒有數據,不占用存儲空間
對視圖進行 添加 刪除 修改 操作,就是 對 數據庫表進行 添加 刪除 修改 操作
視圖的作用
使用視圖,可以定制用戶數據,聚焦特定的數據。
使用視圖,可以簡化數據操作。
使用視圖,基表中的數據就有了一定的安全性
使用視圖,可以合并分離的數據,創建分區視圖
創建視圖
create [ or replace ] [ { force | noforce } ]view 視圖名稱 as select語句 [ with read only constraint ]force:即使基表不存在,也可以創建該視圖,但是該視圖不能正常使用,當基表創建成功后,視圖才能正常使用。
noforce:如果基表不存在,無法創建視圖,該項是默認選項。
with read only:說明視圖是只讀視圖,不能通過該視圖進行增刪改,操作默認可以通過視圖對基表執行增刪改操作,但是有很多在基表上的限制(比如:基表中某列不能為空,但是該列沒有出現在視圖中,則不能通過視圖執行insert操作)
create or replace view myview01asselect * from emp刪除視圖
drop view 視圖名稱索引
索引是數據庫對象之一,用于加快數據的檢索,類似于書籍的索引。在數據庫中索引可以減少數據庫程序查詢結果時需要讀取的數據量,類似于在書籍中我們利用索引可以不用翻閱整本書即可找到想要的信息
創建索引
create [ unique ] index 索引名稱 on 表名(字段名)刪除索引
drop index 索引名稱表空間
表空間是數據庫中最大的邏輯單位,Oracle數據庫采用表空間將相關的邏輯組件組合在一起,一個Oracle數據庫至少包含一個表空間。每個表空間由一個或多個數據文件組成,一個數據文件只能與一個表空間相聯系
在每一個數據庫中都有一個名為SYSTEM的表空間,即系統表空間,該表空間是在創建數據庫或數據庫安裝時自動創建的,用于存儲系統的數據字典表、程序單元、過程、函數、包和觸發器等
創建表空間
create tablespace 表空間名稱datafile '數據文件路徑' size 大小 ------ 初始表空間大小,單位為K或者M[ autoextend on ] ------是否自動擴展[ next 大小 ] ------文件滿了后擴展大小[ maxsize 大小 ] ------文件最大大小,值為數值或unlimited(表示不限大小)[ extent management local ] ------指明表空間類型,本地管理表空間[ uniform size 大小 ] ------ 指定每個分區大小統一 create tablespace myspacedatafile 'c:/m.ora'size 10M,'c:/nora'size 10Mextent management localuniform size 2M修改表空間
alter tablespace 表空間名稱 add datafile '文件路徑' size 大小[ autoextend on ][ next 大小 ][ maxsize 大小 ]刪除表空間
只是刪除表空間
drop tablespace 表空間名稱刪除表空和數據文件
drop tablespace 表空間名稱 including contents and datafiles總結
以上是生活随笔為你收集整理的Oracle-数据库对象(index、synonsym、view、sequence、tablespace)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CUDA学习(三)之使用GPU进行两个数
- 下一篇: 20172307 2018-2019