Esta sección esta dedicada a personas que tiene un nivel mínimo de Sql y quieren descubrir algunas consultas que pueden ahorrarnos mucho Trabajo. Si quieres que tu consulta o comando sql aparezca aquí no dudes en ponerte en contacto conmigo a través de mail. Voy a empezar explicando algunas consultas básicas y muy utilizadas, como son:
Posiblemente la sentencia a la que mas partida vamos a sacar. Esta sentencia sql sirve para obtener los registros de una tabla que están contenidos en otra diferente, teniendo en cuenta que uno de los campos (una clave) tiene que ser en comun. Por ejemplo, tenemos una tabla con Alumnos de una escuela, y una tabla con Gente que Juega en un equipo de futbol 11. Lo que queremos averiguar es que alumnos de la clase de 2 B juega en ese equipo. Es decir, que alumnos están "IN" la tabla de futbol 11, la sentencia podría ser así:
Select *
from Alumnos
where Cod_alumno in (select Cod_alumno from Futbol11).
Recordar poner siempre después de la sentencia IN entre paréntesis el otros Select, y que los códigos deben tener el mismo formato en las dos tablas.
2.- Sentencias YEAR MONTH DAY
Estas tres sentencias sirven para trabajar con fechas comodamente, si queremos saber los alumnos que nacieron en el 1981 sería:
Select *
from Alumnos
where year(fecha) = 1981
Para mes sería Month y para día DAY. Recordar que "fecha" debe ser un campo de tipo Date, y que el comparador es un entero (no poner entre comillas)
3.- Sentencia BETWEEN
Comando para obtener datos entre dos valores, tanto numéricos como de tipo Date o numerico
Select Nombre
From Alumno
Where fecha between '1/1/1980' and '31/12/1980'
En este caso serías mas efectivo utilizar el comando year(fecha) = 1980
4.- Sentencia LEFT
Este comando nos resulta muy útil cuando queremos recortar un numero determinado de caracteres en un campo, por ejemplo, tenemos una tabla con un código como este:
001-AAA
002-AAA
003-AAA
Sería bueno eliminar AAA- del código, ya que se repite siempre y no nos interesa, para ello usamos la función left, que recortara empezando por la izquierda, el comando sería:
Select left(codigo,3)
From tabla
Y el resultado sería:
001
002
003
Si lo queremos es actualizar la tabla con estos cambios pondríamos:
Update tabla
Set codigo = left(codigo,3)
5.- Sentencias MAX, MIN,
AVG
Estas sentencias nos sirven
para calcular medias, minimas y máximos de datos
agrupados por algun tipo de cualidad. Por ejemplo, tenemos
una tabla de futbolistas, con jugador,equipo y goles,
y queremos sacar la media de goles por equipo:
Select
equipo, avg(goles)
from
jugadores
group
by equipo
Observar que para este tipo
de consultas sql siempre debemos incluir la sentencia
group by para agrupar los datos.
Tambien podemos combinar estas
consultas con la clausula Having, que sirve para filtrar
el resultado o media que obtenemos. En el ejemplo anterior,
si quisieramos hacer la misma consulta, pero solo de
los equipos cuya media supere los 20 goles, sería
asi;
Select
equipo, avg(goles)
from
jugadores
group
by equipo
having
avg(goles) > 20
6.- Sentencia ORDER BY
Se utiliza para ordernar resultados,
por defecto los ordenará de menor a mayor, si
quisieramos ordenar al reves añadiriamos "desc".
Un ejemplo, ordenar la tabla de jugadores por goles:
Select
Jugador,goles
from
jugadores
order
by goles
Este resultado nos devolveria
los goleadores de menor a mayor, pero lo logico es que
nos interese al reves, por lo que se sería: