MySQL 中的数据库是 Oracle 中的模式:我不明白这个说法

Suh*_*pta 6 mysql rdbms oracle

请帮助我理解这个声明:

MySQL 中的数据库是 Oracle 中的模式。

我刚刚开始使用 Oracle,我发现它与我使用过的其他 RDBMS 软件(如 MSSQL、MySQL 和 Derby)不同。

例如创建一个数据库,当我使用时create database ghazals,它会抛出一个错误:

ERROR at line 1:
ORA-01501: CREATE DATABASE failed 
ORA-01100: database already mounted
Run Code Online (Sandbox Code Playgroud)

此外,像show databases这样的命令在这里不起作用。

Phi*_*lᵀᴹ 18

这很简单。

MySQL 有一个单独的守护进程来运行数据库服务器。在服务器内,您可以创建任意数量的数据库——这些数据库没有直接映射到用户。

Oracle 有一个数据库。当您在 Oracle 数据库中创建用户时,它还会创建一个与创建它的用户同名的模式。这相当于 MySQL 中的一个数据库。

看过对您的问题的编辑后,您在学习 Oracle 时确实需要忘记 mysql。DDL 和 RDBMS 概念完全不同。

从 Oracle 服务器概念指南(链接)开始。Oracle 文档主页位于:http : //www.oracle.com/pls/db112/homepage

要创建用户,语法将是:

create user newbie identified by yourpassword;
Run Code Online (Sandbox Code Playgroud)

然后,您需要授予适当的权限以允许用户连接:

grant connect to newbie;
Run Code Online (Sandbox Code Playgroud)

  • 不。很抱歉,我的意思是,但如果你不断改变你的要求,这个问题可能在 5 年后仍然存在。你需要学习。阅读我链接到的文档 - 它非常彻底。Oracle 是一个极其复杂的商业 RDBMS,不能指望您只是拿起它。 (5认同)
  • @SuhailGupta 如果您还有其他 ** 特定** 问题符合我们常见问题解答中的指南,请随时将其作为单独的问题发布。不接受在**评论** 部分添加更多问题。 (5认同)

a1e*_*x07 7

在 Oracle 中,schema 包含所有表、约束等。在 mysql 中创建 create database 时,在 Oracle 中创建 schema。你没有use db1,但是alter session set CURRENT_SCHEMA = db1。每个用户都有自己的架构,因此您可以通过以下方式获得架构列表select USERNAME from SYS.ALL_USERS