Está en la página 1de 7

Laboratorio de Sistemas de Informacin Administrativos

Pgina 1

UNIVERSIDAD CATLICA DE SANTA MARA


PROGRAMA PROFESIONAL DE INGENIERA DE SISTEMAS

SESIN 2:

INTRODUCCIN A POSTGRESS

I
OBJETIVOS
Conocer la interfaz de comandos de postgresql
Utilizar sentencias SQL para manipular una base de datos en postgresql

II
TEMAS A TRATAR
SQL Shell de postgresql
Sentencias SQL bsicas

III
MARCO TEORICO
PostgreSQL es un sistema de gestin de bases de datos objeto-relacional, distribuido bajo
licencia BSD y con su cdigo fuente disponible libremente. Es el sistema de gestin de
bases de datos de cdigo abierto ms potente del mercado y en sus ltimas versiones no
tiene nada que envidiarle a otras bases de datos comerciales.
PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos
para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectar el
resto y el sistema continuar funcionando.
Caractersticas
La ltima serie de produccin es la 9.2. Sus caractersticas tcnicas la hacen una de las
bases de datos ms potentes y robustas del mercado. Su desarrollo comenz hace ms de
16 aos, y durante este tiempo, estabilidad, potencia, robustez, facilidad de
administracin e implementacin de estndares han sido las caractersticas que ms se
han tenido en cuenta durante su desarrollo. PostgreSQL funciona muy bien con grandes
cantidades de datos y una alta concurrencia de usuarios accediendo a la vez al sistema.

Es una base de datos 100% ACID (Atomicidad, Consistencia, Aislamiento y


Durabilidad)

Integridad referencial

Tablespaces

Nested transactions (savepoints)

Replicacin asincrnica/sincrnica / Streaming replication - Hot Standby

Ing. Mary Ruelas Llerena

Sesin 2

Laboratorio de Sistemas de Informacin Administrativos

Pgina 2

Two-phase commit

PITR - point in time recovery

Copias de seguridad en caliente (Online/hot backups)

Unicode

Juegos de caracteres internacionales

Regionalizacin por columna

Multi-Version Concurrency Control (MVCC)

Mltiples mtodos de autentificacin

Acceso encriptado va SSL

Actualizacin in-situ integrada (pg_upgrade)

SE-postgres

Completa documentacin

Licencia BSD

Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI
IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.

Programacin / Desarrollo

Funciones/procedimientos almacenados (stored procedures) en numerosos


lenguajes de programacin, entre otros PL/pgSQL (similar al PL/SQL de oracle),
PL/Perl, PL/Python y PL/Tcl)

Bloques annimos de cdigo de procedimientos (sentencias DO)

Numerosos tipos de datos y posibilidad de definir nuevos tipos. Adems de los


tipos estndares en cualquier base de datos, tenemos disponibles, entre otros,
tipos geomtricos, de direcciones de red, de cadenas binarias, UUID, XML,
matrices, etc

Soporta el almacenamiento de objetos binarios grandes (grficos, videos, sonido)

APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP,
Lisp, Scheme, Qt y muchos otros.

SQL

SQL92,SQL99,SQL2003,SQL2008

Llaves primarias (primary keys) y forneas (foreign keys)

Check, Unique y Not null constraints

Restricciones de unicidad postergables (deferrable constraints)

Columnas auto-incrementales

Ing. Mary Ruelas Llerena

Sesin 2

Laboratorio de Sistemas de Informacin Administrativos

Pgina 3

ndices compuestos, nicos, parciales y funcionales en cualquiera de los mtodos


de almacenamiento disponibles, B-tree, R-tree, hash GiST

Sub-selects

Consultas recursivas

Funciones 'Windows'

Joins

Vistas (views)

Disparadores (triggers) comunes, por columna, condicionales.

Reglas (Rules)

Herencia de tablas (Inheritance)

Eventos LISTEN/NOTIFY

