什么是模式(schema)
創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設公司,我們專注網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)絡營銷、企業(yè)網(wǎng)站建設,買鏈接,廣告投放為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結構的規(guī)劃UI設計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
模式是一個邏輯容器,你可以把模式理解為文件夾,方便我們對一組數(shù)據(jù)庫對象進行管理。通常,一個大的系統(tǒng)由許多小的系統(tǒng)組成,我們可以給每個小的系統(tǒng)創(chuàng)建一個模式,把該系統(tǒng)中用到的數(shù)據(jù)庫對象都創(chuàng)建在這個模式中。例如,每個公司都會有員工,我們可以創(chuàng)建一個模式 HR,然后在 HR 中創(chuàng)建一個表 EMPLOYEES 來維護員工信息,如果需要在其他模式中訪問 EMPLOYEES 表,我們需要指定它的全名 HR.EMPLOYEES。
模式對象
我們可以在模式中創(chuàng)建表(Table), 分區(qū)(Partition), 視圖(View), 索引(Indexe), 包(Package),存儲過程(Procedure),函數(shù)(Function),觸發(fā)起(Trigger),類型(Type), 序列(Sequence), 同義(Synonym)等數(shù)據(jù)庫對象。
創(chuàng)建模式
模式隸屬于某個數(shù)據(jù)庫用戶,模式名和數(shù)據(jù)庫用戶是相同的,那如何創(chuàng)建模式呢?呵呵,很簡單,其實就是創(chuàng)建數(shù)據(jù)庫用戶。
SYS 和 SYSTEM 模式
當我們安裝 Oracle 的時候,系統(tǒng)自動幫我們創(chuàng)建了 SYS 和 SYSTEM 模式,它們擁有最高權限,用來管理數(shù)據(jù)庫,SYSTEM 比 SYS 提供了更多的表。
-- 更多參見:Oracle 精萃
-- 聲明:轉載請注明出處
-- Last edited on 2015-09-04
-- Created by ShangBo on 2015-09-04
-- End
從數(shù)據(jù)庫用戶角度看,數(shù)據(jù)庫中的數(shù)據(jù)是以表、視圖等方式儲存的。那么用戶自己是怎么創(chuàng)建表的呢?簡單的有兩種方式,一種是用戶可以在Oracle提供的SQL*Plus中使用CREATE TABLE語句創(chuàng)建表,也可以通過OEM圖形化工具創(chuàng)建表。
工具/材料
電腦
Oracle 10g
CREATE TABLE創(chuàng)建表 01
首先用戶必須要有CREATE TABLE系統(tǒng)權限,并且只能在自己的模式中創(chuàng)建表,圖中的例子使用CREATE TABLE語句在當前模式中創(chuàng)建了一個共有5列的表:表的名稱為employees,包含 emp_id, name, job,age,dep_id 等5列,后面的number、 varchar2、等為數(shù)據(jù)類型,括號里面為長度。
02
如果想要在其他模式中創(chuàng)建表,則必須在表名前加上模式名,并且用戶還要有CREATE ANY TABLE系統(tǒng)權限,例如圖中語句將在SYSTEM模式中創(chuàng)建employees1表
OEM創(chuàng)建表 01
在OEM主界面中選擇【管理】選項卡,進入如圖所示的數(shù)據(jù)庫管理界面;然后在“數(shù)據(jù)庫對象”中單擊【表】選項。
02
系統(tǒng)進入管理表界面,在該頁面中單擊【創(chuàng)建】按鈕,進入如圖所示的“創(chuàng)建表的組織形式”界面。在該界面中用戶可以選擇創(chuàng)建的表類型---標準表、臨時表或索引表。
03
在選擇創(chuàng)建的表類型后,單擊【繼續(xù)】按鈕,進入如圖所示的“創(chuàng)建表”界面。在“名稱”文本框中輸入要創(chuàng)建表的名稱。系統(tǒng)在“方案”文本框中顯示當前模式,這表示新創(chuàng)建的表將屬于該模式。
04
在“創(chuàng)建表”頁面中選擇“約束條件”選項卡,進入如圖所示的“表約束條件”頁面。該頁面中用戶可以為創(chuàng)建的表定義約束條件,包括主鍵約束(PRIMARY)、唯一約束(UNIQUE)、檢查約束(CHECK)和外鍵(FOREIGN)約束。
05
設置儲存參數(shù),選擇“儲存”選項卡,進入如圖所示的儲存設置界面,最后保存表格,單機【確定】按鈕,系統(tǒng)會根據(jù)用戶對表的設置,創(chuàng)建一個新表。
oracle在創(chuàng)建用戶(user)的時候自動創(chuàng)建一個同名的模式(schema),基本上,你不用區(qū)分模式和用戶,登錄用戶,也就是使用了該模式。
至于用戶(模式)下要創(chuàng)建哪些對象,這個得依據(jù)需求,做出概要設計才能確定。比如圖書表,工作人員表,學生表,圖書借閱記錄表是最基本的,然后還要有很多外圍的支持表(如各種代碼表)和視圖,以及若干存儲過程、觸發(fā)器等進行數(shù)據(jù)處理和保持業(yè)務邏輯的完整性一致性,以及其它的一些OBJECTS。這些細節(jié)是在需求分析的基礎才能確定的。你這一句話太籠統(tǒng),暫時無法確定。
SQL創(chuàng)建用戶johny
2由1234確定
3默認表空間johny_tabspace
4臨時表空間johny_tabspace_temp;
舉例說明
oracle數(shù)據(jù)庫的特點:
一個數(shù)據(jù)庫,可創(chuàng)建多個用戶,然后在每個用戶下創(chuàng)建表,序列等,所以Schema(模式)的概念在oracle數(shù)據(jù)庫中不是很重要,因為我們連接數(shù)據(jù)庫時就是連接的'特定用戶',所以里面不可能存在相同名字的表
***********
Mysql,postgre等其它數(shù)據(jù)庫的特點:
一個用戶,一個庫下可創(chuàng)建多個模式,在同一個模式下不能創(chuàng)建相同名字的表,所以可創(chuàng)建多個模式,在不同的模式中可存在同名字的表,當寫"select * from users"時,如果兩個模式下都有users表 則應該加上模式名字以區(qū)分調用的是那個,語句寫成:"select * from db1.users" ,即體現(xiàn)出"模式"這個概念的作用