You are on page 1of 5

############ OPERACIONES CON POSTGRESQL DESDE LA SHELL #############

Creacion de superusuario para postgres


sudo -u postgres createuser -s -P -e vioscar
Creacion de la base de datos (comando psql)
sudo -u postgres createdb matriculacion --owner vioscar --encoding utf-8
Conectarse a la base de datos recien creada (comando psql)
sudo -u postgres psql matriculacion
############ OPERACIONES RELATIVAS A BASE DE DATOS #############
Crear base de datos
createdb nuevabasededatos --owner duenodebasededatos
CREATE DATABASE nuevabasededatos WITH OWNER asl;
Cambiar base de datos
\c nombredebasededatos
Borrar base de datos
dropdb nuevabasededatos
DROP DATABASE nuevabasededatos;
Renombrar base de datos
ALTER DATABASE nuevabasededatos RENAME TO nuevabd;
Listar base de datos
\l
SELECT datname FROM pg_database;
############ FIN OPERACIONES RELATIVAS A BASE DE DATOS #############
############ OPERACIONES RELATIVAS A TABLAS #############
Crear tabla
CREATE TABLE minuevatabla (campo1 tipodedato, campo2 tipodedato, campo3
tipodedato);
Borrar tabla
DROP TABLE minuevatabla;
Vaciar contenido de una tabla
TRUNCATE minuevatabla;
Modificar tabla
ALTER TABLE minuevatabla RENAME TO mynewtable;
listar tablas
\d
############ FIN OPERACIONES RELATIVAS A TABLAS #############
############ OPERACIONES RELATIVAS A CAMPOS #############
Agregar campo
ALTER TABLE mynewtable ADD column genero varchar(1);
Borrar campo
ALTER TABLE mynewtable DROP genero;

Renombrar campo
ALTER TABLE mynewtable RENAME genero TO sexo;
Cambiar tipo de datos
ALTER TABLE tabla ALTER sexo TYPE char(3);
Mostrar estructura de campos
\d mynewtable
Agregar llave primaria al campo idinscripcion en tabla inscripciones
ALTER TABLE inscripciones ADD CONSTRAINT inscripciones_pkey PRIMARY KEY
(idinscripcion);
Eliminar llave primaria en tabla inscripciones
ALTER TABLE inscripciones DROP CONSTRAINT inscripciones_pkey;
Agregar llave foranea en el campo idalumno de la tabla inscripciones con actua
liacion/eliminacion en cascada
ALTER TABLE inscripciones ADD CONSTRAINT inscripciones_idalumno_fkey FOR
EIGN KEY (idalumno) REFERENCES alumnos(idalumno) ON UPDATE CASCADE ON DELETE CAS
CADE;
Eliminar llave foranea en el campo idalumno de la tabla inscripciones
ALTER TABLE inscripciones DROP CONSTRAINT inscripciones_idalumno_fkey;
Eliminar NOT NULL al campo nombre_curso de la tabla cursos
ALTER TABLE cursos ALTER COLUMN nombre_curso DROP NOT NULL;
Agregar NOT NULL al campo nombre_curso de la tabla cursos
ALTER TABLE cursos ALTER nombre_curso SET NOT NULL;
############ FIN OPERACIONES RELATIVAS A CAMPOS #############
############ OPERACIONES RELATIVAS A FILAS (REGISTROS/DATOS) #############
Listar todo
SELECT * FROM tabla;
Listar con campos especificos
SELECT campo1, campo2 FROM tabla;
Listar con condicion
SELECT campo1, campo2 FROM tabla WHERE campo1 = 'condicion';
Comandos para ajustar mucho mas los criterios de seleccion:
ORDER, DISCTINCT, etc
<, <=, >, >=, <>, =, etc
AND, OR, NOT
Insertar registros
INSERT INTO minuevatabla VALUES ( 'valor 1', 'valor 2', 8, Current_date,
'otro valor');
Actualizar un registro en especifico
UPDATE minuevatabla SET nombre = 'nuevonombre' WHERE codigo = 1;
Borrar un registro en especifico
DELETE FROM pollo WHERE codigo = 1;

Agregar una llave primaria a un campo


ALTER TABLE minuevatabla ADD CONSTRAINT pk_codigo PRIMARY KEY (codigo);
Eliminar la llave primaria de un campo
ALTER TABLE tabla DROP CONSTRAINT pk_campo1;
Agregar una llave foranea a un campo
ALTER TABLE tabla ADD CONSTRAINT pk_codigo FOREIGN KEY (codigo) REFERENC
ES otra_tabla (codigo);
############ FIN OPERACIONES RELATIVAS A FILAS (REGISTROS/DATOS) #############
############ OPERACIONES RELATIVAS A RESPALDO Y RESTAURACION DE BD #############
Asignar clave al usuario postgres
alter role postgres with password 'MICLAVESECRETA';
otra forma:
\password postgres
\q
Cambiar la codificacion de una BD en especifico a LATIN9
UPDATE pg_database SET encoding=16 WHERE datname='bd_sigesp_2011';
Respaldar una BD en especifico hacia un archivo con formato SQL
sudo -u postgres pg_dump nombre_bd_a_respaldar > /destino/del/respaldo.s
ql
Respaldar una BD en especifico hacia un archivo con formato custom
sudo -u postgres pg_dump -Fc sigesp_2014 > backup_sigesp_2014_custom
Respaldar una BD en especifico en un servidor remoto con formato SQL (el respa
ldo .sql se crea en la maquina del cliente en este caso en el home)
pg_dump -U sigesp -d sigesp_2013 -p 5432 -h 10.10.0.9 > sigesp_vacio.sql
Exportar el contenido de una tabla en especifico hacia un archivo con formato
SQL
touch /home/mctiap/sss_derechos_grupos.sql
sudo chmod 777 /home/mctiap/sss_derechos_grupos.sql
sudo -u postgres pg_dump --table=sss_derechos_grupos sigesp_2014 > /home
/mctiap/sss_derechos_grupos.sql
Exportar el contenido de una tabla en especifico hacia un archivo con formato
custom
touch /home/mctiap/sss_derechos_grupos.backup
sudo chmod 777 /home/mctiap/sss_derechos_grupos.backup
sudo -u postgres pg_dump -Fc sigesp_2014 -t sss_derechos_grupos > sss_de
rechos_grupos_custom
Restaurar una BD en especifico desde un archivo con formato SQL
sudo -u postgres psql -U postgres -d base_de_datos_vacia -h localhost -f
/ruta/hasta/el/respaldo.sql
Restaurar una BD en especifico desde un archivo con formato custom
ssh mctiap@10.10.0.9
sudo -u postgres pg_restore -d sigesp_2014 /home/mctiap/09.01.2014_db_si
gesp_fa_2014_3.backup
Copiar una BD desde un archivo local a un servidor remoto (IP de internet y pu
erto SSH cambiado al 2222)

scp -P 2222 /home/vioscar/Respaldo\ Servidor\ MCTIAP/SIGESP/09.01.2014_d


b_sigesp_fa_2014_3.backup mctiap@150.187.7.9:/home/mctiap
Convertir un respaldo de tipo custom a tipo SQL
sudo -u postgres pg_restore /home/mctiap/sss_derechos_grupos_custom > /h
ome/mctiap/sss_derechos_grupos.sql
*** No terminado ***
Respaldar una BD en especifico en un servidor remoto con formato custom (el re
spaldo .sql se crea en la maquina del cliente en este caso en el home)
touch /home/vioscar/respaldo_postgres_prueba.backup
sudo chmod 777 /home/vioscar/respaldo_postgres_prueba.backup
sudo -u postgres pg_dump -U sigesp -h 150.187.7.9 -p 5432 -f /home/viosc
ar/respaldo_postgres_prueba.backup sigesp_2013 -Fc
pg_dump -U username -f backup.dump database_name -Fc
*** No terminado ***
############ FIN OPERACIONES RELATIVAS A RESPALDO Y RESTAURACION DE BD #########
####
############ OTRAS FORMAS DE HACER RESPALDO Y RESTAURACION DE BD #############
------------------------------------------------------------Respaldando a traves de phpPgAdmin y restaurando por consola
------------------------------------------------------------- Exportar la base de datos actual con phppgadmin
Seleccionar la base de datos y exportar con las siguientes propiedades:
- Opcion "Estructura y datos"
- Formato "COPY"
- Sin marcar las casillas "Eliminar / OIDs"
- Restaurar la base de datos generada anteriormente:
Restaurar la base de datos generada anteriormente via consola:
- Conectarse a al servidor postgres: psql -h localhost -U postgr
es -p 5432 vioviovio
- El backup de la BD debe estar en el mismo lugar desde donde se
ejecuta el comando de importacion, en este caso en /home/usuario, en caso contr
ario ubicarse alli con el comando cd /ubicacion/del/archivo
- Importar la base de datos: \i 'SQL_produccion-bk-140614.sql'
- Crear la nueva conexion en SIGESP
------------------------------------------------------------Proceso de clonado rapido de una base de datos por consola
------------------------------------------------------------mctiap@Servidor:~$ sudo -u postgres pg_dump -Fc sigesp_fa_2014_produccio
n -U postgres > sigesp_fa_2014_produccion_clonada.sql
mctiap@Servidor:~$ sudo -u postgres createdb -T template0 sigesp_fa_2014
_produccion_clonada
mctiap@Servidor:~$ sudo -u postgres pg_restore -U postgres -d sigesp_fa_
2014_produccion_clonada sigesp_fa_2014_produccion_clonada.sql

############ FIN OTRAS FORMAS DE HACER RESPALDO Y RESTAURACION DE BD ###########


##
############ DIBUJAR LAS RELACIONES DE TABLAS EN UNA IMAGEN PNG #############
postgres@Servidor:/home/mctiap$ psql -At "sigesp_fa_2014_produccion" < r
elaciones_tablas.sql | dot -Tpng -o relaciones_tablas.png
############ FIN DIBUJAR LAS RELACIONES DE TABLAS EN UNA IMAGEN PNG ############
#

You might also like