IV
ACTIVIDADES
Creando, eliminando y conectndose a bases de datos
SQL es el lenguaje usado para interactuar con las base de datos. Una base de datos es
una aplicacin muy potente para gestionar datos.
Lo primero que se va a hacer es conectarse al SQL Shell que es una ventana de comandos
desde la cual nos conectaremos a postgresql y podremos escribir las sentencias SQL para
hacer las operaciones en la base de datos.

Slo ingresamos la contrasea para el usuario postgres que se ha establecido al momento


de la instalacin, y con eso ya se conecta a la base de datos:

Ing. Mary Ruelas Llerena

Sesin 2

Laboratorio de Sistemas de Informacin Administrativos

Pgina 4

Para usar una base de datos, antes tendremos que crear una. Para hacer eso, desde la lnea
de comandos, hemos de escribir create database prueba; donde prueba es el nombre de
la base de datos que deseamos crear.
Una vez nos hayamos cansado de esa base de datos, solo tendremos que escribir
drop database prueba; y la base de datos con todos sus datos pasar al cementerio virtual
de datos.
Creando y eliminando tablas
Los datos en las bases de datos se guardan en tablas. Una tabla no es ms que lo que se
espera de su nombre, un conjunto de columnas con nombre y filas que son los datos que
se guardan en la tabla. Para crear una tabla escribimos
create table amigos(nombre varchar(50) primary key, direccion varchar(100),
edad integer not null);
Este cdigo nos crea una tabla llamada amigos, con tres columnas, una llamada nombre,
otra llamada direccin y otra llamada edad. Las dos primeras son de tipo varchar, es
decir, que sern caracteres (letras, nmeros, etc.), el 50 y el 100 son el mximo de
caracteres admitidos por cada una. La tercera es de tipo integer, eso quiere decir que solo
admite valores enteros. Primary key en el campo nombre, indica que esa columna ser la
clave primaria de la tabla, eso implica que no puede haber dos filas con el mismo nombre
y que el nombre no puede ser nulo. Not null en edad indica que el campo edad debe
llenarse, direccin, en cambio, podra ser nulo, es decir una fila podra tener nombre y
edad pero no direccin.
Para eliminar una tabla el procedimiento a seguir es
drop table amigos;
Insertando datos
Ahora que tenemos una base de datos y una tabla donde guardar los datos, podemos
insertar algunos datos en ellas. Para insertar datos se escribe lo siguiente:
insert into amigos values('Justo Gonzalez','C Maestro Serrano',20);
Ing. Mary Ruelas Llerena

Sesin 2

Laboratorio de Sistemas de Informacin Administrativos

Pgina 5

insert into amigos values('Fernando Ramirez',null,20);


insert into amigos values('Perico Palotes',null,19);
Esto nos insertar en la tabla amigos tres filas, una nuestro amigo Justo, otra con nuestro
amigo Fernando y otra con el nombre Perico Palotes, notar que los caracteres como Justo
Gonzlez van entre comillas simples, en cambio, los nmeros como 20, no, el valor nulo,
se representa como null. As podemos insertar ms registros, si por casualidad queremos
ingresar un registro con el nombre Justo Gonzalez, igual al primer registro ingresado,
nos dar un error de clave primaria y no nos permitir insertarlo, ya que no pueden haber
dos registros con la misma clave primaria, en este caso el nombre.
Consultando datos
Finalmente hemos conseguido tener datos en la base de datos, pero una cosa por la que
almacenamos datos es para poder consultarlos. Esto se puede hacer con la sentencia
select:
select * from amigos;
que retorna esto

El * significa que seleccione todos los campos de la tabla, si solo quisiramos ver el
nombre y la edad, haramos
select nombre, edad from amigos;

Si solo quisiramos ver el nombre de los que tuvieran ms de 19 aos haramos


select nombre from amigos where edad > 19;

Ing. Mary Ruelas Llerena

Sesin 2

Laboratorio de Sistemas de Informacin Administrativos

Pgina 6

Eliminando y modificando datos


