Sie sind auf Seite 1von 6

Abrir PostgreSQL en Windows

|-> C:\Program Files\PostgreSQL\pg95>


|-> C:\Program Files\PostgreSQL\pg95>pg95-env.bat
|-> C:\Program Files\PostgreSQL\pg95>psql
TAMBIN:
|-> psql -U postgres -h localhost -d postgres: Ingresa a la base de datos con el
usuario postgres a la base de datos postgres
Crear usuario
|-> CREATE USER usuario WITH PASSWORD 'pass';
Eliminar usuario
|-> DROP USER nombre_usuario;
Crear base de datos
|-> CREATE DATABASE dbase;
Eliminar base de datos
|-> DROP DATABASE nom_dbase;
Eliminar tabla
|-> DROP TABLE nom_table;

|-> DROP TABLE nom_table CASCADE;


Borra todo lo que dependa de la tabla 'nom_table'
Acceder a base de datos con un usuario
|-> psql -U nom_user nom_dbase
Optener ayuda
|-> \h
Salir
|-> \q
Crear una base de datos con codificacin y dueo
|-> CREATE DATABASE dbase_name WITH OWNER = name_user ENCODING 'UTF8';
Asignar privilegios al usuario sobre la nueva base de datos
|-> GRANT ALL PRIVILEGES ON DATABASE dbase TO usuario;
Mostrar bases de datos existentes
|-> \l
Tambin:
|-> SELECT * FROM "pg_user";
Conectar a base de datos
|-> \c nom_dbase
Mostrar tablas de Base de Datos
|-> \d nom_table
Salir
|-> \q
Ver los usuarios y sus propiedades
|-> \du
Leer comandos desde un archivo
|-> \i input.sql

Dump db a un archivo
|-> pg_dump -U nom_user nom_dbase > db.out
Dump todas las bases de datos (Linux)
|-> pg_dumpall > /var/lib/pgsql/backups/dumpall.sql
Restaurar base de datos (Linux)
|-> psql -f /var/lib/pgsql/backups/dumpall.sql mydb
Tamin:
|-> psql -U postgres nombredb < archivo_restauracion.sql
Listar tablas en base de datos
|-> \d
Describe tablas
|-> \d talbe_name
Tambin:
|-> \d+ table_name
Conectar base de datos
|-> \c name_dbase
Escribir consulta en editor favorito
(En mi caso Block de notas es el seleccionado)
|-> \e
Resetear un pass como admin
|-> ALTER USER user_name WITH PASSWORD 'new_pass';
Seleccionar la versin
|-> SELECT version();
Crear un super usuario
|-> ALTER USER mysuper WITH SUPERUSER;

|-> ALTER USER mysuper WITH SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN REPLICAT
ION
SELECT pg_size_pretty(pg_database_size('dbname'));
Vaciar una tabla en especfico
|-> TRUNCATE TABLE name_table RESTART IDENTITY
Envar resultado de consulta a un archivo separado por '|'
COPY (SELECT * FROM table_name) TO '/home/tablename.csv' WITH DELIMITER '|';
Uso de LIMIT y OFFSET
|-> SELECT * FROM naeme_table LIMIT limite OFFSET offset;
limit: limite de registros a mostrar
offset: indica desde donde comenzaran a mostrarce los registros
Cambiar el nombre de una base de datos
|-> ALTER DATABASE marimar RENAME TO Maritmar;
Cambiar nombre de una tabla
|-> ALTER TABLE pollos RENAME edad TO Fecha_Muerte;
Agregar un campo a una tabla
|-> ALTER TABLE pollos ADD COLUMN ser char(1);

Borrar un campo de un tabla


|-> ALTER TABLE pollos DROP ser;
Cambiar tipo de una columna
|-> ALTER TABLE pollos ALTER codigo TYPE VARCHAR;
Mostrar plan de un asentencia
|-> EXPLAIN SELECT * FROM user;
Contar los registros de una tabla
|-> SELECT count(*) FROM user;
Seleccionar los registros no repetidos de un campo
|-> SELECT distinct(bandera) FORM buque;
Agregar llave fornea a un campo de una tabla
|-> ALTER TABLE pollos ADD CONSTRAINT pk_codigo PRIMARY KEY (codigo);
Modificar atributo en PostgreSQl
|-> ALTER TABLE name_table ALTER COLUMN name_colimn SER NOT NULL (Ejemplo)
CREAR AUDITORA EN POSTGRESQL
1) CREAMOS FUNCIN
|------------------------------------------------>
CREATE OR REPLACE FUNCTION aud_pais_ins() RETURNS TRIGGER AS $aud$
DECLARE
-- Declaramos variables
BEGIN
INSERT INTO audi_pais (nombre, extencion, proceso) VALUE
S
(NEW.nombre, NEW.extencion, 'INSERT');
RETURN NEW;
END;
$aud$ LANGUAGE plpgsql;
|------------------------------------------------>
2) CREAMOS TRIGGER
|------------------------------------------------>
CREATE TRIGGER tr_insert_before_pais AFTER INSERT ON pais
FOR EACH ROW
EXECUTE PROCEDURE aud_pais_ins();
|------------------------------------------------>
CUANDO UN TRIGGER ES INVOCADO CUANDO SE ELIMINA UN REGISTRO, ENTONCES:
|------------------------------------------------>
CREATE OR REPLACE FUNCTION aud_pais_del() RETURNS TRIGGER AS $aud$
BEGIN
INSERT INTO audi_pais (nombre, extencion, fe_cambio, usu
ario, proceso) VALUES
(OLD.nombre, OLD.extencion, current_timestamp, c
urrent_user, 'DELETE');
RETURN NEW;
END;
$aud$ LANGUAGE plpgsql;
|------------------------------------------------>
NOTA:

