You are on page 1of 13

SENTENCIAS DDL Y DML POSTGRES

SENTENCIAS DDL

SENTENCIAS DDL El Lenguaje de Definicin de Datos (Data Definition Language DDL), sirve para modificar la estructura de los objetos en una base de datos. Estas sentencias bsicamente son: CREATE, ALTER, DROP y TRUNCATE. A continuacin iniciaremos con la creacin de una base de datos.

Creacin de base de datos (DATABASE): Sintaxis: CREATE DATABASE name [ WITH LOCATION = dbpath ] Ejemplo: CREATE DATABASE bddPedidos TEMPLATE template0; Con la lnea CREATE DATABASE bddPedidos TEMPLATE template0; , se crea una tabla a partir de una plantilla que trae postgres llamada template0, el cual nos crea la base de datos totalmente vaca.

Creacin de esquemas (SCHEMAS): Los esquemas son importantes para agrupar objetos segn especificaciones, y al mantener organizado la base de datos permite un mejor desempeo al momento de la administracin. Si no se le asigna un esquema al objeto, postgres lo asignar implcitamente al esquema public. Para definir que un objeto pertenezca a un esquema se pone el nombre del esquema seguido por un ponto y el nombre del objeto. CREATE SCHEMA Persona; CREATE SCHEMA Admision;

Creacin de secuencias (SEQUENCE): CREATE SEQUENCE Persona.seq_idcontacto START 1; --empieza desde 1 CREATE SEQUENCE Admision.seq_idmodalidad START 1; --empieza desde 1

Creacin de tablas (TABLES): Sintaxis: CREATE [ TEMPORARY | TEMP ] TABLE table ( column type [ NULL | NOT NULL ] [ UNIQUE ] [ DEFAULT value ] [column_constraint_clause | PRIMARY KEY } [ ... ] ] [, ... ] [, PRIMARY KEY ( column [, ...] ) ] [, CHECK ( condition ) ] [, table_constraint_clause ] ) [ INHERITS ( inherited_table [, ...] ) ] create table prueba (FechaCreacion date not null default now) Con FechaCreacion date not null default now(), asignaremos la fecha actual por defecto al campo FechaCreacion por medio de la funcin now().

Creacin de restricciones (CHECK): Los valores dentro de CHECK , por ejemplo CHECK (Genero in (1,2, 3, 4,)), son los nicos que sern permitidos insertar en el campo establecido, en este caso se le asigna esa restriccin al campo Genero. Ejemplo: ALTER TABLE Empleados ADD CONSTRAINT ck_Reporta CHECK (reporta_a in (1,2, 3, 4,)) ;

Creacin de restricciones (UNIQUE): Las restricciones UNIQUE, por ejemplo UNIQUE(nombreprov) , aseguran que en los datos en la misma columna, en este caso en el campo nombreprov, no sean repetidas, ya que no puede haber registradas 2 nombres de proveedores con el mismo nombre. Sintaxis: CREATE [ UNIQUE ] INDEX nombre_indice ON tabla [ USING nombre_acceso ]( columna [nombre_operador][, ...] ) Ejemplo: ALTER TABLE Proveedores ADD CONSTRAINT uq_nombreprov UNIQUE(nombreprov)

Creacin de claves primarias (PRIMARY KEYS): Las claves primarias, aparte de prevenir la duplicidad de datos, y servir como nexo para relacionarse con otras tablas, tiene otro fin tambin importante, que es agilizar el proceso de bsqueda, no por el hecho de ser primary key, sino que al momento de la creacin de una clave primaria se crea implcitamente un indice (index). Sintaxis: [ CONSTRAINT name ] { [ NULL | NOT NULL ] | PRIMARY KEY } [, ...] Ejemplo: ALTER TABLE Proveedores ADD CONSTRAINT pk_Proveedorid PRIMARY KEY(Proveedorid) ;

Creacin de claves forneas (FOREIGN KEYS): Las claves forneas son campos que servirn para la relacin entre 2 tablas, la clave primaria de otra tabla se relacionar con la clave fornea de sta. Ejemplo: ALTER TABLE Productos ADD CONSTRAINT fk_ Proveedorid FOREIGN KEY(Proveedorid) references Proveedores (Proveedorid)

SENTENCIAS DDL

SENTENCIAS DML El lenguaje de Manipulacin de Datos (Data Manipulation Language DML) sirve para llevar a cabo las transacciones en las base de datos, entindase por transacciones los procesos de insercin, actualizacin, eliminacin, seleccin. Para mayor explicacin se expone los siguientes ejemplos usando la base de datos PEDIDOS:

Listar datos de Clientes Sintaxis: SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] expression [ AS name ] [, ...] [ INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table ] [ FROM table [ alias ] [, ...] ] [ WHERE condition ] [ GROUP BY column [, ...] ] [ HAVING condition [, ...] ] [ { UNION [ ALL ] | INTERSECT | EXCEPT } select ] [ ORDER BY column [ ASC | DESC | USING operator ] [, ...] ] [ FOR UPDATE [ OF class_name [, ...] ] ] LIMIT { count | ALL } [ { OFFSET | , } start ] Ejemplo: Select * from clientes ; --Se lista todos los elementos de una tabla Select Clienteid, nombrecia,celular from clientes --Se lista ciertos campos de una tabla

Insertar datos en Clientes Sintaxis: INSERT INTO table [ ( column [, ...] ) ] { VALUES ( expression [, ...] ) | SELECT query } Ejemplo: INSERT INTO CLIENTES

VALUES(10,183445667,YARBANTRELLA,PABLOPOLIT,AV.REPUBL ICA, NULL,NULL,NULL,NULL); SELECT * FROM clientes; --Comprobar Insercin

Actualizar datos en Clientes Sintaxis: UPDATE tabla SET columna = expresion [, ...] [ FROM lista ] [ WHERE condicion ] Ejemplo: UPDATE clientes set direccioncli =AV. PATRIA WHERE clienteid =1; SELECT * FROM clientes; --Comprobar Actualizacin

Eliminar datos en Clientes Sintaxis: DELETE FROM table [ WHERE condition ] Ejemplo: DELETE FROM Clientes WHERE clienteid =1; SELECT * FROM clientes; --Comprobar Eliminacin

TIPO DE DATOS

Como todos los manejadores de bases de datos, PostgreSQL implementa los tipos de datos definidos para el estndar SQL3 y aumenta algunos otros. Los definidos por el estndar SQL3 son los siguientes:

Los tipos de datos extendidos en PostgreSQL son:

Tipos de datos definidos por PostgreSQL: