You are on page 1of 5

Guia Practica de PostgreSql http://www.codigolibre.org/index.php?view=article&catid=39:basico&i...

Text Size

INICIO PROYECTOS CURSOS VIDEOS FOTOS QUIENES SOMOS CERTIFICACIONES GNU/LINUX FOROS GNU/WORLD ACADEMY

Guia Practica de PostgreSql


PostgreSQL es un servidor de base de datos objeto relacional libre, liberado bajo la licencia BSD. Como muchos otros proyectos open source, el desarrollo de
PostgreSQL no es manejado por una sola compañía sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales las cuales trabajan en
su desarrollo, dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

1. Crear un Usuario.
[postgres@GNU][~]$ createuser luix
Clase_Maritima=> CREATE USER pilar with password 'pilar';
2. Listando todos los usuarios
Clase_Maritima=> du
Clase_Maritima=> SELECT * FROM pg_user ;
3. Cambiando el Password de un Usuario.
Clase_Maritima=> ALTER USER pilar with password '123456';
4. Cambiando el nombre de un usuario
Clase_Maritima=> ALTER USER pilar RENAME TO manolo;
5. Borrando Usuarios
[postgres@GNU][~]$ dropuser pilar
Clase_Maritima=>drop user pilar;

6. Crear una Base Datos


[postgres@GNU][~]$ createdb Maritima
Clase_Maritima=> CREATE DATABASE marimar;
7. Listando todas las Base Datos
Clase_Maritima=> l
Clase_Maritima=> SELECT datname FROM pg_database ;
[postgres@GNU][~/data]$ psql -l
8. Cambiando el nombre de una Base datos
Clase_Maritima=> ALTER DATABASE marimar RENAME TO Maritmar;
9. Borrando una Base Datos
postgres@GNU][~]$ dropdatadb Maritima
Clase_Maritima=>drop database Maritima;
10. Accesando a una Base Datos con un usuario.
[postgres@GNU][~]$ psql -U pilar -h localhost -d Maritima

11. Creando Tablas


CREATE TABLE Pollo (
Codigo char(5),
Nombre varchar(40),
Peso integer ,
Edad date,
Famila varchar(10)
);
12. Creando tabla desde un SELECT
Clase_Maritima=> create table Mar as SELECT * FROM pollo;
13. Listando las Tablas creadas
Clase_Maritima=>dt
Clase_Maritima=> SELECT * FROM pg_tables;

14. Viendo la Estructura de una Tabla


Clase_Maritima=>d pollo
15. Cambiando el nombre de una Tabla
Clase_Maritima=> ALTER TABLE pollo RENAME TO pollos;
16. Cambiando el nombre de un campo de una Tabla
Clase_Maritima=> ALTER TABLE pollos RENAME edad TO Fecha_Muerte;
17. Agregandole un campo a una tabla
Clase_Maritima=> ALTER TABLE pollos ADD column sex char(1);
18. Borrando un campo de una tabla
Clase_Maritima=> ALTER TABLE pollos DROP sex;
19. Cambiando el tipo de dato de una columna de una tabla.
Clase_Maritima=> ALTER TABLE pollos ALTER codigo TYPE varchar;
20. Borrando una Tabla
Clase_Maritima-> DROP TABLE pollo;

1 of 5 8/9/2010 3:43 PM
Guia Practica de PostgreSql http://www.codigolibre.org/index.php?view=article&catid=39:basico&i...

21. Insertando Datos en una Tabla


Clase_Maritima=> INSERT INTO pollo VALUES ( '1', 'Gallina', 8, Current_date, 'Criollo');
22. Insertando datos a partir de un SELECT
Clase_Maritima=> INSERT INTO pollos (nombre, famila) SELECT bandera, codigo FROM buque ;
23. Selecionado datos de una tabla
Clase_Maritima=> SELECT * FROM pollo ;
24. Muestra el plan de ejecución de la sentencia
Clase_Maritima=# EXPLAIN SELECT * FROM buque ;
25. Para saber la cantidad de registro en una tabla (Count)
Clase_Maritima=# SELECT count(*) FROM buque ;
26. Selecionar los registros no repetidos de una campo (DISTINCT)
Clase_Maritima=# SELECT distinct(bandera) FROM buque ;
27. Actualizando datos de una tabla
Clase_Maritima=> UPDATE pollo SET nombre = 'Gallo' WHERE codigo=1;
28. Borrando registros de una tabla.
Clase_Maritima=> DELETE FROM pollo WHERE codigo ='1';
29. Truncando tablas
Clase_Maritima=> TRUNCATE pollo ;
30. Agregando una llave primaria a un campo de una tabla
Clase_Maritima=> ALTER TABLE pollos ADD CONSTRAINT pk_codigo PRIMARY KEY (codigo);
31. Creando una Vista
Clase_Maritima=# CREATE VIEW v_pollo as SELECT * FROM pollos ;
32. Seleccionando datos de una Vista
Clase_Maritima=# SELECT * FROM v_pollo ;
33. Viendo las Vistas Creadas
Clase_Maritima=#dv
Clase_Maritima=# SELECT viewname FROM pg_views ;
34. Borrando una Vista
Clase_Maritima=# DROP VIEW v_pollo ;
35. Agreando una llave foraneas a un campo de una tabla
Clase_Maritima=> ALTER TABLE pollos ADD CONSTRAINT pk_codigo FOREIGN KEY (codigo) REFERENCES buque (codigo);
36. Borrando una un CONSTRAINT
Clase_Maritima=> ALTER TABLE pollos DROP CONSTRAINT pk_codigo;
37. Agregando un CONSTRAINT CHECK a un campo
Clase_Maritima=> ALTER TABLE pollos ADD CONSTRAINT c_check check (fecha_muerte > '2007-01-01');
38. Agregando un CONSTRAINT DEFAULT a un campo
Clase_Maritima=> ALTER TABLE pollos ALTER peso SET DEFAULT 23;
39. Creando un índice a una tabla
Clase_Maritima=> CREATE INDEX pkU_pollo ON pollos (codigo);
40. Creando un indice unico
Clase_Maritima=> CREATE UNIQUE INDEX pku_pollo ON pollos (peso );
41. Cambiandole el nombre a un indice
Clase_Maritima=> ALTER INDEX pku_pollo RENAME TO pki_pollo;
42. Ver los indices creados en una Base Datos
Clase_Maritima=>di
Clase_Maritima=> SELECT indexname, tablename FROM pg_indexes;
43. Borrando un indice
Clase_Maritima=> DROP INDEX pku_pollo ;
44. Creando un sequence
Clase_Maritima=> CREATE SEQUENCE s_mari start with 1000 increment by 2 maxvalue 1100;
45. Ver el siguente valor de un sequence
Clase_Maritima=> SELECT nextval('s_mari');
46. Ver el valor actual de un sequence
Clase_Maritima=> SELECT currval('s_mari');
47. Modificar el valor inicial de un sequence
Clase_Maritima=> SELECT setval('s_mari', 1000);
48. Utilizando INNER JOIN
Clase_Maritima=# SELECT * FROM files f Inner Join lineas l ON l.codigo=f.linea;
49. Utilizando LEFT OUTER JOIN
Clase_Maritima=# SELECT * FROM files f LEFT OUTER JOIN lineas l ON l.codigo=f.linea;
50. Utilizando RIGHT OUTER JOIN
Clase_Maritima=# SELECT * FROM files f RIGHT OUTER JOIN lineas l ON l.codigo=f.linea;
51. Utilizando FULL OUTER JOIN
Clase_Maritima=# SELECT * FROM files f FULL OUTER JOIN lineas l ON l.codigo=f.linea;
52. Utilizando LEFT OUTER JOIN
Clase_Maritima=# SELECT * FROM files f LEFT Join lineas l USING(Linea);
53. Utilizando operador Mayor que
Clase_Maritima=# SELECT buque, loa FROM buque WHERE loa > 1000;
54. Utilizando operador Menor que
Clase_Maritima=# SELECT buque, loa FROM buque WHERE loa < 1000;
55. Utilizando operador Igual
Clase_Maritima=# SELECT buque, loa FROM buque WHERE buque='AIDA';
56. Utilizando operador Menor o igual que
Clase_Maritima=# SELECT buque, loa FROM buque WHERE loa <= 1000;
57. Utilizando operador Mayor o igual que
Clase_Maritima=# SELECT buque, loa FROM buque WHERE loa >= 1000;
58. Utilizando operador No igual
Clase_Maritima=# SELECT buque, loa FROM buque WHERE loa <> 1000;
Clase_Maritima=# SELECT buque, loa FROM buque WHERE loa != 1000;

2 of 5 8/9/2010 3:43 PM
Guia Practica de PostgreSql http://www.codigolibre.org/index.php?view=article&catid=39:basico&i...

59. Utilizando operador Concatenación


