2012-08-07 47 views
10

如何使用Oracle 11 g和SQL Developer創建一個小而簡單的數據庫? 我看到太多的錯誤,我找不到任何方法來做一個簡單的數據庫。 例如如何使用Oracle 11 g和SQL Developer創建一個小而簡單的數據庫?

create database company; 

引起以下錯誤:

Error starting at line 1 in command: 
create database company 
Error at Command Line:1 Column:0 
Error report: 
SQL Error: ORA-01501: CREATE DATABASE failed 
ORA-01100: database already mounted 
01501. 00000 - "CREATE DATABASE failed" 
*Cause: An error occurred during create database 
*Action: See accompanying errors. 

編輯 - 這是MySQL和MS-SQL,我熟悉的完全不同。 不像我期待的那樣直觀。

+2

在MySQL和MS-SQL中創建數據庫似乎比在Oracle中容易得多。 Oracle真的很難嗎? – 2012-08-07 21:29:17

回答

20

首先,Oracle稱之爲「數據庫」的東西通常與大多數其他數據庫產品稱爲「數據庫」的東西不同。 MySQL或SQL Server中的「數據庫」與Oracle稱之爲「模式」(即特定用戶所擁有的一組對象)非常接近。在Oracle中,每臺服務器通常只有一個數據庫(大型服務器上可能有少數數據庫),每個數據庫有許多不同的模式。如果您使用的是Oracle的快速版本,則每個服務器只允許有1個數據庫。如果您通過SQL Developer連接到Oracle,則表示您已經創建了Oracle數據庫。

假設你真的想創建一個模式,不是一個數據庫(使用Oracle術語),您將創建用戶

CREATE USER company 
    IDENTIFIED BY <<password>> 
    DEFAULT TABLESPACE <<tablespace to use for objects by default>> 
    TEMPORARY TABLESPACE <<temporary tablespace to use>> 

你會然後指定你想

GRANT CREATE SESSION TO company; 
GRANT CREATE TABLE TO company; 
GRANT CREATE VIEW TO company; 
... 
任何權限的用戶

一旦完成,您可以連接到(現有)數據庫作爲COMPANY並在COMPANY模式中創建對象。

+0

我完全迷失了。我看到了一個連接。當我擴展它時,我會看到表格,視圖,,其他用戶。那麼,我該如何創建員工(現在不是公司)的「數據庫」,其中包含表emp,名稱,年齡? – 2012-08-07 21:44:15

+0

@sweetdreams - 您不會創建「數據庫」(使用Oracle術語)。您創建一個模式。爲了創建模式,您需要創建將擁有模式中對象的用戶。然後創建作爲模式一部分的表格,視圖等。你只是想創建一個'僱員'表'emp_id','name'和'age'列嗎? – 2012-08-07 21:52:34

+1

如果沒有「數據庫」的概念,那麼爲什麼Oracle DB文檔具有create database語句?現在讓我們在MySQL中聊聊 - 這就是我想要做的 - 創建名爲Company的數據庫。在裏面製作一張僱員表。員工具有專欄ID,姓名,年齡等。 您可以將其轉換爲Oracle SQL嗎? – 2012-08-07 21:57:57

1

從你的問題描述中,我認爲你應該創建一個數據庫模式,而不是數據庫實例。在Oracle術語中,數據庫實例是文件系統中的一組文件。它更像是MySQL中的數據文件。而MySQL中的數據庫與Oracle的模式有些相同。

要在Oracle中創建一個架構:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6014.htm

在Oracle中創建(我個人比較喜歡CDBA)數據庫實例: https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11068

通知了Oracle Express版本不支持安裝多個數據庫實例一次。

0

其實上面賈斯汀的答案不可能更不正確。 SQL Server和MySQL適用於小型數據庫。 Oracle用於大型企業數據庫,因此它的結構有所不同。在服務器上有多個Oracle數據庫是很常見的,前提是該服務器足夠健壯以處理負載。如果您收到上述錯誤,那麼您顯然正在嘗試創建一個新的Oracle數據庫,如果您正在這樣做,那麼您可能已經瞭解了Oracle數據庫的結構。可能的情況是您試圖使用dbca創建數據庫,它最初失敗,但創建了二進制文件。然後,您調整了初始參數,並重新嘗試使用dbca創建數據庫。但是,該實用程序會查看您正在創建的數據庫的二進制文件和文件夾結構,因此它認爲數據庫已存在但未掛載。刪除數據庫並刪除二進制文件和文件夾以及任何其他初始嘗試的清理應該先完成,然後再試一次。

相關問題