Curso SQL Hispabyte : Tema 4 – Teoria

CURSO BASICO SQL : TEMA 4

CONDICIONES (2)

EXIST expresion se cumple si dicha expresion existe (devuelve algun valor). Si lleva un NOT delante, se cumple si dicha condicion no existe (no devuelve ningun valor)

SUBCONSULTAS

Una subconsulta es una consulta dentro de otra. Las subconsultas se usan en 3 casos:

  • Con la instruccion IN (explicada en la anterior leccion).
  • Con la instruccion EXIST (explicada un poco mas arriba)
  • Como comparacion de un valor, usando ANY si queremos que la comparacion sea igual a cualquier valor devuelto por la subconsulta, o ALL si queremos que sea igual a todos los valores devueltos por la subconsulta (generalmente ALL se usa cuando la subconsulta solo va a devolver un valor)
Ejemplo:

SELECT integrantes.nombre, integrantes.apellidos FROM integrantes WHERE integrantes.anyo_nacimiento>ALL (SELECT integrantes.anyo_nacimiento FROM integrantes WHERE integrantes.numero_de_integrante=1 AND integrantes.numero_de_grupo=1);

/* Aqui seleccionara los nombres y apellidos de los integrantes que su edad sea mayor que la del integrante 1 del grupo 1*/

SELECT grupo.nombre FROM grupo WHERE NOT EXIST (SELECT * FROM integrantes WHERE integrantes.numero_de_grupo=grupo.numero_de_grupo);

/*Aqui seleccionara los grupos para los cuales no existan integrantes */

GROUP BY y ORDER BY

GROUP BY campo1,campo2,… se encarga en agrupar los campos con datos identicos en un unico registro.

ORDER BY campo1,campo2,… [ASC][DESC] se encarga de ordenar por uno o varios campos (siguiendo el orden indicado en prioridad de ordenacion). Estos campos los puede ordenar de manera ascendente o descendente indicandoselo con ASC y DESC. Si no se coloca nada, por defecto toma ASC

Ejemplo:

SELECT integrantes.nombre, integrantes.apellidos FROM integrantes WHERE integrantes.anyo_nacimiento>1900 ORDER BY integrantes.nombre;

/* Este ejemplo seleccionara los integrantes nacidos despues de 1900 y los ordenara por el nombre */

FUNCIONES DE AGREGADO

Las funciones de agregado se encargan de procesar varios campos y devolver un unico registro. Son muy utiles para ciertas operaciones. Para comparar solo pueden ser usadas en el HAVING.

Si se usan para que se vea en el resultado de la consulta, es obligatorio agrupar los resultados por el resto de campos usados fuera de una funcion de agregado(como se vera en el ejemplo).

  • Count(campo) devuelve el numero de registros que hay de ese campo.
  • Sum(campo) devuelve el valor de la suma de los registros de ese campo.
  • Max(campo) devuelve el maximo registro de un campo.
  • Min(campo) devuelve el minimo registro de un campo.
  • Avg(campo) devuelve la media de los distintos registros de un campo.
Ejemplo:

SELECT Avg(integrantes.anyo_nacimiento) FROM integrantes;

/* Este ejemplo devolvera la media del año de nacimiento de todos los integrantes de cualquier grupo*/

SELECT Avg(integrantes.anyo_nacimiento),integrantes.nombre FROM integrantes GROUP BY integrantes.nombre;

/* Este ejemplo devolvera la media del año de nacimiento de todos los integrantes de cualquier grupo y su nombre. Esta consulta no es que sea muy util, pero es un ejemplo de el uso de GROUP BY, ya que agrupara por los que tengan el mismo nombre*/

SELECT integrantes.numero_de_grupo,count(*) FROM integrantes GROUP BY integrantes.numero_de_grupo;

/* Un ejemplo ya mas practico, contara el numero de integrantes de cada grupo */

La proxima semana continuaremos con DISTINCT, DISTINCTROW y las consultas de union.

This entry was posted in Bases de datos, Hispabyte, Noticias, Programacion, Tutoriales / Manuales, Webmaster and tagged , , , , , , , , , , . Bookmark the permalink.

Deja un comentario

Tu dirección de correo electrónico no será publicada.