FROM nombre-tabla [,nombre-tabla...]
[WHERE condición]
[GROUP BY nombre-columna [,nombre-columna...]]
[HAVING expresión [ AND|OR expresión...]]
[ORDER BY columna [ ASC|DESC ]]
[UNION SELECT...]
SELECT (selecciona) DISTINCT (los distintos, o sea sin duplicados en el resultado) elementos
FROM (de) la tabla o tablas que vamos a usar
WHERE (en las que se cumpla) la condición
GROUP BY (agrupados por) el campo o campos deseados.
HAVING (cumpliéndose la) expresión
ORDER BY (ordenadas por) el campo o campos deseados, ASC (asdendente) o DESC (descendente)
UNION (y añade el resultado a la siguiente selección)
Ejemplo:
SELECT campo1, campo2 * 10, campo3 / 2, "literal" FROM tabla1 WHERE campo1 = "valor1" AND campo2 > campo3 * 2 AND campo3 IS NOT NULL
Observamos que en la selección de campos podemos incluir algún literal para que salga en el resultado. También observamos que en la cláusula WHERE puede aparecer cualquier expresión y varios campos. La cláusula IS [NOT] NULL, indica si el campo tiene [o no] el valor nulo (o sea ningún valor introducido).
clausula SELECT
Podemos usar funciones de columnas:
AVG (media), COUNT (número de filas), MIN (mínimo valor), MAX (máximo valor), SUM (suma)
SELECT AVG(campo1) / 2, COUNT(campo2) - 10, MIN(campo3) * 2, MAX(campo4) + 7, SUM(campo5)clausula WHERE
Puede ser una SELECT subordinada o un conjunto de valores:
WHERE campo1 [NOT] IN (SELECT campo2 FROM ... | "valor1, "valor2", "valor3")Con ello la condición se convierte en seleccionar aquellos registros cuyo campo1 tengan algún valor de los que obtengamos en la segunda SELECT. los campos campo1 y campo2 deben ser del mismo tipo.
WHERE campo1 [< | = | >] [ALL | ANY] (SELECT ...)Aquí le indicamos que el campo1 debe ser menor, igual o mayor a todos (ALL) o algún (ANY) valor que nos devuelve la consulta subordinada.
Otra cláusula que podemos usar es BETWEEN - AND (comprendido entre un valor y otro):
WHERE campo1 [NOT] BETWEEN expresión1 AND expresión2
Podemos incluir la cláusula LIKE, para buscar combinaciones de caracteres que coincidan con un patrón:
WHERE campo1 [NOT] LIKE "valor_de_busqueda"
Donde valor_de_busqueda podrá contener los caracteres de sustitución "_" (subrayado), que indica un sólo carácter y "%" (porcentaje), una cadena de caracteres de cualquier longitud.
Ejemplo:
WHERE campo1 NOT LIKE "_1%"
Nos indica que el campo1 puede empezar por cualquier carácter, debe ir seguido del número 1 y a continuación cualquier combinación de caracteres de cualquier longitud.
clausula GROUP BY
SELECT campo1, campo2, AVG(campo3), SUM(campo4) FROM tabla1 GROUP BY campo1, campo2
Observamos que los campos de agrupamiento son todos aquellos que no están dentro de una función de columna.
clausula HAVING
SELECT campo1, campo2, MAX(campo3), SUM(campo4) FROM tabla1 GROUP BY campo1, campo2 HAVING MAX(campo3) > n
A diferencia de la cláusula WHERE, en HAVING podemos usar las funciones de columnas.
Consulta de varias tablas
SELECT tabla1.campo1, tabla2.campo2, campo3, campo4 FROM tabla1, tabla2 WHERE tabla1.campo1 = tabla2.campo1
Observamos que para conocer de que tabla son los campos (si existen campos con el mismo nombre) necesitamos calificarlos. Lo hacemos poniendo primero el nombre de la tabla, seguida de un punto y el nombre del campo.
y esto es todo, feliz programming!!
Saludos
Alex.
También puede interesarte:
Vagrant error - The specified host network collides with a non-hostonly network! |
||