Oracle 表空間和資料物件

2021-09-24 09:45:56 字數 2870 閱讀 5542

#表空間、資料庫物件

#建立同義詞並訪問

create user xiaomei identified by xiaomei;

grant connect to xiaomei;

grant resource to xiaomei;

grant create synonym to xiaomei;

#連線至xiaomei後

create synonym myemp for scott.em;

#刪除同義詞

drop [public] synonym [schema.]sysnonym_name;

#序列#建立乙個從1開始,預設最大值,每次增長1的序列,要求nocycle,快取中有30個預先分配號的序列號

create sequence myseq

minvalue 1

start with 1

nomaxvalue

increment by 1

nocycle

cache 30

/#通過偽列訪問該序列的當前值和下乙個值

select myseq.nextval from dual;

select myseq.currval from dual;

#修改序列

alter sequence

#刪除序列

drop sequence myseq;

#檢視(預定義查詢)

#基於emp和dept建立檢視

create or replace view empdetail

asselect empno,ename,job,hiredate,e.deptno,dname

from scott.emp e

join scott.dept d

on e.deptno = d.deptno

with read only

/select * from empdetail;

#索引#oracle 資料庫會為表的主鍵和包含唯一約束的列自動建立索引。索引可以提高查詢的效 率,但是在資料增刪改時需要更新索引,因此索引對增刪改時會有負面影響

#為 emp 表的 ename 列建立建立唯一索引,為 emp 表的工資列建立普通索引,

把 job 列先變為小寫再建立索引。

create unique index uq_ename_idx on scott.emp(ename);

create index idx_sal on scott.emp(sal);

create index idx_job_lower on scott.emp(lower(job));

#表空間

#系統表空間:system,影響資料庫效能

#臨時表空間:tmep,記憶體不足時將排序類資料臨時寫在該空間內

#使用者自定義空間:使用者可以通過 create tablespace 命令建立表空

#建立乙個表空間,包含兩個資料檔案大小分別是 10mb,5mb,要求 extent 的

大小統一為 1m

create tablespace myspace

datafile 『d:/a.ora』 size 10m,

『d:/b.ora』 size 5m

extent management loacl

uniform size 1m

/#擴充表空間

alter tablespace myspace

add datafile 『d:/c.ora』 size 10m

/#為某一使用者指定預設表空間

create user acong identified by acong

default tablespace myspace

/#為表指定表空間

create table scores

(id number,

term varchar2(2),

stuid varchar2(7) not null,

examid varchar2(7) not null,

writtenscore number(4,1) not null,

labscore number(4,1) not null

)tablespace myspace

/#為索引指定表空間

create index uq_id on scores(id)

tablespace myspace

#回顧:建立同義詞的命令是create synonym

#練習#1.產生乙個用於 dept 表的主鍵值的序列,序列起始值是 100,最大值是 500,增長步 長是 10

create sequence deptseq

minvalue 100

maxvalue 500

increment by 10

/#2.用序列產生 dept 表的主鍵,向 dept 表中插入 3 條記錄

#3.為 dept 表建立乙個同義詞

create synonym dept for scott.dept;

#4.建立乙個檢視包括 emp 表的 empno,ename,job,部門表的 dname 列,只能包含 銷售部的記錄

create or replace view empdetail

asselect empno,ename,job,dname

from scott.emp e

join scott.dept d

on e.deptno = d.deptno

where dname = 『sales』

/select * from empdetail

/5.為 emp 表的 ename 列建立唯一索引

create unique index emp_idx on scott.emp(ename);

oracle 臨時表空間 和資料表空間

oracle臨時表空間主要用來做查詢和存放一些緩衝區資料。臨時表空間消耗的主要原因是需要對查詢的中間結果進行排序。重啟資料庫可以釋放臨時表空間,如果不能重啟例項,而一直保持問題sql語句的執行,temp表空間會一直增長。直到耗盡硬碟空間。網上有人猜測在磁碟空間的分配上,oracle使用的是貪心演算法...

oracle表空間和資料檔案

size medium 表空間是資料庫的邏輯組成部分,在物理上講,資料庫資料存放在資料檔案中,從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或者多個資料檔案組成,表空間由段構成,而段又由區構成,而區又由塊構成。表空間從邏輯上組織資料庫的資料,資料庫邏輯上是由乙個或者多個表空間組成,表空間有以下作...

oracle建立臨時表空間和資料表空間以及刪除

建立臨時表空間 create temporary tablespace zhangmingchaotemp tempfile d oracle zhangmingchaotemp.dbf 初始化大小 size 50m 自動增長 autoextend on 每次擴充套件50m,無限制增長 next 5...