DDL Statements

DDL Statements

This section provides BNF notation for DDL statements.

Tables

The notations below are to create, modify, and drop database tables, respectively:

CREATE TABLE <table_name>
(
 column_name <datatype> [<column_constraint>,...]
                        [DEFAULT <default_value>],...
 [<table_constraint>,...]
 [physical_options]
)
ALTER TABLE <table_name>
{ <vendor_specific_add_column_clause> |
  <vendor_specific_alter_column_clause> |
  <vendor_specific_add_constraint_clause> |
  <vendor_specific_drop_constraint_clause>
}
Note 

ALTER TABLE statement clauses vary for different implementations and can hardly be generalized. See Chapter 5 for more information.

DROP TABLE <table_name>

Indexes

The following two notations are to create and drop database indexes:

CREATE [UNIQUE] INDEX <index_name>
ON <table_name> (<column_name> [ASC|DESC],...)
DROP INDEX <index_name>

Views

The notations below are to create, modify, and drop database views, respectively:

CREATE VIEW <view_name> [(column_name,...)]
AS <select_statement>
[WITH CHECK OPTION]
ALTER VIEW <view_name>
<vendor_specific_alter_view_clause>
DROP VIEW <view_name>

Schemas

The following two notations are to create and to drop database schemas:

CREATE SCHEMA <schema_name> 
AUTHORIZATION <authorization_id>
<create_object_statement>,...
<grant_privilege_statement>,...
Note 

In Oracle, the schema_name token is invalid. You can create schemas in Oracle in your own schema only, and only with your own authorization_id.

DROP SCHEMA <schema_name> RESTRICT
Note 

The foregoing syntax is for DB2 only; Oracle and MS SQL Server don't have DROP SCHEMA statements in their syntaxes.

Stored procedures

The BNF notation to create a stored procedure follows:

CREATE PROCEDURE <procedure_name> [<parameter_section>]
<procedure_definition>
Note 

The preceding specification is generic; the actual syntax is implementation-specific. Refer to vendor-specific documentation for details.

The following notation is to drop a stored procedure:

DROP PROCEDURE <procedure_name>

User-defined functions

The BNF notation to create a user-defined function follows:

CREATE FUNCTION <function_name>
<function_definition_includes_return_statement>
Note 

The preceding specification is generic; the actual syntax is implementation-specific. Refer to vendor-specific documentation for details.

The following notation is to drop a user-defined function:

DROP FUNCTION <function_name>

Triggers

The BNF notation to create a trigger follows:

CREATE TRIGGER <trigger_name>
[BEFORE | AFTER] 
{INSERT | UPDATE | DELETE}
ON <table_name>
[FOR EACH ROW]
<trigger_body>
Note 

The preceding syntax describes only basic trigger functionality; the actual implementations have more options.

The following notation is to drop a trigger:

DROP TRIGGER [qualifier.]<trigger_name>