Clase_Maritima=# SELECT buque||' ' ||dueno FROM buque ;
60. Utilizando EXISTS
SELECT * FROM boardingclerk WHERE exists(SELECT 1 FROM files);
61. Utilizando conector IN
SELECT * FROM files WHERE boarding_clerk IN (31, 33, 35);
SELECT * FROM files WHERE boarding_clerk NOT IN (31, 33, 35);
62. La cláusula ORDER BY
Clase_Maritima=# SELECT * FROM puertos ORDER BY 1 ASC;
Clase_Maritima=# SELECT codigo, puerto FROM puertos ORDER BY puerto DESC;
63. La cláusula GROUP BY
Clase_Maritima=# SELECT buque, count(*) FROM files GROUP BY buque;
64. Funciones para calcular
Clase_Maritima=# SELECT AVG(LOA) FROM BUQUE;
Clase_Maritima=# SELECT MAX(LOA) FROM BUQUE;
Clase_Maritima=# SELECT MIN(LOA) FROM BUQUE;
Clase_Maritima=# SELECT SUM(LOA) FROM BUQUE;
65. Operaciones de conjunto (UNION).
SELECT linea FROM files
union
SELECT codigo FROM lineas ;
66. Operaciones de conjunto (UNION ALL).
SELECT linea FROM files
union all
SELECT codigo FROM lineas ;
67. Operaciones de conjunto (INTERSECT).
SELECT linea FROM files
INTERSECT
SELECT codigo FROM lineas ;
68. Utilizando operadores aritméticos
FCLD=# SELECT 8+3 as Suma;
FCLD=# SELECT 8-3 as Resta;
FCLD=# SELECT 8/3 as Divide;
FCLD=# SELECT 8*3 as Multiplica;
69. Utilizando Funciones Matemáticas
FCLD=# SELECT 20-233 as Resta ; -- El resultado Sera Negativo
FCLD=# SELECT abs(20-233) as Resta ; Esta Funcion
FCLD=# SELECT cbrt(27); -- Retorna El cubo
FCLD=# SELECT round(99.4);
FCLD=# SELECT round(99.2, 3);
FCLD=# SELECT pi();
FCLD=# SELECT trunc(99.1);
70. Funciones Cadenas
FCLD=# SELECT 'Jose'||'Paredes';
FCLD=# SELECT bit_length('k') ;
FCLD=# SELECT char_length('jose');
FCLD=# SELECT lower('GNU');
FCLD=# SELECT upper('gnu');
FCLD=# SELECT initcap('manuel');
FCLD=# SELECT ascii('K');
FCLD=# SELECT chr(75);
FCLD=# SELECT md5('1');
71. Funciones Fechas y Horas
FCLD=# SELECT abstime('now'::timestamp); --convierte a abstime
FCLD=# SELECT age('now','1957-06-13'::timestamp); --preserva meses y años
FCLD=# SELECT to_char(current_timestamp,'HH12:MI:SS'); --convierte datetime a string
FCLD=# SELECT to_char( now(), 'HH12:MI:SS');
FCLD=# SELECT current_date;
FCLD=# SELECT current_timestamp;
Clase_Maritima=# SELECT to_date(fecha_llegada, 'Mon MM YY') FROM files ;
Clase_Maritima=# SELECT to_char(to_date(fecha_llegada, 'Mon MM YY'), 'YYYY-Month-Day') FROM files ;
FCLD=# SELECT to_date('08 Dec 2007 13', 'DD Mon YYYY HH'); --convierte string a date
72. Los conectores lógicos en SQL son AND-OR- NOT
Clase_Maritima=# SELECT buque, capitan, bandera, loa FROM buque WHERE capitan like 'A%' AND loa <1000 OR loa=2450;
73. Copiando datos desde un archivo a una tabla
COPY buque FROM '/var/lib/pgsql/Buquedatos.txt';
74. Para volcar una base de datos del mismo nombre que el usuario:
jparedes@codigolibre.org~:$ pg_dump > db.out
75. Hacer un backup de una tabla
[postgres@GNU][~]$ pg_dump -d Clase_Maritima -t puertos > puertos.sql
76. Para volver a cargar esta base de datos:
jparedes@codigolibre.org~:$ psql -e base_de_datos < db.out
77. Para volcar todas las bases de datos:
jparedes@codigolibre.org~:$ pg_dumpall > db.out
78. Para volver a cargar esta base de datos:
jparedes@codigolibre.org~:$psql -e template1 < db.out
79. Vacuumdb compacta bases de datos y genera estadísticas para el analizador de consultas.
[postgres@GNU][~]$ vacuumdb Clase_Maritima
80. PSQL es un intérprete de comandos para bases de datos en modo consola.

