Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Creación de TablasIng. Eddie Malca Vicente
@emalca
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
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
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
Creación de Tablas
• Para crear una tablas en PostgreSQLusamos la siguiente sintaxis:
CREATE TABLE mi_tabla(nombre_campo tipo_dato [ DEFAULT expresión ], ...
);
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
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
Ver estructura de la tabla
• Para visualizar la estructura de la tabla usamos la siguiente sintaxis:
SELECT * FROM information_schema.columnsWHERE table_name = ‘nombre_tabla';
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
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
Tipos de Datos Numéricos
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Tipos de Datos de Carácter
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Tipos de Datos de Fecha
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
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
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
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
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
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
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
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 ANDprice > discounted));
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Ejemplo
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
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));
Modificar Tabla
Cambiar el nombre a una columna:ALTER TABLE empleados RENAME COLUMN nombre_actual TO nombre_nuevoBorrar una columnaALTER TABLE empleados DROP COLUMN nombre_columnaAgregar columnaALTER TABLE empleados ADD COLUMN nombre_columna BOOLEAN DEFAULT trueEliminarle a una columna la restriccion de no aceptar valores nulosALTER TABLE empleados ALTER COLUMN nombre_columna DROP NOT NULLModificar la columna para que apartir de ahora no acepte valores nulosALTER TABLE empledos ALTER COLUMN nombre_columna SET NOT NULL
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Modificar Tabla
Modificar el tipo de dato a una columnaALTER TABLE empleados ALTER COLUMN nombre_columna TYPE smallintEliminar una Foreign-key constraintALTER TABLE empleados DROP CONSTRAINT nombre_foreign_key_fkeyAgregar una foreign-keyALTER TABLE empleados ADD FOREIGN KEY(nombre_columna) REFERENCES nomina(nombre_columna)Eliminar el valor que tiene por default una columnaALTER TABLE empleados ALTER COLUMN nombre_columna DROP defaultAgregar un valor por default a una columnaALTER TABLE empleados ALTER COLUMN nombre_columna SET DEFAULT 125
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Borrar Datos de Tabla
• Usamos la sintaxis:
TRUNCATE TABLE nombre-tabla
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Eliminar Tabla
• Para eliminar una tabla en PostgreSQLusamos la siguiente sintaxis:
DROP TABLE tb_trabajador;
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Existen muchos más comandos por aplicar…es
tu labor investigar…
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente
Creación de TablasIng. Eddie Malca Vicente
@emalca