Please help me understand this statement:

A database in MySQL is a schema in Oracle.

I have just started to use Oracle and I find it different from other RDBMS softwares I have used like MSSQL, MySQL and Derby.

For example to create a database, when I use create database ghazals, it throws an error:

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

Also, commands like show databases do not work here.

2 Answers 2


It's simple.

MySQL has a single daemon that runs the database server. Within the server you can create any number of databases - these databases have no direct mapping to users.

Oracle has a single database. When you create a user in an Oracle database, it also creates a Schema with the same name as the user that created it. This is equivalent to a database in MySQL.

Having seen the edit to your question, you really need to forget about mysql while you learn Oracle. DDL and RDBMS concepts are completely different.

Start with the Oracle Server Concepts guide (link). The Oracle documentation home is here: http://www.oracle.com/pls/db112/homepage.

To create a user, the syntax would be:

create user newbie identified by yourpassword;

You'll then need to grant appropriate privileges to allow the user to connect:

grant connect to newbie;
  • Minor change: A MySQL user can (and perhaps should) be granted permission to access one (or more) database for security. Such a "mapping" is not automatic.
    – Rick James
    Apr 20, 2023 at 17:52

In Oracle, schema contains all the tables, constraints, etc. When in mysql you create create database , in Oracle you create schema. You don't use db1, but alter session set CURRENT_SCHEMA = db1 . Each user has it's own schema, so you get list of schemas by select USERNAME from SYS.ALL_USERS

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.