El documento resume las funciones AVG, MIN, MAX y COUNT que se pueden usar con la cláusula GROUP BY en MySQL. También explica cómo crear, modificar y eliminar tablas usando los comandos CREATE TABLE, ALTER TABLE y DROP TABLE.
AVG
AVG(expr)
Devuelve el valormedio de expr:
mysql> SELECT student_name, AVG(test_score)
->
FROM student
->
GROUP BY student_name;
Si se usa una función de grupo en una sentencia que contenga la cláusula GROUP BY,
equivale a agrupar todas las filas.
MIN
MAX
MIN(expr)
MAX(expr)
Devuelve el valor mínimo o máximo de expr. MIN() y MAX() pueden tomar como
argumento una cadena, en ese caso devolverán el valor de la cadena mínima o máxima.
mysql> SELECT student_name, MIN(test_score), MAX(test_score)
->
FROM student
->
GROUP BY student_name;
Con MIN(), MAX() y otras funciones, MySQL normalmente compara las columnas ENUM y
SET por sus valores de cadena, en lugar de pos sus posiciones relativas dentro del
conjunto. Esto será modificado.
COUNT
COUNT(expr)
Devuelve un contador con el número de valores distintos de NULL en las filas recuperadas
por una sentencia SELECT:
mysql> SELECT student.student_name,COUNT(*)
->
FROM student,course
->
WHERE student.student_id=course.student_id
->
GROUP BY student_name;
COUNT(*) es algo diferente en que devuelve un contador con el número de filas
recuperadas, contengan o no valores NULL. COUNT(*) está optimizado para regresar
2.
mucho más rápidosi la sentencia SELECT recupera de una tabla, no se piden otras
columnas y no exite cláusula WHERE. Por ejemplo:
mysql> SELECT COUNT(*) FROM student;
GROUP BY.
A menudo interesa agrupar las filas según algún criterio, que suele ser el valor de una
columna, o varias. Una cláusula SELECT con un GROUP BY produce una sola fila por cada
grupo. Los valores de las columnas especificadas en el SELECT debergan ser iguales dentro
de cada grupo. De lo contrario los resultados son imprevisibles.
También aparecen usualmente funciones de agregado que ahora se calculan sobre cada
grupo. Los resultados, si no especifica otra cosa con un ORDER BY, salen ordenados por las
columnas del GROUP BY.
Ejemplo: ¿Cuántas líneas tiene cada una de las facturas? Veamos la tabla Lineas_factura:
+----+---------+-------+
| id | factura | venta |
+----+---------+-------+
| 1|
1| 1|
| 2|
1| 6|
| 3|
1| 7|
| 4|
2| 2|
| 5|
3| 3|
+----+---------+-------+
CREATE TABLE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista,
índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de
datos soporte.
Ejemplo:
mysql> CREATE TABLE example (
id INT,
data VARCHAR(100)
);
ALTER TABLE
3.
Este comando permitemodificar la estructura de un objeto. Se pueden agregar/quitar
campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla,
modificar un trigger, etc.
Ejemplo:
ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification
...]
Explicacion detallada: ALTER TABLE
DROP TABLE
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice,
trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos
soporte. Se puede combinar con la sentencia ALTER.
Elimina una o más tablas. Se debe poseer el privilegi DROP para cada una de las tablas. Se
eliminan tanto los datos que contengan y las definiciones de las tablas, así que hay que
tener cuidado con esta sentencia.
DROP [TEMPORARY] TABLE [IF EXISTS]
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE]
Ejemplo:
ALTER TABLE ''TABLA_NOMBRE''
(
DROP COLUMN ''CAMPO_NOMBRE1''
)