Para su instalación en Linux Mint o Ubuntu debemos hacer lo siguiente.
- sudo apt-get install postgresql libpq-dev (instala el motor y un usuario postgress con todos los privilegios para operar sobre el servidor)
- sudo su postgress (esto te permite abrir una sesion con el nuevo usuario postgress)
- createuser -d -s -P usuario , creamos un usuario donde:
- -d es para darle permisos de creación de base de datos
- -s es para darle permisos de superusuario
- -P para poderle indicar un password al usuario
- exit
- sudo apt-get install pgadmin3 - para instalar el cliente gráfico (opcional)
Detalles de interés que se podrán observar en las instrucciones de ejemplo que copio mas adelante:
- La diferencia contra otros manejadores de Base de Datos es que se puede hacer herencia entre tablas.
- Cuando se heredan las tablas, las llaves primarias se tienen que redefinir dado que estas no se heredan.
- Cuando se borran las tablas, los índices también se eliminan de forma automática.
- Cuando se hacen muchas operaciones de creación/borrado en la base de datos, es necesario darle mantenimiento (opción vacuum en el pgadmin3).
- La sintaxis para las fechas siempre es: YYYY-MM-DD.
Vamos a los ejemplos ahora sí:
-- Eliminamos la vista DROP VIEW if exists dime_sus_tutores, dime_personas_sin_cel; -- Eliminamos indices primero (aunque cuando se borran las tablas estos ya se eliminan) DROP INDEX if exists idx_clave_escolar; -- Eliminamos las tablas drop table if exists tutores, personas, alumnos, tutores_alumnos; -- Tabla personas PADRE create table personas ( id integer PRIMARY KEY, nombres varchar(75) not null, genero varchar(1), fecha_nacimiento date, lugar_nacimiento varchar(150), curp varchar(18) unique, tel varchar(20), cel varchar(20), email varchar(50), cuando date default current_date ); -- Tabla hija de personas create table tutores( id integer primary key, ocupacion varchar(100) ) inherits (personas); -- Tutores insert into tutores (id, nombres, genero, fecha_nacimiento, lugar_nacimiento, cel, ocupacion) values (1, 'Ricardo Rogers', 'm', '1970-01-10', 'Ciudad de México', '0445554374879', 'Musico'), (2, 'Guillermo Garcia', 'm', '1971-04-12', 'Tlaxcala', '044 55 94637383', 'Contador'), (3, 'Pita Perez', 'f', '1964-05-22', 'Ciudad de México', null, 'Ama de casa'); -- Tabla hija de personas create table alumnos ( id integer primary key, clave_escolar varchar(25), fecha_ingreso date, carrera varchar(50) ) inherits (personas); -- Creacion de un indice create unique index idx_clave_escolar on alumnos(clave_escolar); insert into alumnos (id, nombres, genero, fecha_nacimiento, lugar_nacimiento, cel, clave_escolar, fecha_ingreso, carrera) values (4, 'Leonora Rogers Mendoza', 'f', '1994-01-10', 'Ciudad de México', '044 55 12345678', 'a100-101', '2011-08-14', 'informatica'), (5, 'Maximiliano Hotel', 'm', '1993-04-12', 'Tlaxcala', '044 55 87654321', 'b200-202', '2011-07-13', 'contaduría'), (6, 'Lupita Gómez Pérez', 'f', '1993-02-22', 'Ciudad de México', null, 'c300-303', '2011-06-12', 'contaduría'), (7, 'Arturo Gómez Pérez', 'm', '1994-05-22', 'Ciudad de México', null, 'd400-404', '2011-05-11', 'administración') ; -- Tabla que relaciona personas y tutores create table tutores_alumnos ( id_tutor integer REFERENCES tutores(id), id_alumno integer references alumnos(id), primary key (id_tutor, id_alumno) ); -- relaciones insert into tutores_alumnos values (1,4),(2,5),(3,6),(3,7); -- una vista create view dime_sus_tutores as select a.nombres as Alumno, a.clave_escolar as Clave, t.nombres as Tutor, t.cel from tutores_alumnos ta left join alumnos a on ta.id_alumno = a.id right join tutores t on ta.id_tutor = t.id order by a.nombres ; -- otra vista create view dime_personas_sin_cel as select p.id, p.nombres, p.tableoid, c.relname from personas p, pg_class c where cel is null and p.tableoid = c.oid ;
Fuentes:
- @mromtz - Mario Martinez -- Taller de PostgreSQL --
- 2 módulos de un curso en línea
- Comandos de administracion
- www.postgresql.org
No hay comentarios:
Publicar un comentario
Que opinas sobre esta publicación?