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