如何使用Oracle 11g和SQL Developer创建一个小而简单的数据库?

swe*_*ams 14 oracle11g oracle-sqldeveloper

如何使用Oracle 11g和SQL Developer创建一个小而简单的数据库?我看到太多错误,我找不到任何方法来创建一个简单的数据库.例如

create database company; 
Run Code Online (Sandbox Code Playgroud)

导致以下错误:

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.
Run Code Online (Sandbox Code Playgroud)

编辑 - 这与我熟悉的MySQL和MS-SQL完全不同.不像我期望的那样直观.

Jus*_*ave 30

首先,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>>
Run Code Online (Sandbox Code Playgroud)

然后,您将为用户分配您想要的任何权限

GRANT CREATE SESSION TO company;
GRANT CREATE TABLE TO company;
GRANT CREATE VIEW TO company;
...
Run Code Online (Sandbox Code Playgroud)

完成后,您可以连接到(现有)数据库,COMPANY并在COMPANY架构中创建对象.

  • @sweetdreams - Oracle中的等价物将是我发布的命令.创建用户`Company`.授予`Company`用户权限.以公司用户身份连接到数据库并运行`CREATE TABLE`语句来创建`Employee`表.当您安装Oracle以创建现在通过SQL Plus连接到的数据库时,安装程​​序会运行`CREATE DATABASE`语句,您的新`Company`模式将驻留在该数据库中 - 通常不需要执行第二次在同一台服务器上. (2认同)