1. Creación de Tablas
Ing. Eddie Malca Vicente
emalca@gmail.com
@emalca
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
2. Qué son las Tablas
• Una tabla es un objeto de datos que contiene
información de forma permanente segmentada
en grupos de datos con tipos y tamaños.
• Poseen restricciones para asegurar la
integridad de la información contenida.
• Se relacionan unas tablas con otras para
asegurar el modelo de datos.
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
3. Algunas consideraciones de
nombres de Tablas y Campos
• Deben empezar con letras.
• Debe tener entre 1 y 63 caracteres.
• Solamente se permiten los siguientes
caracteres; 0-9, a-z, A-Z, _ y $.
• No se permiten nombres duplicados, solo en
Case Sensitive.
• Para mantener nombres en Case Sensitive
debe colocarlos entre comillas dobles.
• Debe utilizar prefijos descriptivos de las tablas
para mejorar la referencia.
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
4. Antes de crear las tablas
• Debemos tener en cuenta el nombre de las
tablas.
• Debemos tener en cuenta los nombres de los
campos que tendrán.
• Debemos tener en cuenta el tipo de datos de
cada campo.
• Las restricciones de cada campo.
• Si tendrá o no relaciones con otras tablas.
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
5. Creación de Tablas
• Para crear una tablas en PostgreSQL
usamos la siguiente sintaxis:
CREATE TABLE mi_tabla(
nombre_campo tipo_dato [ DEFAULT expresión ], ...
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
6. Ejemplos
• Por ejemplo crearemos una tabla
tb_area (sin Llave Primaria)
CREATE TABLE tb_area(
area_id varchar(5),
Area_nombre varchar(40)
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
7. Ver estructura de la tabla
• Para visualizar la estructura de la
tabla usamos la siguiente sintaxis:
SELECT * FROM
information_schema.columns
WHERE table_name = ‘nombre_tabla';
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
8. Listar Tablas de un Schema
• Para listar las tablas de un schema en
PostgreSQL usamos la siguiente sintaxis:
SELECT tablename, tableowner from
pg_tables where schemaname =
‘nombre-schema';
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
9. Tipos de Datos Numéricos
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
10. Tipos de Datos de Carácter
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
11. Tipos de Datos de Fecha
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
12. Creación Tabla con valores
por defecto
• Agregar valores por defecto cuando son
omitidos en su inserción.
CREATE TABLE products (
pk_product integer NOT NULL,
name text NOT NULL,
summary text,
price numeric NOT NULL,
discounted numeric DEFAULT 0 NOT NULL,
company integer NOT NULL
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
13. Restricciones
• Define reglas dentro de una tabla o en
columnas.
• Evita eliminar datos dentro de una tabla que
tiene dependencias.
• Se pueden aplicar mientras crea una tabla o
después.
• Existen los siguientes tipos de restricciones:
–
–
–
–
–
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
14. Restricción NOT NULL
• Evita que una columna en especifico contenga
valores de tipo NULL, en caso de que esta no
contenga la restricción, se permite la inserción
del valor NULL.
CREATE TABLE films (
code char(5) NOT NULL,
title varchar(40) NOT NULL,
summary text
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
15. Restricción UNIQUE
• Restringe un grupo de columnas donde se
requieren que sus valores siempre sean
únicos,
evitando
que
existan
valores
duplicados en dichas columnas.
CREATE TABLE films (
code char(5) NOT NULL,
title varchar(40) NOT NULL,
summary text,
CONSTRAINT un_film UNIQUE (code,
title)
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
16. Restricción PRIMARY KEY
• Define una o mas columnas como clave
primaria de la tabla, haciendo ésta única y
permitir la relación de un registro con otra tabla
para crear la dependencia.
CREATE TABLE films (
code char(5) NOT NULL,
title varchar(40) NOT NULL,
summary text,
company integer NOT NULL,
CONSTRAINT fk_company FOREIGN KEY
(company)
REFERENCES product (pk_product)
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
17. Restricción FOREIGN KEY
• Define una o mas columnas como clave
primaria de la tabla, haciendo ésta única y
permitir la relación de un registro con otra tabla
para crear la dependencia.
CREATE TABLE films (
code char(5) NOT NULL,
title varchar(40) NOT NULL,
summary text,
CONSTRAINT pk_film PRIMARY KEY
(code)
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
18. Restricción CHECK
• Define una o varias condiciones que debe
satisfacer a cada uno de los registro existentes de
forma boleana.
– No se permiten consultas.
– Solo se utilizan operadores de condición y de conjunto.
CREATE TABLE products (
pk_product integer,
name text,
price numeric,
discounted numeric,
CONSTRAINT cn_price CHECK (price > 0 AND
price > discounted)
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
19. Ejemplo
CREATE TABLE companies (
pk_company integer NOT NULL,
name text NOT NULL,
CONSTRAINT un_company UNIQUE (name),
CONSTRAINT pk_company PRIMARY KEY (pk_company));
CREATE TABLE products (
pk_product integer NOT NULL,
fk_company integer NOT NULL,
name text NOT NULL,
summary text,
price numeric NOT NULL,
discounted numeric DEFAULT 0,
CONSTRAINT un_product UNIQUE (name),
CONSTRAINT ck_product CHECK (discounted > 0 AND price > discounted),
CONSTRAINT pk_product PRIMARY KEY (pk_product),
CONSTRAINT fk_company FOREIGN KEY (fk_company)
REFERENCES companies (pk_company));
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
20. Modificar Tabla
Cambiar el nombre a una columna:
ALTER TABLE empleados RENAME COLUMN nombre_actual TO
nombre_nuevo
Borrar una columna
ALTER TABLE empleados DROP COLUMN nombre_columna
Agregar columna
ALTER TABLE empleados ADD COLUMN nombre_columna BOOLEAN
DEFAULT true
Eliminarle a una columna la restriccion de no aceptar valores nulos
ALTER TABLE empleados ALTER COLUMN nombre_columna DROP NOT
NULL
Modificar la columna para que apartir de ahora no acepte valores nulos
ALTER TABLE empledos ALTER COLUMN nombre_columna SET NOT NULL
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
21. Modificar Tabla
Modificar el tipo de dato a una columna
ALTER TABLE empleados ALTER COLUMN nombre_columna TYPE smallint
Eliminar una Foreign-key constraint
ALTER TABLE empleados DROP CONSTRAINT nombre_foreign_key_fkey
Agregar una foreign-key
ALTER TABLE empleados ADD FOREIGN KEY(nombre_columna)
REFERENCES nomina(nombre_columna)
Eliminar el valor que tiene por default una columna
ALTER TABLE empleados ALTER COLUMN nombre_columna DROP default
Agregar un valor por default a una columna
ALTER TABLE empleados ALTER COLUMN nombre_columna SET DEFAULT
125
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
22. Borrar Datos de Tabla
• Usamos la sintaxis:
TRUNCATE TABLE nombre-tabla
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
23. Eliminar Tabla
• Para eliminar una tabla en PostgreSQL
usamos la siguiente sintaxis:
DROP TABLE tb_trabajador;
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
24. Existen muchos más
comandos por aplicar…es
tu labor investigar…
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
25. Creación de Tablas
Ing. Eddie Malca Vicente
emalca@gmail.com
@emalca
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente