Está en la página 1de 22

PostgreSQL

Configuración  

h5p://www.postgresql.org/docs/9.1/interac@ve/index.html  
h5p://www.postgresql.org.es/documentacion  
PostgreSQL  
Archivos  de  configuración  
•  Se  ubican  en:  /etc/postgresql/9.X/main/  
•  Son  3  los  principales:  
–  pg_hba.conf:  que  se  u@liza  para  configurar  los  @pos  
de  accesos  de  un  usuario  al  servidor  PostgresQL.  
–  pg_ident.conf:  se  u@liza  para  configuraciones  
complementarias  a  los  accesos  del  @po  ident  
definidos  en  pg_hba.conf  .  
–  postgresql.conf:  Parámetros  de  configuración  sobre  el  
funcionamiento,  comportamiento  y  rendimiento  de  
PostgreSQL  Server.  
PostgreSQL  
Configurar  contraseña  superusuario  postgres  

sudo -u postgres psql


\password postgres
o
alter user postgres with password
'postgre$';
\q
PostgreSQL  
Creación  de  nuevos  usuarios  
•  Crear  nuevo  usuario  taller  con  password  
taller:  
sudo -u postgres psql
create user taller with password
'taller';
•  Intentar  conectarse  como  usuario  taller:  
\q
sudo -u postgres psql -U taller
PostgreSQL  
Permi@r  auten@cación  de  nuevos  usuarios  
•  Editar  /etc/postgresql/9.X/main/pg_hba.conf.  
Cambiar  líneas:  
local all postgres peer
local all all peer
por
local all postgres md5
local all all md5
•  Aplicar  cambios  realizados:  
 sudo service postgresql reload
o  
sudo /etc/init.d/postgresql reload
 
PostgreSQL  
Permi@r  auten@cación  de  nuevos  usuarios  
•  Ahora  es  posible  auten@carse  en  consola  psql  
de  postgresql,  desde  cualquier  usuario  de  
sistema  opera@vo.  
•  Probar:  
 psql –U postgres
\q
luego  
psql –U taller
 (error  porque  aun    no  +ene  una  BD  asociada)  
PostgreSQL  

Esquemas  

h5p://www.postgresql.org/docs/9.1/interac@ve/index.html  
h5p://www.postgresql.org.es/documentacion  
PostgreSQL  
Esquemas  de  base  de  datos  
•  Un  esquema  es  un  espacio  de  nombres  que  agrupa  
objetos  de  la  BD  (tablas,  vistas,  índices,  etc.)  
•  Se  crean  dentro  de  cada  base  de  datos  
•  Los  nombres  de  los  objetos  puede  repe@rse  en  
dis@ntos  esquemas  de  la  misma  BD  
•  Al  crear  una  BD  por  defecto  se  crea  un  esquema  
PUBLIC.    
•  Si  no  cambiamos  el  esquema  por  defecto  de  la  sesión  
de  usuario,  o  si  al  crear  un  objeto  no  especificamos  el  
esquema  donde  debe  ir,  éste  se  creará  en  PUBLIC    
PostgreSQL  
Esquemas  de  base  de  datos  
•  A  parte  de  PUBLIC  en  toda  BD  existen  otros  
esquemas  DE  SISTEMA,  principalmente:  
information_schema
pg_catalog
•  Para  ver  los  esquemas  de  la  BD,  usar:  
\dn
\dnS
•  Para  crear  un  nuevo  esquema:  
 CREATE SCHEMA nombre;
PostgreSQL  
Esquemas  de  base  de  datos  (PRÁCTICA)  
•   Obje@vo:  
–  Crear  una  BD  academia,  propiedad  del  usuario  
taller  
–  Dentro  de  academia  crear  un  esquema  datos  
–  Establecer  a  datos  como  esquema  de  búsqueda  
predeterminado  
PostgreSQL  
Esquemas  de  base  de  datos  (PRÁCTICA)  
Abrir  sesión  de   psql -U postgres
superusuario  
Crear  BD     create database academia owner
taller;
\l
Conectar  a  BD   \c academia taller
creada    
Listar  esquemas     \dn
Crear  un  nuevo   CREATE SCHEMA datos;
esquema    
Listar  esquemas       \dn
PostgreSQL  
Esquemas  de  base  de  datos  (PRÁCTICA)  
Consultar  esquema   SELECT current_schema();
por  defecto  de  la  
sesión  actual      
Para  cambiar  el   \dn
esquema  actual       SET search_path TO datos;
select current_schema();
Salir,  reingresar  y   \q
verificar   psql academia -U taller
SELECT current_schema();
Hacer  permanente   ALTER USER taller SET
el  cambio  de   search_path TO datos, public;
esquema      
PostgreSQL  
Comandos  PSQL  ú@les    
\conninfo display  informa@on  about  current  connec@on    
\c[onnect] [DBNAME|- connect  to  new  database  (currently  
USER|- HOST|- PORT|-] "template1”)    
\db[+] [PATTERN] list  tablespaces    
\l[+] list  all  databases    
\dg[+] [PATTERN] list  roles    
\dn[S+] [PATTERN] list  schemas    
\d[S+] list  tables,  views,  and  sequences    
\d[S+] NAME describe  table,  view,  sequence,  or  index    
\i FILE execute  commands  from  file  (cargar  un  script  
desde  consola)    
\q quit  psql    
PostgreSQL  
Esquemas  de  base  de  datos  
•  PRACTICA  2  
–  Agregar  esquema  app  en  BD  academia
–  Establecer  ruta  de  búsqueda  predeterminada  a:  app,
datos, public
–  Crear  tabla  info  en  los  tres  esquemas:  
CREATE TABLE info (id INT, texto TEXT);
–  Verificar  tablas  creadas.  
\d
–  Insertar  un  registro  en  la  tabla  
–  Consultar  los  registros  creados  
PostgreSQL  
Esquemas  de  base  de  datos  
•  Para  eliminar  un  esquema:  
DROP SCHEMA nombre CASCADE;
 
PostgreSQL  

DDL  

h5p://www.postgresql.org/docs/9.1/interac@ve/index.html  
h5p://www.postgresql.org.es/documentacion  
PostgreSQL  
DDL  -­‐  Tipos  de  datos  
PostgreSQL  
DDL  -­‐  Tablas  
•  Creación  de  tablas:  
CREATE TABLE prueba(
id int,
nombre varchar(20)
);

•  Listar  tablas:  
\d
\d prueba

•  Eliminar  tabla:  
drop table prueba;
PostgreSQL  
DDL  -­‐  Constraints  
CREATE TABLE oficinas (
idofi integer PRIMARY KEY,
nombreofi varchar(14) NOT NULL,
ciudad varchar(13) DEFAULT 'Loja'
) ;
PostgreSQL  
DDL  -­‐  Constraints  
CREATE TABLE funcionarios (
idfunc int,
apellido VARCHAR(10) NOT NULL,
cargo VARCHAR(12) NOT NULL,
supervisor int4,
fechacontrato date,
sueldo numeric CHECK (sueldo > 0),
comision decimal DEFAULT 0,
idofi integer,
PRIMARY KEY (idfunc),
FOREIGN KEY (idofi) REFERENCES oficinas (idofi)
);
PostgreSQL  
DDL  -­‐  ALTER  TABLE  
ALTER TABLE oficinas ADD COLUMN director int;

ALTER TABLE oficinas ADD FOREIGN KEY (director)


REFERENCES funcionarios (idfunc);

ALTER TABLE funcionarios RENAME COLUMN cargo TO


oficio;
PostgreSQL  
DDL  -­‐  Prác@ca  
•   Crear  una  tabla  llamada  ”CLIENTES"  que  tenga  los  siguientes  
campos:  
–  Un  iden@ficador    numérico  llamado  “NRO_CLI”  que  sea  clave  principal  
–  Un  campo  llamado  “NOMBRE”  para  guardar  los  nombres  completos,  
de  entrada  obligatoria  
–  La  localidad  donde  reside  el  cliente(campo  “LOCALIDAD”)  
–  La  fecha  de  nacimiento  del  cliente  (campo  “FECHA_NAC”)  que  sea  de  
entrada  obligatoria  
–  El  email  del  cliente(campo  “EMAIL”)  que  no  admita  valores  duplicados  
–  El  %  de  descuento  que  recibe  el  cliente  (campo  “DESC”)  que  por  
omisión  valga  10  
–  El  número  de  compras  del  cliente  (campo  “COMPRAS”),  que  por  
omisión  sea  0  y  que  además  NO  permita  registrar  valores  menores  a  0    
–  “OFICINA”  que  es  el  id  de  la  oficina  a  la  que  pertenece  el  cliente  (llave  
foranea)  

También podría gustarte