--- title: "Namespace" sidebarTitle: "Namespace" description: "CREATE SCHEMA and DROP SCHEMA — the SQL spelling of namespace DDL." icon: folder-tree keywords: ["namespace", "schema", "create schema", "drop schema", "sql"] --- Enterprise [SQL runs on a deployment.](/sql) A [namespace](/management/namespace) is addressed in SQL as a `SCHEMA` -- the standard's name for the same concept. ## CREATE SCHEMA {#create} ```sql CREATE SCHEMA public CREATE SCHEMA db1.ns1.ns2 CREATE SCHEMA IF NOT EXISTS `ns1$ns2` ``` A dotted path creates the whole chain: `db1.ns1.ns2` creates `ns2` inside `ns1` inside `db1`, provided the parents already exist. A name containing the namespace path delimiter itself is backtick-quoted, as in `` `ns1$ns2` `` above. `IF NOT EXISTS` makes the statement a no-op rather than an error when the namespace is already there. ## DROP SCHEMA {#drop} ```sql DROP SCHEMA db1.public DROP SCHEMA IF EXISTS `a$b` DROP SCHEMA `a$b` RESTRICT ``` `CASCADE` is rejected: **"DROP SCHEMA CASCADE is not supported; drop the objects inside first."** A namespace's tables, views and functions must be dropped explicitly before the namespace itself can go. `RESTRICT` -- the default -- states that requirement rather than changing it. ## What to read next {#next} The SDK equivalent, and how a namespace fits the catalog hierarchy. Creating tables inside a namespace.