Qu pasa si por ejemplo a Perico Palotes se le sube la fama a la cabeza y deja de ser
nuestro amigo? Pues tendremos que eliminarlo de nuestra base de datos, eso se hara con
la siguiente sentencia
delete from amigos where nombre='Perico Palotes';
Se debe tener mucho cuidado al usar la sentencia delete, siempre verificar que la parte
del where de la sentencia, est de acuerdo a lo que queremos borrar, ya que ste ser
nuestro filtro y si no consideramos un where en el delete, borrar todo el contenido de la
tabla.
Tambin puede pasar, que nuestros amigos cambien de edad, por lo tanto, tendramos
que hacer:
update amigos set edad=21 where nombre='Justo Gonzlez';
De igual manera siempre verificar la parte del where, sino actualizaramos datos de
registros que no deseamos.

V
EJERCICIOS
En la base de datos prueba, crear la tabla clientes, con los siguientes campos:

Cdigo, numrico (8) primary key


Nombre, caracter (60)not null
Direccin, caracter (5)
RUC, caracter (11) not null
Tipdoc, carcter (2) not null
Docide, carcter (8) not null
Vendedor, numrico (4)
Fec_nacim, fecha
Fec_ingreso, fecha not null
Monto_venta, float not null

Ingresar 10 registros con distintos datos entre s y luego de ingresados, mostrar:

Todos los registros


Los cdigos y nombres del vendedor 1
Los cdigos, nombres, direccin y RUC de los que tengan un monto_venta mayor
a 1000.
Los nombres ordenados alfabticamente
Los cdigos y monto_venta ordenados por monto_venta en forma descendente
Todos los registros que no tengan direccin

Cree la tabla agenda, con los siguientes campos: apellido (cadena de 30), nombre
(cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11).
Ing. Mary Ruelas Llerena

Sesin 2

Laboratorio de Sistemas de Informacin Administrativos

Pgina 7

Ingrese los siguientes registros:


Acosta, Ana, Colon 123, 4234567;
Bustamante, Betina, Avellaneda 135, 4458787;
Lopez, Hector, Salta 545, 4887788;
Lopez, Luis, Urquiza 333, 4545454;
Lopez, Marisa, Urquiza 333, 4545454.
Seleccione todos los registros de la tabla
Seleccione el registro cuyo nombre sea "Marisa" (1 registro)
Seleccione los nombres y domicilios de quienes tengan apellido igual a
"Lopez" (3 registros)
Muestre el nombre de quienes tengan el telfono "4545454" (2 registros)

VI
CUESTIONARIO
1. Qu es PostgreSQL?
2. Cules son las principales caractersticas de PostgreSQL?
3. Para qu sirve el lenguaje SQL?
4. Cules son las 4 sentencias bsicas de SQL?

VII
BIBLIOGRAFIA Y REFERENCIAS
MCLEOD, Raymond, Sistemas de Informacin Gerencial, Prentice Hall
Hispanoamericana, Mxico, 1998.
DAVIS, Gordon y OLSON, Margrethe. Sistemas de Informacin Gerencial,
McGraw-Hill, Mxico, 1990.
SCOTT, GEORGE M., Principios de Sistemas de Informacin, McGraw-Hill,
Mxico, 1992.
PRESSMAN, Roger S. Ingeniera del Software, Un Enfoque Prctico,
McGraw-Hill, Espaa, 1989
MARTIN, James. Sistemas de Informacin, El Ateneo, Argentina, 1991.
MCKEEVER, James M. Sistemas de Informacin para la Gerencia, Limusa,
Mxico, 1990.
BARROS, Oscar, Tecnologas de la Informacin y su uso en Gestin, McGraw
Hill, Santiago, 1998
LAUDON, Kenneth, Laudon Jane. Administracin de los Sistemas de
Informacin.

Organizacin

Tecnologa.

Mxico:

Prentice

Hall

Hispanoamericana. 1996
MURDICK, Robert G. Sistemas de Informacin Administrativa. McGraw-Hill,
Mxico, 1992.
Ing. Mary Ruelas Llerena

Sesin 2