Restricciones de columna

Son las restricciones que se aplican a cada columna en el momento de su definición:

    NombreColumna1 TipoDato [ NOT NULL ]
                            [ DEFAULT default_value ]
                            [ AUTO_INCREMENT ]
                            [ UNIQUE KEY | PRIMARY KEY ]
                            [ COMMENT 'comentario' ],

NOT NULL

Define si la columna puede o no tomar valor NULL.

CREATE DATABASE Personas;

USE Personas;

CREATE TABLE Persona(
    Dni VARCHAR(10) PRIMARY KEY,
    Nombre VARCHAR(30),
    Apellidos VARCHAR(50),
    Edad INT NOT NULL # La edad no puede ser null
);

Por defecto, una columna podrá tomar el valor null. Si no queremos permitirlo debemo añadir la claúsula NOT NULL

DEFAULT default_value:

Valor por defecto de la columna, este valor se usará en inserciones que no especifiquen valor para la columna afectada.

CREATE DATABASE Personas;

USE Personas;

CREATE TABLE Persona(
    Dni VARCHAR(10) PRIMARY KEY,
    Nombre VARCHAR(30),
    Apellidos VARCHAR(50),
    Edad INT NULL, # La edad puede ser null
    Pais VARCHAR(2) DEFAULT 'ES' # El país por defecto es ES
);

AUTO_INCREMENT

Permite crear una columna cuyo valor es un número que se incrementa en cada inserción, suele usarse en combinación con PRIMARY KEY

CREATE DATABASE Personas;

USE Personas;

CREATE TABLE Persona(
    PersonId INT AUTO_INCREMENT PRIMARY KEY,
    Dni VARCHAR(10),
    Nombre VARCHAR(30),
    Apellidos VARCHAR(50),
    Edad INT NULL # La edad puede ser null
);

UNIQUE KEY | PRIMARY KEY

Indica que

Sirve para marcar una columna como clave única o clave primaria, dependiendo cuál se use.

CREATE TABLE Persona(
    PersonId INT AUTO_INCREMENT PRIMARY KEY,
    Dni VARCHAR(10) UNIQUE KEY,
    Nombre VARCHAR(30),
    Apellidos VARCHAR(50),
    Edad INT NULL # La edad puede ser null
);

COMMENT 'comentario':

Sirve para añadir un comentario informativo sobre la columna.

CREATE TABLE Persona(
    PersonId INT AUTO_INCREMENT PRIMARY KEY,
    Dni VARCHAR(10) UNIQUE KEY,
    Nombre VARCHAR(30),
    Apellidos VARCHAR(50) COMMENT 'Los dos primeros apellidos',
    Edad INT NULL # La edad puede ser null
);

Last updated