Restrict the data values that can be added to a table column. Also see Constraint Clause (Table)
Syntax - In line Constraint:
   CONSTRAINT constrnt_name {UNIQUE|PRIMARY KEY} constrnt_state
   CONSTRAINT constrnt_name CHECK(condition) constrnt_state
   CONSTRAINT constrnt_name [NOT] NULL constrnt_state
   CONSTRAINT constrnt_name REFERENCES [schema.]table [(column)]
      [ON DELETE {CASCADE|SET NULL}] constrnt_state
Syntax - Out of line Constraint:
   CONSTRAINT constrnt_name {UNIQUE|PRIMARY KEY}(column [,column…]) constrnt_state
   CONSTRAINT constrnt_name CHECK(condition) constrnt_state
   CONSTRAINT constrnt_name FOREIGN KEY [schema.]table [(column)]
      REFERENCES [schema.]table [(column)]
        [ON DELETE {CASCADE|SET NULL}] constrnt_state
Syntax - Inline Column Referential Constraint:
   SCOPE IS schema.scope_table
   WITH ROWID
  [CONSTRAINT constrnt_name] REFERENCES [schema.]table (column [,column…])
      [ON DELETE {CASCADE|SET NULL}] constrnt_state [constrnt_state]
'column' can be either a single column name or several columns separated with commas.
Options:
constrnt_state   
    [[NOT] DEFERRABLE] [INITIALLY {IMMEDIATE|DEFERRED}]
       [RELY | NORELY] [USING INDEX using_index_clause]
          [ENABLE|DISABLE] [VALIDATE|NOVALIDATE]
              [EXCEPTIONS INTO [schema.]table]
using_index_clause
    Schema.index
    (CREATE INDEX statement)
    PCTFREE int
    INITTRANS int
    MAXTRANS int
    TABLESPACE tablespace_name
    STORAGE storage_clause
    SORT | NOSORT
    LOGGING|NOLOGGING
    {LOCAL|GLOBAL} PARTITION BY RANGE(column_list)( partition_clause,…)}
partition_clause:
   PARTITION partition VALUES LESS THAN (values list) ptn_storage
   ptn_storage:
      PCTFREE int
      PCTUSED int
      INITTRANS int
      MAXTRANS int
      STORAGE storage_clause
      TABLESPACE tablespace
      LOGGING|NOLOGGING
condition:
An expression that evaluate to TRUE, FALSE or unknown.
   Some examples:
   emp_name = 'SMITH' 
   emp_name IN ('SMITH', 'JONES', 'FRASER') 
   hiredate > '01-JAN-01'
   employees.dept_id = departments.dept_id_pk
   EMP_sal >5000 AND emp_commission IS NULL
  A referential column constraint with ON DELETE CASCADE will cascade deletes 
  - so deleting a primary key row will delete all related foreign keys. 
e.g. delete a customer and all that customer's orders will disappear.
To constrain the maximum value stored in a NUMBER column, a simple alternative is to set a PRECISION on the table column, this restricts the length (i.e. number of digits) that can be inserted. 
  
  This page does not cover the syntax for 'Object Table' Constraints.
Related Oracle Commands:
disable constraint - clause
drop constraint - clause
Syntax for Oracle constraints
Related Views:
 DBA_CONSTRAINTS    ALL_CONSTRAINTS   USER_CONSTRAINTS
 
  DBA_CONS_COLUMNS   ALL_CONS_COLUMNS  USER_CONS_COLUMNS
                                                  
  CONSTRAINT_COLUMNS
                                                  
  CONSTRAINT_DEFS
 
  DBA_CROSS_REFS                                                  USER_CROSS_REFS
  
Valid constraint_types are:
  
  
  Primary key     = P 
  
  Unique Key      = U 
  
  Foreign Key     = R 
  
  Check, not null = C 
  
Check (view)    = V