Mostrando entradas con la etiqueta Ejercicios. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ejercicios. Mostrar todas las entradas

lunes, 18 de marzo de 2013

Bueno, el día de hoy les vengo a dejar un ejemplo muy sencillo de una base de datos y su tabla en Postgres.

Primero crearemos una base de datos que se llame Libros:
De allí, pasaremos a dar clic en el "+" para ubicarnos en public y de allí a tables, para crear una tabla:


Crearemos una tabla que se llame "Libros" con las siguientes columnas, con codigo como llave primaria:
si no lo desea hacer en modo gráfico, realicelo manualmente en: 
al ingresar allí, escriba la siguiente sentencia:
create table libros(
      codigo serial,
      titulo character(40),
      autor character(20),
      editorial character(20),
      precio money (6,2),
      cantidad integer,
primary key (codigo));

al haber terminado su tabla ya se a de haber creado despues de haber ejecutado la sentencia, en el símbolo de "Play", salga de esa ventana y posicionese en la principal, seleccionando la tabla "Libros" dando clic en la tabla sin filtro:

ingrese los datos que desee:
cierre esta ventana y regrese a la principal, de nuevo de clic en SQL para comenzar a escribir las sentencias:

comencemos, antes, quiero recalcar algo, en algunos postgres no es necesario dejar entre comillas el nombre de la tabla y las columnas, en mi caso si:

1) Queremos saber el monto total de dinero de cada libro:

  select "titulo","precio","cantidad","precio"*"cantidad" from "Libros";

2) Queremos saber el precio de cada libro con un 10% de descuento:

select "titulo","precio","precio"-("precio"*0.1) from "Libros";

3) Actualizamos los precios con un 10% de descuento y vemos el resultado:
 update "Libros" set "precio"="precio"-("precio"*0.1);
 select * from "Libros";
4) Queremos una columna con el titulo, el autor y la editorial de cada libro:


  select "titulo"||'-'||"autor"||'-'||"editorial" from "Libros";


Manejo de Funciones

1) Mostramos solo los 12 primeros caracteres de los titulos de los libros y sus autores, empleando la función "substring()"
  select substring("titulo",1,12) as "titulo" from "Libros";

2) Mostramos los titulos, autores y editoriales de todos los libros, al último campo lo queremos con mayusculas.

  select "titulo","autor", upper("editorial") from "Libros";


3) Mostrar todos los títulos de los libros rellenando con el caracter '-' a la derecha.

  select rpad("titulo",40,'-') from "Libros";


4) Imprimimos todos los libros que contienen la cadena 'en' en alguna parte del libro
select * from "Libros" where position('es' in "titulo")>0;

5) Imprimimos todos los libros que tienen un título con 10 o más caracteres.
select * from "Libros" where char_length("titulo")>=10;

6)
select "titulo","autor","precio", floor("precio") as abajo, celling("precio") as arriba from libros;

7) Recuperamos los registros ordenandolos por título.

  select * from "Libros" order by "titulo";


8) ordenamos los registros por el campo "precio", referenciando el campo por su posición en la lista de selección
  select "titulo","autor","precio" from "Libros" order by 3;


9) Los ordenamos por "editorial", de mayor a menor empleando "desc"
  select * from "Libros" order by "editorial" desc;

10) Ordenamos por dos campos
    select * from "Libros" order by "titulo","editorial";


11) Ordenamos en distintos sentidos
  select * from "Libros" order by "titulo" asc,"editorial" desc;


12) Podemos ordenar un campo que no se lista en la selección

  select "titulo","autor" from "Libros" order by "precio";


13) Permite ordenanar por valores calculados

  select "titulo","autor","editorial","precio"+("precio"*0.1) as preciocondescuento from "Libros" order by 4;


14) Recuperamos los libros cuyo autor sea igual a "Varios Autores" y cuyo precio no supere los 500
  select * from "Libros" where ("autor"='Varios Autores') and ("precio"<=500);


15) Seleccionamos los libros cuyo autor sea 'Varios Autores' y cuya editorial sea 'Trillas'

 select * from "Libros" where autor='Varios Autores' or editorial='Trillas';


16) Recuperamos los libros cuya editorial NO es 'Trillas'
  select * from "Libros" where not editorial='Trillas';

17) Veamos como el uso de paréntesis hace que PostgresSQL evalúe en forma diferenciada ciertas consultas aparentemente iguales
   select * from "Libros" where (autor='Renata Selecl') or (editorial='Siglo XXI' and precio<20);

  select * from "Libros" where (autor='Renata Selecl' or editorial='Siglo XXI') and (precio<20);

Para trabajar con JOINS, crearemos una tabla que se llame editoriales, con las siguientes columnas:

O en código:
create table editoriales(
      codigo serial,
      nombre varchar(20),
primary key(codigo));

ahora a obtener:

1) Realizamos un join para obtener datos de ambas tablas (titulo, autor y nombre de la editorial)
  select "titulo","autor","nombre" from "Libros" join "Editoriales" on codigoeditorial="Editoriales".codigo;

2) Mostramos el código del libro, título, autor, nombre de la editorial y el precio reaizando un join y empleando alías:
  select l."codigo","titulo","autor","nombre","precio" from "Libros" as l join "Editoriales" as e on codigoeditorial=e.codigo;
  

Espero les sirva esté ejercicio y les ayude a aprender sentencias para PostgresSQL, buen día c:



Materia: Administración de Bases de Datos
Licenciado en Informática: Janet Lopez
Instituo Técnologico de Zacatecas



[Informática] Base de Datos y sentencias para realizar acciones en Postgres

Leer más...

Copyright © 2014 Black Moral Яesistance | Designed With By Blogger Templates | Distributed By Gooyaabi Templates
Scroll To Top