Search code examples
sqlsql-serverconstraintsrdbms

What are database constraints?


What is a clear definition of database constraint? Why are constraints important for a database? What are the types of constraints?


Solution

  • Constraints are part of a database schema definition.

    A constraint is usually associated with a table and is created with a CREATE CONSTRAINT or CREATE ASSERTION SQL statement.

    They define certain properties that data in a database must comply with. They can apply to a column, a whole table, more than one table or an entire schema. A reliable database system ensures that constraints hold at all times (except possibly inside a transaction, for so called deferred constraints).

    Common kinds of constraints are:

    • not null - each value in a column must not be NULL
    • unique - value(s) in specified column(s) must be unique for each row in a table
    • primary key - value(s) in specified column(s) must be unique for each row in a table and not be NULL; normally each table in a database should have a primary key - it is used to identify individual records
    • foreign key - value(s) in specified column(s) must reference an existing record in another table (via it's primary key or some other unique constraint)
    • check - an expression is specified, which must evaluate to true for constraint to be satisfied