web-dev-qa-db-ja.com

MySQLのデータベースはOracleのスキーマです:私はこのステートメントを理解していません

このステートメントを理解するのを手伝ってください:

MySQLのデータベースはOracleのスキーマです。

私はOracleを使い始めたばかりで、MSSQL、MySQL、Derbyなど、他のRDBMSソフトウェアとは異なることに気づきました。

たとえば、データベースを作成するためにcreate database ghazalsを使用すると、エラーがスローされます。

ERROR at line 1:
ORA-01501: CREATE DATABASE failed 
ORA-01100: database already mounted

また、show databasesなどのコマンドはここでは機能しません。

6
Suhail Gupta

それは簡単です。

MySQLには、データベースサーバーを実行する単一のデーモンがあります。サーバー内では、任意の数のデータベースを作成できます。これらのデータベースには、ユーザーへの直接のマッピングはありません。

Oracleには単一のデータベースがあります。 Oracleデータベースでユーザーを作成すると、それを作成したユーザーと同じ名前のスキーマも作成されます。これはMySQLのデータベースに相当します。

あなたの質問への編集を見て、Oracleを学ぶ間は本当にmysqlを忘れる必要があります。 DDLとRDBMSの概念は完全に異なります。

Oracle Serverの概念ガイド( link )から始めます。 Oracleドキュメントのホームはこちらです http://www.Oracle.com/pls/db112/homepage

ユーザーを作成するには、構文は次のようになります。

create user newbie identified by yourpassword;

次に、ユーザーが接続できるように適切な権限を付与する必要があります。

grant connect to newbie;
18
Philᵀᴹ

Oracleでは、スキーマにはすべてのテーブル、制約などが含まれます。mysqlでcreate databaseを作成すると、Oracleでスキーマが作成されます。あなたはuse db1ではなくalter session set CURRENT_SCHEMA = db1です。各ユーザーには独自のスキーマがあるため、select USERNAME from SYS.ALL_USERSによってスキーマのリストを取得します

6
a1ex07