PostgreSQL
Configuración
h5p://[Link]/docs/9.1/interac@ve/[Link]
h5p://[Link]/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
.
– [Link]:
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://[Link]/docs/9.1/interac@ve/[Link]
h5p://[Link]/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://[Link]/docs/9.1/interac@ve/[Link]
h5p://[Link]/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)