程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle數據庫基本理解

oracle數據庫基本理解

編輯:Oracle教程

一、概念
1. 數據庫 (Database)

什麼是數據庫?
數據庫是依照某種數據模型組織起來並存放二級存儲器中的數據集合。
這種數據集合具有如下特點:
盡可能不重復,以最優方式為某個特定組織的多種應用服務,其數據結構獨立於使用它的應用程序,
對數據的增、刪、改和檢索由統一軟件進行管理和控制。
從發展的歷史看,數據庫是數據管理的高級階段,它是由文件管理系統發展起來的。

什麼是數據庫系統?
數據庫系統是一個實際可運行的存儲、維護和應用系統提供數據的軟件系統,是存儲介質、處理對象和管理系統的集合體。
它通常由軟件、數據庫和數據管理員組成。
其軟件主要包括操作系統、各種宿主語言、實用程序以及數據庫管理系統。
數據庫由數據庫管理系統統一管理,數據的插入、修改和檢索均要通過數據庫管理系統進行。
數據管理員負責創建、監控和維護整個數據庫,使數據能被任何有權使用的人有效使用。
數據庫管理員一般是由業務水平較高、資歷較深的人員擔任

打個比喻吧:
庫據庫就是存放數據的倉庫. 當然倉庫得組織得有序,這需要一套管理方法及管理組織,管理方法及管理組織結合就成了一個管理倉庫的有機體 -- 系統.

2. 數據表空間 (Tablespace)
存放數據總是需要空間, Oracle把一個數據庫按功能劃分若干空間來保存數據。
當然數據存放在磁盤最終是以文件形式,所以一盤一個數據表空間包含一個以上的物理文件

3. Oracle用戶
一個數據庫多個用戶來創建和管理自己的數據, 每個用戶有自己的權限,也可與其他用戶共享數據

4. 數據表
在倉庫,我們可能有多間房子,每個房子又有多個貨架,每架又有多層。
我們在數據庫中存放數據,最終是數據表的單元來存儲與管理的。

5. 數據文件
以上幾個概念都是邏輯上的, 而數據文件則是物理上的。
就是說,數據文件是真正“看得著的東西”,它在磁盤上以一個真實的文件體現.

二、創建

1. 數據庫 當我們安裝好後,一個數據庫系統就安裝好了,其中有一個缺省的數據庫,當然,我們還可以創建新的數據庫.
create database ...

2. 現在我們應該建數據表空間, 就如要存放貨物,起碼首先得把房子建好吧。就是存放東西的空間。表空間就存放數據的空間.
格式: create tablespace 表間名 datafile '數據文件名' size 表空間大小;
example:
create tablespace data_test datafile 'e:\oracle\oradata\test\data_1.dbf' size 2000M;
create tablespace idx_test datafile 'e:\oracle\oradata\test\idx_1.dbf' size 2000M;

(*數據文件名 包含全路徑, 表空間大小 2000M 表是 2000兆)

3. 建好 tablespace, 就可以建用戶了
格式: create user 用戶名 identified by 密碼 default tablespace 表空間表;
example:
create user study identified by study default tablespace data_test;
(*我們創建一個用戶名為 study,密碼為 study, 缺少表空間為 data_test -這是在第二步建好的.)
(*抽省表空間表示 用戶study今後的數據如果沒有專門指出,其數據就保存在 data_test中, 也就是保存在對應的物理文件 e:\oracle\oradata\test\data_1.dbf中)
4. 授權給新用戶
grant connect,resource to study;
--表示把 connect,resource權限授予study用戶
grant dba to study;
--表示把 dba權限授予給 study

5. 創建數據表
在上面,我們已建好了用戶 study 我們現在進入該用戶
sqlplusw study/study@test
然後就可以在用戶study中創建數據表了
格式: create table 數據表名 , 後面的詳細參數,請你在網上搜索 "oracle" "create table" "語法". 太多了,我就不附在這裡了。
下面給一個例子,自己體會.
create table test_user (
no number(5) not null , --pk
username varchar2(30) not null , --用戶名
passpord varchar2(30) not null , --密碼
constraint pk_connectdb primary key(no)
)storage (initial 10k next 10k pctincrease 0);

*下面講解上面命令的各方面的含義
create table test_user --創建數據表
no number(5) not null , --pk
(列名或字段名) 數據類型(數據長度) 該數據列不能為空 ,是列之間的分隔符 --後的內容是注釋

constraint pk_connectdb primary key(no)
(約束) 約束名 (主鍵) (列名) 意思就是 在數據表 test_user中所有行數據 no的值不能相同(這就是主鍵的含義)

storage (initial 10k next 10k pctincrease 0); 這個說起來比較復雜, 反正如果某個數據表要存放大量數據,就把initial和next後的值設置大一點, 否則設置小一點.

既然上面在創建數據表中沒有特別指定 表空間,當然該表就存放在study缺省表空間data_test了.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved