CREAR DOMINIOS CREATE DOMAIN nombre [AS] tipo_datos [DEFAULT {literal|función|NULL}] [[CONSTRAINT nombre] CHECK (expresión_condicional)] TIPOS DE DATOS integer / smallint float(p) / real / double precision numeric(t,d) / decimal (t,d) char(n) varchar(n) bit(n) bit varying(n) date time Enteros Reales Números con formato Cadena de caracteres de longitud fija Cadena de caracteres de longitud variable Cadena de bits de longitud fija Cadena de bits de longitud variable Fecha Hora 1 CREAR TABLAS CREATE TABLE nombre (definición_de_columnas restricciones_de_tabla) CREAR TABLAS (II) • definición_de_columnas: columna {tipo_datos | dominio} [DEFAULT {NULL | literal | función}] [restricciones de columna] • restricciones_de_columna: NOT NULL {PRIMARY KEY | UNIQUE} REFERENCES tabla [(columna)] CHECK (expresión_condicional) 2 CREAR TABLAS (III) • Restricciones de tabla: PRIMARY KEY (lista_columnas) UNIQUE (lista_columnas) FOREIGN KEY (lista_columnas) REFERENCES tabla [(lista_columnas)] CHECK (expresión_condicional) • Puede asignarse nombre a cualquier restricción anteponiendo CONSTRAINT nombre ESQUEMAS • Crear esquema CREATE SCHEMA nombre_esquema AUTHORIZATION propietario definiciones de dominio definiciones de tabla definiciones de vista • Eliminar esquema DROP SCHEMA nombre {CASCADE | RESTRICT} 3 MODIFICAR TABLAS • Eliminar tabla DROP TABLE nombre {CASCADE | RESTRICT} • Añadir columna ALTER TABLE nombre ADD definición_columna • Eliminar columna ALTER TABLE nombre DROP columna {CASCADE | RESTRICT} MODIFICAR TABLAS (II) • Modificar definición de columna ALTER TABLE nombre ALTER columna {SET DEFAULT {NULL | literal | función} | DROP DEFAULT} • Añadir restricción de tabla ALTER TABLE nombre ADD CONSTRAINT restricción_de_tabla • Eliminar restricción de tabla ALTER TABLE nombre DROP CONSTRAINT nombre {CASCADE | RESTRICT} 4 Modificaciones de la BD INSERT INTO tabla {[(lista_columnas)] expresión_tabla | DEFAULT VALUES DELETE FROM tabla [WHERE expresión_condicional] Modificaciones de la BD (II) UPDATE tabla SET lista_asignaciones [WHERE expresión_condicional] asignación: columna = {valor | DEFAULT | NULL} 5