1. Definición de columnas
Valores por defecto
Parte de la sentencia
CREATE TABLE
La definición de una columna incluye:
nombre-columna tipo-dato [ DEFAULT valor ]
[ NOT NULL ]
Especificar DEFAULT ( y NOT NULL ) es
opcional.
DEFAULT permite que el sistema incorpore un
valor por defecto en una columna en caso de
que se omita al hacer un ”insert”
2. Definición de columnas
Valores por defecto
Ejemplo de DEFAULT:
create table Personas (
NIF varchar(9),
NombreAp varchar(75) NOT NULL,
PAI_codigo char(3) DEFAULT 'ESP' NOT NULL
);
3. Inserción de datos
especificar / omitir columnas
La sentencia INSERT INTO elemental:
INSERT INTO nombre-tabla VALUES
( constante/NULL, … ,constante/NULL);
especificamos tantos elementos como atributos
Pero podemos especificar sólo algunas
columnas. Sólo podemos omitir las que
admiten NULL o tienen definido un DEFAULT:
INSERT INTO nombre-tabla (columna, … , columna)
VALUES ( constante/NULL, … ,constante/NULL);
4. Inserción de datos
especificar / omitir columnas
Ejemplo:
INSERT INTO Persona (NIF, NombreAp)
VALUES ( '43123456A', 'Juan De La Cierva' );
Omitimos la columna PAI_codigo porque por
defecto recibirá 'ESP'
5. Definición de columnas
”checks”
Ej: ”Los vendedores con fecha de contrato a partir
del 01/01/1988 no tendrán cuotas superiores a
300.000€”. MySQL lo acepta pero no lo
procesa, PostgeSQL, Oracle... sí
CREATE TABLE Vendedores (
Id INT,
nombre varchar(75) NOT NULL,
fecha_contrato DATE NOT NULL,
cuota int NOT NULL,
…
PRIMARY KEY (Id)
CHECK ( (fecha_contrato < ”1988/01/01”) OR (cuota
< 300000) ) );