REALIZAR LA SIGUIENET PRACTICA CON EL SCRIPT -ejercicio.sql-
APLICAR ESTOS COMANDO A LAS TABLAS QUE REALIZO CADA UNO Y ENTREGO DE TAREA LA SEMANA ANTERIOR


EJEMPLO.

1. Crea una base de datos llamda INFORMACION - create database INFORMACION - 
2. Pon en uso la base de datos - USE INFORMACION -
3. En esta base de datos subre el scriptl (archivo llamado ejercicio.sql) - SOURCE e:\ejercicio.sql -
4. Muestra las tablas de la base de datos -SHOW TABLES-
5. Observa que el script creo la tabla datos
6. Muestra la estructura de la tabla - DESCRIBE DATOS-
7. Muestra todos los registros de la tabla - SELECT * FROM DATOS -
8. Escribe los siguientes comandos y observa el resultado de las consultas
mysql> select id as clave, nombre as Nombre_Completo from datos;
+-------+------------------+
| clave | Nombre_Completo  |
+-------+------------------+
|     1 | Yadira Fernandez |
|     2 | Raul Cardenas    |
|     3 | Benny Fernandez  |
|     4 | Kevin Diaz       |
|     5 | Karina Alvarez   |
|     6 | Alejandro Espaa |
|     7 | Yaquelin Vargas  |
+-------+------------------+
7 rows in set (0.00 sec)

En esta consulta se mostraron  el campo id y el campo nombre solo qeu con la clausula AS se le pone unalias al campo
es decri en lugar de mostrar id muestra clave y lo mismo con nombre.

mysql> select id, nombre from datos;
+----+------------------+
| id | nombre           |
+----+------------------+
|  1 | Yadira Fernandez |
|  2 | Raul Cardenas    |
|  3 | Benny Fernandez  |
|  4 | Kevin Diaz       |
|  5 | Karina Alvarez   |
|  6 | Alejandro Espaa |
|  7 | Yaquelin Vargas  |
+----+------------------+
7 rows in set (0.00 sec)

El ponerle un alias a un campo este no se modifica en la estructura de la tabla solo en la consulta.

mysql> select count(*) from datos;
+----------+
| count(*) |
+----------+
|        7 |
+----------+
1 row in set (0.00 sec)

El comando count(*) cuenta cuantos reistros hay en mi tabla me dice que hay 7

mysql> select count(fecha_nacimiento), fecha_nacimiento
    -> from datos
    -> group by(fecha_nacimiento);
+-------------------------+------------------+
| count(fecha_nacimiento) | fecha_nacimiento |
+-------------------------+------------------+
|                       1 | 1970-02-12       |
|                       1 | 1975-01-10       |
|                       1 | 1978-07-26       |
|                       1 | 1979-12-11       |
|                       1 | 1989-11-11       |
|                       2 | 1990-05-11       |
+-------------------------+------------------+
6 rows in set (0.00 sec)

Esta consulta nos dice cuenta el campo fecha_nacimeinto y muestra el campo fecha_nacimiento y agrupalo por fecha_nacimiento
de tal forma que me muestra que de la fecha 1970-02-12 hay 1 registro  y de la fehca 1990-05-11 hay dos registros
el campo por el ual se ceunta con la clausula count es el campo mediante el cual se debe de agrupar con group by
estas dos clausulas simepre deberan de ir juntas.

mysql> select count(fecha_nacimiento) as fechas_iguales, fecha_nacimiento
    -> from datos
    -> group by (fecha_nacimiento);
+----------------+------------------+
| fechas_iguales | fecha_nacimiento |
+----------------+------------------+
|              1 | 1970-02-12       |
|              1 | 1975-01-10       |
|              1 | 1978-07-26       |
|              1 | 1979-12-11       |
|              1 | 1989-11-11       |
|              2 | 1990-05-11       |
+----------------+------------------+
6 rows in set (0.00 sec)

mysql> select fecha_nacimiento from datos;
+------------------+
| fecha_nacimiento |
+------------------+
| 1978-07-26       |
| 1990-05-11       |
| 1990-05-11       |
| 1979-12-11       |
| 1989-11-11       |
| 1975-01-10       |
| 1970-02-12       |
+------------------+
7 rows in set (0.00 sec)

mysql> select count(fecha_nacimiento) as fechas_iguales, fecha_nacimiento
    -> from datos
    -> group by(fecha_nacimiento) order by fecha_nacimiento desc;
+----------------+------------------+
| fechas_iguales | fecha_nacimiento |
+----------------+------------------+
|              2 | 1990-05-11       |
|              1 | 1989-11-11       |
|              1 | 1979-12-11       |
|              1 | 1978-07-26       |
|              1 | 1975-01-10       |
|              1 | 1970-02-12       |
+----------------+------------------+
6 rows in set (0.00 sec)

En esta consulat ademas de agrupar y contar respecto sl campo fecha_nacimiento tambien los ordena de manera descendente
Cuando se ordena respeto aun campo de tipo fecha este toma en cuenta el ao es decir 1990 es un ao mayor a 1989


mysql> select max(salario) from datos;
+--------------+
| max(salario) |
+--------------+
|     32267.84 |
+--------------+
1 row in set (0.00 sec)

La funcion max Obtiene el valro maximo de un campo en este caso el de salario