SOLO UN UPDATE TIENE AL MIMO TIEMPO 'NEW' Y 'OLD'.


ELIMINAR TRIGGER
|-> DROP TRIGGER tr_insert_before_pais ON pais;
Tomar la fecha actual
|-> SELECT current_date;
Tomar la fecha con hora, segundos y milisegundos
|-> SELECT current_timestamp;
Tomar el usuario activo en la base de datos
|-> SELECT current_user;
Ver
|->
Ver
|->

las funciones creadas


\df
las funciones creadas con su descripcin
\df+

Ver los TRIGGER creados


|-> SELECT * FROM pg_trigger;
Ver los schemas y cada una de sus tablas
|-> \dt *.*
NOTA:
Para campos calculados de tipo entero, el valor por defecto del campo
debe ser un nmero (0).
Eliminar constraint
|-> ALTER TABLE your_table DROP CONSTRAINT constraint_name;
ACCEDER A UNA BASE DE DATOS DE FORMA REMOTA (CONEXIN REMOTA)
1. Modificamos la siguiente lnea del archivo "postgresql.conf" en el directorio
"C:\Program Files\PostgreSQL\data":
#listen_addresses = '*'

# what IP address(es) to listen

on;
Y lo ponemos as:
listen_addresses = '*'
listen on;

# what IP address(es) to

Esto har que acepte las conexiones remtas para todas las direccion
es IP
Para especificar una direccin IP, lo hacemos as:
listen_addresses = 'xx.xx.xx.xx, xx.xx.xx.xx';
2. Ahora indicamos cules ip's son las que se podrn conectar remotamente.
Para eso, editamos el archivo "pg_hba.conf" ubicado en la direccin:
'C:\Program Files\PostgreSQL\9.5\data'
# TYPE DATABASE

USER

ADDRESS

METHOD

# IPv4 local connections:


host
all
all
127.0.0.1/32
md5
# IPv6 local connections:
host
all
all
::1/128
md5
# Allow replication connections from localhost, by a user with the

# replication privilege.
#host
replication
postgres
#host
replication
postgres

127.0.0.1/32
::1/128

md5
md5

Aqu tener en cuenta que podemos indicar qu host tiene acceso a qu base de d
atos.
EJEMPLO
------------------------------------------------------------------------------------# TYPE DATABASE
USER
ADDRESS
METHOD
# IPv4 local connections:
host
all
all

127.0.0.1/32

md5
host
catastro
postgres
172.16.16.188/
md5 <--------------------|
# Se le da permisos al usuario 'postgres' de ingresar a la base
dedatos 'catastro' desde la mquina con
# direccin IP '172.16.16.188'
32

# IPv6 local connections:


host
all
all

::1/128

md5
# Allow replication connections from localhost, by a user with t
he
# replication privilege.
#host
replication
postgres

127.0.0.1/32

#host

::1/128

md5
replication

postgres

md5
TAREA: Crear un usuario en PostgreSQL, agregarle roles (permisos) y que
mediante l ingresen solo unos cuantos
equipos definidos (por sus ip's)
CREATE USER invitado WITH PASSWORD 'invitado';
Dar permisos de super-usuario en PostgreSQL
ALTER ROLE invitado WITH SUPERUSER;
Para cambiar la contrasea de un usuario es necesario ejecutar el siguient
e comando:
ALTER ROLE nanotutoriales WITH PASSWORD 'nuevopassword';
Crear una base de datos con un usuario propietario
CREATE DATABASE nanotutoriales_website WITH OWNER nanotutoriales;
Permitir que un usuario acceda a una base de datos
GRANT ALL PRIVILEGES ON DATABASE catastro TO invitado;
Dar permiso de INSERT a un usuario en una base de datos
GRANT INSERT ON "auditoria" TO "juan";
Definir un lmite de clientes simultneos conectados a un usuario en Postgre
SQL
CREATE USER usertemporal CONNECTION LIMIT 10;

psql -U postgres -h localhost -W


\c catastro
CREATE USER u1 PASSWORD 'root';
CREATE USER u2 PASSWORD 'root';
CREATE USER u3 PASSWORD 'root';
GRANT SELECT, INSERT ON pais TO u1;
GRANT UPDATE, DELETE ON departamento TO u1;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE departamento TO u2;
GRANT SELECT, DELETE ON municipio TO u2;
GRANT SELECT ON municipio TO u3;
GRANT SELECT ON pais TO u3;
GRANT SELECT ON departamento TO u3;

Das könnte Ihnen auch gefallen