Your SlideShare is downloading. ×
0
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Aprendiendopostgresql 090812172635-phpapp01
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Aprendiendopostgresql 090812172635-phpapp01

682

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
682
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. by: Geniz SWF Aprenda PostgreSQL 8.x sobre Linux en N Diapositivas by: Domínguez Geniz Amalio Javier ajdgeniz@hotmail.com ajdgeniz@gmail.comJavier Firmado digitalmente por Javier Dominguez Geniz Nombre de reconocimiento ajdgeniz@yahoo.com.mxDomingue (DN): cn=Javier Dominguez Geniz, o=Geniz SWF, ou=Geniz SWF, email=ajdgeniz@hotmail. Junio 2009z Geniz com, c=MX Fecha: 2009.08.02 16:55:28 -0500 1
  • 2. ¿Qué es PostgreSQL?PostgreSQL es un sistema manejador de bases de datos relacionales basado enpostgres 4.2, desarrollado en el departamento Berkeley de Ciencias de la computaciónen la universidad de California. Postgres es Open Source descendiente del códigooriginal “Berkeley”, soporta el estándar SQL y ofrece otros recursos tales como:* complex queries* foreign keys* triggers* views* transactional integrity* multiversion concurrency control* index methods* procedural languagesPostgres puede ser usado, modificado o distribuido para uso privado, comercial oAcadémico 2
  • 3. Instalación PostgreSQL by: Geniz SWF. De la colección ”Student to Student”Para la instalación de Posgresql sobre plataformas UNIX, en este caso Linux, podemosdescargar un archivo con la extensión .bin, desde la pagina principal de postgresql,después abra su terminal que generalmente se encuentra en el menúaplicaciones->Accesorios-->Terminal, o presione ALT+F2 y escriba ”gnome-terminal”,ahora dirijase a la carpeta donde se encuentra el archivo .bin y teclee el siguientecomando:./postgresql-8.3.6-1-linux.binUna vez iniciada la instalación, aparecerá un Wizard que lo guiara como si estuviera enun entorno Windows, solo siga los pasos del asistente y el, se encargara tanto de lacopia de archivos, configuraciones y el levantamiento del demonio (Servicio). 3
  • 4. by: Geniz SWFUna vez que postgresql ha sido instalado, encontrara un acceso directo en el menúaplicaciones, donde se ha creado un submenu llamado ”PostgreSQL”, en este menúencontrara acceso a la documentación, al constructor de la pila de aplicaiones, a laconfiguración del servidor, a la consola de psql, yunao de las utilidadees masimportantes que es el PgAdmin lll, que es una interfaz gráfica parecida al QueryBrowser de MySQL. Aunque en este caso no utilizaremos pgadmin, sino queutilizaremos solo la terminal de Gnome.Una vez que ya se encuentra instalado Postgresql, ahora iniciaremos creando nuestraprimera base de datos, recuerde NO utilizar PGADMIN, como se indico anteriormentenos enfocaremos a la creación y manipulación de bases de datos, tablas, etc, pero solodesde la terminal, al final se agregara un pequeño apéndice para que usted aprenda unpoco del uso y funcionamiento de PGAdmin 4
  • 5. Creando una Base de Datos by: Geniz SWFAhora iniciaremos con la creación de una base de datos llamada MiBase, para ello haremosantes algunas configuraciones dentro de nuestra terminal, a continuación siga los siguientespasos:1. Debe abrir la terminal de Gnome y logearse con el usuario postgres, si se dio cuentacuando postgres se instalaba creo un nuevo usuario llamado postgres que tiene la clave queud. Introdujo en la configuración del servidor. Para ello escriba en la terminal:1. login postgres y escriba su password(No se visualiza nada mientras lo escribe)2. ahora con el comando cd diríjase hasta la carpeta bin, (por default el usuario postgres tienecomo predeterminada la carpeta de instalación), así que solo teclee cd bin 5
  • 6. Creando una Base de Datos by: Geniz SWFUna vez dentro del directorio bin, escriba lo siguiente:./createdb MiBaseA continuación postgres le pedirá su password, solo escribalo y la base estará creada.Si en la terminal se llegara a lanzar el mensaje de comando no encontrado, asegúrese deestar en el directorio correcto donde ese encuentra postgres, otro posible error puede ser queomitió ./ asegúrese de escribirlo tal y como se muestra en el dibujo. También puedeasegurarse de que se encuentra en l directorio correcto escribiendo el comando ls, el cualmostrara la lista de archivos del directorio, si aparece el archivo createdb esta en el correcto. 6
  • 7. Accediendo a una Base de Datos (MiBase) by: Geniz SWFYa que creamos la base de datos, accederemos a ella con ayuda de psql, cabe mencionarque este manejador de base de datos no tiene un comando USE como el de MySQL o el deSQL Server, así que utilice psql de la siguiente manera:1. teclee psql, seguido del nombre de la base de datos a la que se quiere acceder:./psql MiBaseEn ese instante se le pedirá su password, tecleelo y enseguida aparecerá una bienvenida a laterminal interactiva de postgres, y como se dará cuenta nuestra base de datos seleccionadaya es MiBase, eso significa que todas las consultas que realicemos se ejecutarandirectamente sobre nuestra base de datos de ejemplo. 7
  • 8. Ejecutando consultas con PSQL by: Geniz SWFAhora probaremos un poco la terminal interactiva llamada psql: para probarla teclee lassiguientes consultas:SELECT version();SELECT current_date;SELECT 2 + 2; 8
  • 9. Creando una Tabla by: Geniz SWFAhora crearemos una tabla llamada climas, este ejemplo nos servira para verificar suestructura:CREATE TABLE climas ( ciudad varchar(80), temp_baja int, -- baja temperatura temp_alta int, -- alta temperatura prcp real, -- precipitacion fecha date);Nota: como podrá darse cuenta los dos guiones indican un comentario –comentarioListo, ahora ya tenemos nuestra primera tabla de ejemplo. 9
  • 10. Creando una Tabla by: Geniz SWFAhora crearemos otra tabla llamada ciudades, una de las cualidades de esta es que utilizaraun tipo de dato especifico de postgres, el tipo POINT el cual sera explicado un poco masadelanteCREATE TABLE ciudades ( nombre varchar(80), localizacion point);Nota: Si desea eliminar una tabla utilice el siguiente comando:DROP TABLE tablename; 10
  • 11. El Statement INSERT by: Geniz SWFYa creadas nuestras tablas ahora procederemos a utilizar INSERT el Statement (Sentencia)que nos servirá para insertar datos en nuestras tablas, su sintaxis puede ser alguna de lassiguientes:INSERT INTO climas ( ciudad, temp_baja , temp_alta, prcp, fecha) VALUES (Mexico, 5, 30, 0.25, 2009-06-23);INSERT INTO climas VALUES (Atlautla, 5, 30, 0.25, 2009-06-23); 11
  • 12. El Statement SELECT by: Geniz SWFComo se menciono anteriormente postgres soporta el estándar SQL así que para realizar unaconsulta, puede utilizar el Statement SELECT con sus respectivas cláusulas FROM, WHEREy los operadores. Por ejemplo:--Esto nos Arrojara una tabla con todos los registrosSELECT * FROM climas;--Esto nos una tabla con los campos especificadosSELECT Ciudad, temp_baja,temp_alta FROM climas;--Esto nos mostrará solo la ciudad llamado Atlautla solo si su prcp(precipitación) es mayor a20SELECT * FROM climas WHERE Ciudad = Atlautla AND prcp > 0.20;--Muestra todos los registros ordenados por el nombre de la ciudadSELECT * FROM climas ORDER BY ciudad;--Elimina registros duplicadosSELECT DISTINCT ciudad FROM climas; 12
  • 13. Operadores by: Geniz SWFAND Y lógica o ConjunciónOR O logica o Disyunción= Igual a>= Mayor o Igual<= Menor o Igual<> o != Diferente 13
  • 14. JOINS by: Geniz SWFMuchas veces necesitamos acceder a mas de una tabla al mismo tiempo, para ello utilizareslos joins que nos permitirán acceder a múltiples registros de dos o mas tablas al mismotiempo. Un JOIN es la unión de dos o mas tablas. Por ejemplo:SELECT * FROM climas, ciudades WHERE ciudad= Mexico;SELECT climas.ciudad,climas.temp_baja,climas.temp_alta,climas.prcp, climas.fecha,ciudades.localizacionFROM climas, ciudades WHERE ciudades.nombre = climas.ciudad; 14
  • 15. JOINS by: Geniz SWFSELECT * FROM climas INNER JOIN ciudades ON (climas.ciudad = ciudades.nombre);SELECT * FROM climas LEFT OUTER JOIN ciudades ON (climas.ciudad = ciudades.nombre);SELECT * FROM climas t, ciudades c WHERE t.ciudad = c.nombre; 15
  • 16. Funciones de Agregación by: Geniz SWFLas funciones de agregacion realizan operaciones con un conjunto de valores. Por ejemplo:encontrar promedios o encontrar el máximo o mínimo valor.SELECT max(temp_baja) FROM climas;SELECT ciudad FROM climas WHERE temp_baja = (SELECT max(temp_baja) FROM climas);SELECT ciudad, max(temp_baja) FROM climas WHERE ciudad LIKE M% GROUP BY ciudad HAVING max(temp_baja) < 40; 16
  • 17. UPDATE by: Geniz SWFEste Statement se utiliza para actualizar algunos datos o cuando estos han cambiado osimplemente por algún error en la inserción Por ejemplo:SELECT * FROM climas;UPDATE climas SET temp_alta = temp_alta - 2, temp_baja = temp_baja - 5 WHERE fecha >= 2009-06-23; 17
  • 18. DELETE by: Geniz SWFDelete Statement se utiliza para eliminar registros de las tablas, Por ejemplo:DELETE FROM climas WHERE ciudad=Mexico;Su sintaxis es:DELETE FROM NombreTabla (Condicion); 18
  • 19. Vistas by: Geniz SWFUna vista es una tabla virtual que puede contener campos de una o varias tablas, y estas a suvez se manipulan como tablas, cualquier Statement SELECT puede ser una vista, Para crearuna vista:CREATE VIEW MiVista AS SELECT ciudad, temp_baja, temp_alta, prcp, fecha, localizacion FROM climas, ciudades WHERE ciudad = nombre; 19
  • 20. Foreign Keys by: Geniz SWFUna llave foránea es una referencia entre tablas (campo coincidente), el hecho de no tenerlasharía que nuestros datos no tengan integridad referencial ya que no podemos asegurarnos deque nuestros registros no estén duplicados, si ahora agregamos llaves foráneas a nuestrastablas de ejemplo, su estructura quedaría de la siguiente manera: CREATE TABLE ciudades ( ciudad varchar(80) primary key, localizacion point ); CREATE TABLE climas ( ciudad varchar(80) references ciudades(ciudad), temp_baja int, temp_alta int, prcp real, fecha date ); Ahora si tratáramos de hacer una inserción en la tabla climas postgres lanzara un error indicando que ese campo no existe en la tabla ciudades, por tanto nuestros datos quedaran íntegros y no abra información demás. NOTA: Un campo para poder ser llave foránea deberá ser del mismo tipo de dato de la otra tabla. 20
  • 21. Transacciones (ROLLBACK) by: Geniz SWFLas transacciones son fundamentales en cualquier sistema manejador de base de datos ya que nos permiten ejecutarmúltiples consultas y hacer que todas se ejecuten o que ninguna lo haga. En el siguiente ejemplo haremos unatransacción para modificar la temperatura baja de la ciudad Atlautla. Si se da cuenta al principio se muestran losregistros originales, despues iniciampos la transaccion conb el comando BEGIN, despues ejecutamos un UPDATE, ypara terminar con la transaccion usamos ROLLBACK, y como se dara cuenta los datos quedaron intactos ya queROLLBACK deshace todas las operaciones que escribimos y por tanto ninguna, en este caso el UPDATE no fueejecutado, pero si desea que lops cambios sean permanentes utilize COMMIT. 21
  • 22. Transacciones (COMMIT) by: Geniz SWF En este caso las actualizaciones fueron realizadas sobre los dos registros gracias al comando COMMIT, si hubiéramos escrito ROLLBACK, ninguna de ellas hubiera sido efectuada, esto se debe al ACID de SQL. Cabe mencionar también que si intenta acceder a la tabla durante la transacción no le sera posible debido a que durante esta, las tablas son aisladas(Isolation). 22
  • 23. Herencia by: Geniz SWFEste es un concepto básico de las base de datos orientados a objetos, pero postgres tabien loimplementa, por ejemplo considere dos tablas:CREATE TABLE capitals ( name text, population real, altitude int, -- (in ft) state char(2));CREATE TABLE non_capitals ( name text, population real, altitude int -- (in ft));CREATE VIEW cities AS SELECT name, population, altitude FROM capitals UNION SELECT name, population, altitude FROM non_capitals; 23
  • 24. Herencia by: Geniz SWFSOLUCION CON LA HERENCIA:CREATE TABLE cities ( name text, population real, altitude int -- (in ft));CREATE TABLE capitals ( state char(2)) INHERITS (cities); 24
  • 25. Tipos de Datos (Geometric Type) by: Geniz SWFPostgres soporta al igual que otros manejadores los mismos tipos de datos como son los tipoTEXTO, NUMERICOS, REALES, PUNTO FIJO, etc, por lo que solo se explicaran los tipo dedatos de especiales de postgres, si desea ver los otros tipos de datos consulte la secciónDATATYPES de mi manual MySQL for Developers:POSTGRES DATA TYPESLos tipos de datos geometricos representan Objetos espaciales en dos dimensiones comocoordenadas, lineas y figuras. Geometric Types 25
  • 26. Tipos de Datos ( Network Address Types) by: Geniz SWF Network Address TypesEste tipo de datos se utiliza para representar direcciones de red tales como direcciones IP v4e IPV6 y Direcciones MAC. EJEMPLOS: 26
  • 27. Tipos de Datos (XML Type) by: Geniz SWFSe utiliza para almacenar datos en XML, una de sus principales ventajas es que un campoXML puede ser utilizado como texto, para producir un valor de tipo XML de un carácter dedatos se utiliza la función XMLPARSE :Ejemplo:Para producir una cadena a XML se utiliza la función xmlserialize 27
  • 28. Tipos de Datos (Composite Types) by: Geniz SWFEstos son tipos de datos definidos por el usuario, son tipos de datos que pueden sermezclados, es decir; un solo tipo de dato puede ser cadena, entero, numerico, espacial, etc.ejemplo:CREATE TYPE Mis_Datos AS ( nombre text, Edad integer, localizacion point);Apartir de este tipo de dato nuevo podemos crear tablasCREATE TABLE Datos ( id serial, datos Mis_Datos);Al momento de realizar la insercion solo se especifica la columna datos, ya que eltipo serial es autonumerico y se incrementara en uno, equivale al auto_increment demysql.INSERT INTO Datos(datos) VALUES (ROW(Geniz, 22, 20,50)); 28

×