creación de tablas en postgresql

25
Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente Creación de Tablas Ing. Eddie Malca Vicente [email protected] @emalca

Upload: eddie-malca

Post on 13-Jun-2015

2.777 views

Category:

Documents


3 download

DESCRIPTION

Administración de Tablas: creación, modificación, eliminación de tabklas base de datos en PostgreSQL.

TRANSCRIPT

Page 1: Creación de tablas en PostgreSQL

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creación de TablasIng. Eddie Malca Vicente

[email protected]

@emalca

Page 2: Creación de tablas en PostgreSQL

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

Page 3: Creación de tablas en PostgreSQL

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

Page 4: Creación de tablas en PostgreSQL

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

Page 5: Creación de tablas en PostgreSQL

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

Page 6: Creación de tablas en PostgreSQL

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

Page 7: Creación de tablas en PostgreSQL

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

Page 8: Creación de tablas en PostgreSQL

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

Page 9: Creación de tablas en PostgreSQL

Tipos de Datos Numéricos

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 10: Creación de tablas en PostgreSQL

Tipos de Datos de Carácter

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 11: Creación de tablas en PostgreSQL

Tipos de Datos de Fecha

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 12: Creación de tablas en PostgreSQL

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

Page 13: Creación de tablas en PostgreSQL

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

Page 14: Creación de tablas en PostgreSQL

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

Page 15: Creación de tablas en PostgreSQL

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

Page 16: Creación de tablas en PostgreSQL

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

Page 17: Creación de tablas en PostgreSQL

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

Page 18: Creación de tablas en PostgreSQL

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

Page 19: Creación de tablas en PostgreSQL

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));

Page 20: Creación de tablas en PostgreSQL

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

Page 21: Creación de tablas en PostgreSQL

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

Page 22: Creación de tablas en PostgreSQL

Borrar Datos de Tabla

• Usamos la sintaxis:

TRUNCATE TABLE nombre-tabla

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 23: Creación de tablas en PostgreSQL

Eliminar Tabla

• Para eliminar una tabla en PostgreSQLusamos la siguiente sintaxis:

DROP TABLE tb_trabajador;

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 24: Creación de tablas en PostgreSQL

Existen muchos más comandos por aplicar…es

tu labor investigar…

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Page 25: Creación de tablas en PostgreSQL

Curso Básico de PostgreSQL – Ing. Eddie Malca Vicente

Creación de TablasIng. Eddie Malca Vicente

[email protected]

@emalca