mysql> select min(salario) from datos;
+--------------+
| min(salario) |
+--------------+
|      1150.25 |
+--------------+
1 row in set (0.00 sec)

La funcion min Obtiene el valro maximo de un campo en este caso el de salario

mysql> select sum(salario) from datos;
+--------------+
| sum(salario) |
+--------------+
|     82554.99 |
+--------------+
1 row in set (0.00 sec)

La funcion suma Obtiene la suma del campo salario

Como obtner el promedio de un campo?

mysql> select sum(salario)/7 as promedio_salarios  from datos;
+--------------------+
| promedio_salarios  |
+--------------------+
| 11793.570000000002 |
+--------------------+
1 row in set (0.00 sec)

Primero se obtiene la suma de todos los registros del campo salario y se divide entre el numero de registros en este caso 7

Existe una funcion qeu realiza el promedio de un campo directamente.

mysql> select avg(salario) from datos;
+--------------------+
| avg(salario)       |
+--------------------+
| 11793.570000000002 |
+--------------------+
1 row in set (0.00 sec)

Observe que el resultado de la consulta es el mismo

mysql> select length(nombre) as Numero_caracteres from datos;
+-------------------+
| Numero_caracteres |
+-------------------+
|                16 |
|                13 |
|                15 |
|                10 |
|                14 |
|                16 |
|                15 |
+-------------------+
7 rows in set (0.00 sec)

la funcion length muestra la longitud de un campo en este caso la longitud de cada uno de los registros respecto al campo nombre


mysql> select length(nombre) as Numero_caracteres, nombre from datos where id =1
;
+-------------------+------------------+
| Numero_caracteres | nombre           |
+-------------------+------------------+
|                16 | Yadira Fernandez |
+-------------------+------------------+
1 row in set (0.00 sec)

Muestra el campo nombre y Cuenta el numero de caracteres del campo nombre donde el id es igual a 1

mysql> select length(salario) as Numero_caracteres, salario from datos where id
=1;
+-------------------+---------+
| Numero_caracteres | salario |
+-------------------+---------+
|                 4 |    2589 |
+-------------------+---------+
1 row in set (0.00 sec)

Numero de catracteres el campo slario donde el id es igual a 1

mysql> select upper(nombre) as MAYUSCULAS, nombre from datos;
+------------------+------------------+
| MAYUSCULAS       | nombre           |
+------------------+------------------+
| YADIRA FERNANDEZ | Yadira Fernandez |
| RAUL CARDENAS    | Raul Cardenas    |
| BENNY FERNANDEZ  | Benny Fernandez  |
| KEVIN DIAZ       | Kevin Diaz       |
| KARINA ALVAREZ   | Karina Alvarez   |
| ALEJANDRO ESPAA | Alejandro Espaa |
| YAQUELIN VARGAS  | Yaquelin Vargas  |
+------------------+------------------+
7 rows in set (0.00 sec)

la instruccion upper convierte a mayusculas, en este caso respecto al campo nombre, es decir muestra en mayuscula
todos los registros de la tabla y el campo nomrbe lol muetsra en mayusculas

mysql> select lower(nombre) as minusculas, nombre from datos;
+------------------+------------------+
| minusculas       | nombre           |
+------------------+------------------+
| yadira fernandez | Yadira Fernandez |
| raul cardenas    | Raul Cardenas    |
| benny fernandez  | Benny Fernandez  |
| kevin diaz       | Kevin Diaz       |
| karina alvarez   | Karina Alvarez   |
| alejandro espaa | Alejandro Espaa |
| yaquelin vargas  | Yaquelin Vargas  |
+------------------+------------------+
7 rows in set (0.00 sec)

la instruccuion lower es convertir  a minusculas

mysql> select lower(nombre), upper(nombre), nombre from datos;
+------------------+------------------+------------------+
| lower(nombre)    | upper(nombre)    | nombre           |
+------------------+------------------+------------------+
| yadira fernandez | YADIRA FERNANDEZ | Yadira Fernandez |
| raul cardenas    | RAUL CARDENAS    | Raul Cardenas    |
| benny fernandez  | BENNY FERNANDEZ  | Benny Fernandez  |
| kevin diaz       | KEVIN DIAZ       | Kevin Diaz       |
| karina alvarez   | KARINA ALVAREZ   | Karina Alvarez   |
| alejandro espaa | ALEJANDRO ESPAA | Alejandro Espaa |
| yaquelin vargas  | YAQUELIN VARGAS  | Yaquelin Vargas  |
+------------------+------------------+------------------+
7 rows in set (0.00 sec)

mysql> select now() from dual;
+---------------------+
| now()               |
+---------------------+
| 2012-05-04 01:04:39 |
+---------------------+
1 row in set (0.00 sec)

La instruccion now() muestra la fecha y la hora del sistema y se hace referencia a la tabla dual

mysql> select upper("universidad") MAYUSCULAS, lower("UNIVERSIDAD") as minuscula
s from dual;
+-------------+-------------+
| MAYUSCULAS  | minusculas  |
+-------------+-------------+
| UNIVERSIDAD | universidad |
+-------------+-------------+
1 row in set (0.00 sec)


INVESTIGAR CONCEPTO DE TABLA DUAL Y ESCRIBIRLO EN EL CUADERNO
