Name
CREATE/ALTER DATABASE Statement
The ANSI standard does not actually contain a CREATE DATABASE statement. However, since it is nearly impossible to operate a SQL database without this command, we’ve added CREATE DATABASE here. Almost all database platforms support some version of this command.
Platform | Command |
MySQL | Supported, with variations |
Oracle | Supported, with variations |
PostgreSQL | Supported, with variations |
SQL Server | Supported, with variations |
Rules at a Glance
This command creates a new, empty database with a specific name. Most DBMS platforms require the user to possess administrator privileges in order to create a new database. Once the new database is created, you can populate it with database objects (such as tables, views, triggers, and so on) and populate the tables with data.
Depending on the platform, CREATE DATABASE may also create corresponding files on the filesystem that contain the data and metadata of the database.
Programming Tips and Gotchas
Since CREATE DATABASE is not an ANSI command, it is prone to rather extreme variation in syntax between platforms.
MySQL
In MySQL, CREATE DATABASE essentially creates a new directory that holds the database objects:
CREATE { DATABASE | SCHEMA } [IF NOT EXISTS]database_name
[ [DEFAULT] CHARACTER SETcharacter_set
] [ [DEFAULT] COLLATEcollation_set
]
The following is the syntax for MySQL’s implementation of the ALTER DATABASE statement:
ALTER { DATABASE | SCHEMA }database_name
{ [ [DEFAULT] CHARACTER SETcharacter_set
] [ [DEFAULT] COLLATE ...
Get SQL in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.