3 of 5 8/9/2010 3:43 PM
Guia Practica de PostgreSql http://www.codigolibre.org/index.php?view=article&catid=39:basico&i...

General
c[onnect] [BASE-DE-DATOS|- [USUARIO]]
conectar a una nueva base de datos (actual: «postgres»)
cd [DIR] cambiar el directorio de trabajo
copyright mostrar términos de uso y distribución de PostgreSQL
encoding [CODIFICACIÓN]
mostrar o definir codificación del cliente
h [NOMBRE] mostrar ayuda de sintaxis de comandos SQL,
* para todos los comandos
q salir de psql
set [NOMBRE [VALOR]]
definir variables internas,
listar todas si no se dan parámetros

timing mostrar tiempo de ejecución de comandos


(actualmente desactivado)
unset NOMBRE indefinir (eliminar) variable interna
! [COMANDO] ejecutar comando en intérprete de comandos,
o iniciar intérprete interactivo

Búfer de consulta
e [ARCHIVO] editar el búfer de consulta (o archivo) con editor externo
g [ARCHIVO] enviar búfer de consulta al servidor
(y resultados a archivo o |comando)
p mostrar el contenido del búfer de consulta
r reiniciar (limpiar) el búfer de consulta
s [ARCHIVO] mostrar historial de comandos o guardarlo en archivo
w ARCHIVO escribir búfer de consulta a archivo

Entrada/Salida
echo [CADENA] escribir cadena a salida estándar
i ARCHIVO ejecutar comandos desde archivo
o [ARCHIVO] envíar resultados de consultas a archivo o |comando
qecho [CADENA] escribir cadena a salida de consultas (ver o)

Informacional
d [NOMBRE] describir tabla, índice, secuencia o vista
d{t|i|s|v|S} [PATRÓN] («+» para obtener más detalles)
listar tablas/índices/secuencias/vistas/tablas de sistema
da [PATRÓN] listar funciones de agregación
db [PATRÓN] listar tablespaces («+» para más detalles)
dc [PATRÓN] listar conversiones
dC listar conversiones de tipo (casts)
dd [PATRÓN] listar comentarios de objetos
dD [PATRÓN] listar dominios
df [PATRÓN] listar funciones («+» para más detalles)
dg [PATRÓN] listar grupos
dn [PATRÓN] listar esquemas («+» para más detalles)
do [NOMBRE] listar operadores
dl listar objetos grandes, lo mismo que lo_list
dp [PATRÓN] listar privilegios de acceso a tablas, vistas y secuencias
dT [PATRÓN] listar tipos de dato («+» para más detalles)
du [PATRÓN] listar usuarios
l listar todas las bases de datos («+» para más detalles)
z [PATRÓN] listar privilegios de acceso a tablas, vistas y secuencias
(lo mismo que dp)

Formato
a cambiar entre modo de salida alineado y sin alinear
C [CADENA] definir título de tabla, o indefinir si es vacío
f [CADENA] mostrar o definir separador de campos para
modo de salida sin alinear
H cambiar modo de salida HTML (actualmente desactivado)
pset NOMBRE [VALOR]

define opción de salida de tabla


(NOMBRE := {format|border|expanded|fieldsep|footer|null|
numericlocale|recordsep|tuples_only|title|tableattr|pager})
t mostrar sólo filas (actualmente desactivado)
T [CADENA] definir atributos HTML de , o indefinir si es vacío
x cambiar modo expandido (actualmente desactivado)

Copy, Objetos Grandes


copy ... ejecutar comando SQL COPY con flujo de datos al cliente
lo_export LOBOID ARCHIVO
lo_import ARCHIVO [COMENTARIO]
lo_unlink LOBOID
lo_list operaciones con objetos grandes

4 of 5 8/9/2010 3:43 PM
Guia Practica de PostgreSql http://www.codigolibre.org/index.php?view=article&catid=39:basico&i...

Nota: Antonio Perpiñan gracias por cree en mi y ayudarme a ver el camino correcto, solo le puedo dar lo que usted me medio “Conocimiento” ya que si tuviera $$$ le
financiaría la vida.

Ing. Jose Paredes


Director Operaciones Fundacion Codigo Libre
jparedes@codigolibre.org

MYSQL APACHE PHP JAVA

© 2008-2012 TerranTribune Inc. All rights reserved.

5 of 5 8/9/2010 3:43 PM

You might also like