lunes, 22 de noviembre de 2010

Base datos parcial

Saludos estudiantes.


Bueno para el parcial es necesario crear una base de datos con las siguientes instrucciones:


click aqui para acceder al script SQL.


Genere las consultas necesarias para realizar el informe por el area representada en un color.

Planilla general grupo:P4 periodo: 1 Año: 2010


Nombre Estudiante EDU REL EDU FIS EDU ART INFO INGL CIE NAT DEMO HIST ORTO LENG GEOM ARIT
1 Agamez Watts Julián Andrés 8.1 7.2 9.2 8.5 8.1 7.83 9 8.12 8.4 7.94 7.7 8.1
2 Agualimpia Martelo Andrea 8.3 8 8.3 8.2 7.6 5.37 9 7.16 7.98 7.05 7 5.1
3 AGUIRRE THORRENS JESUS DANIEL 9.5 8.4 9.1 8.7 8.6 6.51 9.2 9 8.42 8.59 9.1 8.2
4 Araujo Martínez Nadim Said 9.4 7.9 9.1 8.5 9.4 8.3 9.7 9.2 9.45 9.44 9.4 9.6
5 Arias Palacio Alejandro 8.8 8 8.9 8.3 7.3 6.88 8.5 8.5 8.93 8.32 7.5 7.3
6 Arraut Arango Inés Alcira 9 7.7 9.2 8.9 8.5 6.99 9.1 9 9.33 8.54 8.5 7.2
7 Ávila Gómez Marianella 8.8 0 9 8 6.6 4.53 7.6 6.23 5.92 8.39 6.7 7.5
8 Ballestas Janaceth Gabriel De Jesús 9 8 9.2 8.7 8.4 8.57 8.9 8.99 9.18 8.32 9.2 8.5
9 Blanco Pulgarin Ruth Nohemi 9.3 7.8 9.3 9.1 8.2 7.28 8.7 7.86 8.87 9.01 6.8 6.6
10 Blanco Tuirán María Alejandra 8.5 7.8 9 8.9 8.3 6.64 8.9 6.19 8.43 7.74 7.5 7.5
11 Caballero Guerra Camilo Jose 8.5 7.7 8.9 8.3 7.2 8.5 9.3 8.8 9 8.3 9.4 8.6
12 Cabarcas López Angie Teresa 7.8 8 9 8.8 7.8 6.86 9.2 7.87 9 6.61 6.6 6.1
13 CAÑON MATALLANA LUIS MATEO 7.6 4.6 8.8 8.5 6.1 6.5 7.7 8 7.81 8.39 7.4 8.3
14 Carazo Angulo Maria José 9.2 8 9.4 8.3 8.4 7.88 9.2 9 9.07 8.86 8.9 8.4
15 Carrillo Julio Camila Paola 9.7 8 9.2 8.8 9.6 8.28 9.6 9.36 9.16 9.15 8.9 9.1
16 Cásseres Cumplido Julián José 8.5 7.5 9.2 8.5 8.9 6.59 9.4 8.75 9.01 9.32 8.7 8.6
17 Castilla Cuadro Harlinton 8.8 7.9 9 7.9 7.8 6.66 9 8 8.62 8.47 7.6 6.6
18 Castilla Lambis Karen Margarita 9.5 8.2 9.3 8.3 9.8 8.24 9.4 9.25 9.15 9.57 9.4 9.2
19 CORCHO YEPES MARIA CAMILA 9 8.2 9.4 9.5 9.3 9.33 9.8 9 9.16 8.33 8.3 8.9
20 Diz Rodríguez Any Luz 9.3 8 9.4 8.7 9.2 8.25 9.5 9.1 9.09 8.89 9.3 8.9
21 FERNANDEZ LOPEZ FREDDY JOSE 9.4 8 9.2 8.7 9.1 7.69 9.4 9.1 9 8.88 8.7 9.2
22 FERNANDEZ MARENCO JAIME ANDRES 9.1 8.2 9.2 8.7 9.3 7.3 9.6 8.9 8.74 8.33 7.8 9.2
23 Florián Reinel María Alejandra 9.3 8 9.5 9.3 9.2 8.31 9.5 9.1 9.06 9.51 9.4 8.9
24 Fortich Peña Daniela Paola 9.2 8 8.6 8.4 8.2 7.69 9.4 7.59 8.62 8.64 7.5 7.3
25 García Cañas Daniela Maria 8.5 7.4 9.2 8.2 8.1 8.55 9.1 8 8.93 8.69 8.6 6.9
26 Godoy Porto Andrés Felipe 8.2 7.4 9 8.1 7.7 6.55 8.2 7.1 8.3 7.44 8.2 7.3
27 Hernández Martínez Maria Camila 7.5 7.7 9.2 8.9 8 4.89 9.4 8.98 9.01 8.82 8.4 9.1
28 Jaramillo Mejia Jairo Andres 7.8 7.5 9 8.1 6 6.09 8.7 7.1 7.66 7.81 6.7 7.3
29 León Ibáñez Fabián Elías 7.8 7.2 9.3 7.8 6.8 5.66 7.3 7.71 8.28 7.91 7.6 7.1
30 Machacon Pizarro Melanie 8.7 8.3 9.5 8.7 7.7 6.58 8.9 8 8.47 8.11 7.1 5.3
31 Martínez Quintero Leslie Ann 9.3 7.8 9 9.1 9.6 9.01 9.1 9.1 9.13 8.79 8.4 7.3
32 Mendoza Carmona Laura Marcela 9.5 8.3 9.4 8.5 9.9 9.51 9.5 9.6 9.53 9.31 9.7 8.9
33 Mestre Camargo Saray Andrea 9.6 8.2 9.3 9.3 9.9 8.96 9.7 9.2 9.16 9.53 9.3 9.1
34 Moyano Díaz Lucia Carolina 9.1 8 9.4 8.6 9.6 8.07 9.6 9.2 9.04 8.91 8.7 7.7
35 Najera Hernández Moisés David 8.7 7.2 9.1 8.1 9.3 8.73 9 9.22 9.15 9.03 9.6 9.2
36 Peña Paso María Camila 8 7.4 9.5 8.7 7.6 7.83 9.2 6 6.8 6.96 8.1 7.1
37 Pérez Arias Diego Andrés 7.5 7.4 8.9 8.3 5.9 5.81 8.5 5.81 6.15 7.09 6.7 5.9
38 Pinto Culma Sissy Janedys 7.4 7.4 9.2 8.9 8.8 7.21 8.7 9.12 9.08 8.79 9 7.5
39 Quintero Rodríguez Pamela 8 8 9.3 8.9 6.1 5.82 9.1 5.76 7.96 7.2 7.7 5.9
40 Ramos Martelo Roger 7.3 7.3 8.3 8.3 7.7 5.59 8.3 8 8.28 8 7.4 7.2
41 RIOS HERNANDEZ TONY ENRIQUE 8.6 7.6 9.1 8.3 8.5 6.53 8.6 8.31 8.74 8.81 8 8.7
42 Rolon Cabrales Melannie 8.4 7.7 9.4 9.1 8 6.52 9.3 8.01 8.19 8.59 8.4 7.7
43 Ruiz Solano Valeria 8.4 8 9.2 9.1 8.8 6.98 9.2 6.54 8.36 7.94 7.7 7.2
44 Sarmiento Gutiérrez Luis Felipe 9.1 8 9.4 8.2 9.5 9.04 9.5 9.11 9.12 9.1 9.3 8.4
45 Segura Torres José Ángel 8.1 7.5 9.2 7.9 6.9 6.22 8.8 8.65 9.06 8.54 8.6 7.5
46 Silva Díaz Emmanuel 8.3 4.2 9.2 7.1 7.9 5.82 7.7 7 8.99 8.65 7.6 8.2
47 Suevis Lozano Diego Enrique 8.3 8 9.2 7.4 8.6 8.32 8.8 8.47 8.45 7.92 8.7 6.9
48 Triana Castellón Emma 7 7.3 8.7 8.7 7.4 6.51 7.8 7.06 9.02 7.64 8 6.8
49 Valdez Daza Andrea Camila 8.4 8 9.3 8.8 7.5 5.63 8.4 7.98 8.78 8.07 8.4 7
50 Valencia Navarro Andrea Sofía 8.5 8 9.3 8.9 7.6 6.88 7.5 7.21 7.58 8.04 7.9 7

miércoles, 3 de noviembre de 2010

Conteo de filas

Las bases de datos son usadas frecuentemente para responder una pregunta, "¿Con qué frecuencia ocurre un cierto tipo de dato en una tabla?". Por ejemplo, tal vez queremos conocer cuántas mascotas tenemos, o cuántas mascotas tiene cada uno de los propietarios.

Contar el número total de animalitos que tenemos es lo mismo que hacer la siguiente pregunta "¿Cuántas filas hay en la tabla mascotas?" ya que hay un registro por mascota. La función COUNT( ) es la que nos ayuda en esta situación.

mysql> SELECT COUNT(*) FROM mascotas;
+----------+
| COUNT(*) |
+----------+
| 9 |
+----------+
1 row in set (0.00 sec)Si deseamos conocer cuántas mascotas tiene cada uno de los propietarios, la consulta es la siguiente:

mysql> SELECT propietario, COUNT(*) FROM mascotas GROUP BY propietario ;
+-------------+----------+
| propietario | COUNT(*) |
+-------------+----------+
| Arnoldo | 2 |
| Benito | 2 |
| Diana | 2 |
| Juan | 1 |
| Omar | 1 |
| Tomás | 1 |
+-------------+----------+
6 rows in set (0.00 sec)Se debe notar que se ha usado una cláusula GROUP BY para agrupar todos los registros de cada propietario. Si no hacemos esto, obtendremos un mensaje de error:

mysql> SELECT propietario, COUNT(*) FROM mascotas;
ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no
GROUP columns is illegal if there is no GROUP BY clauseEn efecto, el uso de la función COUNT( ) en conjunto con la cláusula GROUP BY es muy útil en diversas situaciones. A continuación se muestran algunos ejemplos.

El número de animalitos por especie:

mysql> SELECT especie, COUNT(*) FROM mascotas GROUP BY especie ;
+-----------+----------+
| especie | COUNT(*) |
+-----------+----------+
| Ave | 2 |
| Gato | 2 |
| Hamster | 1 |
| Perro | 3 |
| Serpiente | 1 |
+-----------+----------+
5 rows in set (0.00 sec)El número de animalitos por sexo:

mysql> SELECT sexo, COUNT(*) FROM mascotas GROUP BY sexo:
+------+----------+
| sexo | COUNT(*) |
+------+----------+
| NULL | 1 |
| f | 4 |
| m | 4 |
+------+----------+
3 rows in set (0.01 sec)El número de animalitos por combinación de especie y sexo:

mysql> SELECT especie, sexo, COUNT(*) FROM mascotas GROUP BY especie, sexo ;
+-----------+------+----------+
| especie | sexo | COUNT(*) |
+-----------+------+----------+
| Ave | NULL | 1 |
| Ave | f | 1 |
| Gato | f | 1 |
| Gato | m | 1 |
| Hamster | f | 1 |
| Perro | f | 1 |
| Perro | m | 2 |
| Serpiente | m | 1 |
+-----------+------+----------+
8 rows in set (0.00 sec)No es necesario que se obtengan todos los datos de una tabla cuando se usa la función COUNT( ). Por ejemplo, en la consulta anterior, para ver únicamente los datos de perritos y gatitos, la consulta queda de la siguiente manera:

mysql> SELECT especie, sexo, COUNT(*) FROM mascotas
-> WHERE especie="Perro" OR especie="Gato"
-> GROUP BY especie, sexo;
+---------+------+----------+
| especie | sexo | COUNT(*) |
+---------+------+----------+
| Gato | f | 1 |
| Gato | m | 1 |
| Perro | f | 1 |
| Perro | m | 2 |
+---------+------+----------+
4 rows in set (0.00 sec)O bien, si deseamos el número de animalitos por sexo, y cuyo sexo es conocido:

mysql> SELECT especie, sexo, COUNT(*) FROM mascotas
-> WHERE sexo IS NOT NULL
-> GROUP BY especie, sexo ;
+-----------+------+----------+
| especie | sexo | COUNT(*) |
+-----------+------+----------+
| Ave | f | 1 |
| Gato | f | 1 |
| Gato | m | 1 |
| Hamster | f | 1 |
| Perro | f | 1 |
| Perro | m | 2 |
| Serpiente | m | 1 |
+-----------+------+----------+
7 rows in set (0.00 sec)

Between



Mientras que la palabra clave IN ayuda a las personas a limitar el criterio de selección para uno o más valores discretos, la palabra clave BETWEEN permite la selección de un rango. La sintaxis para la cláusula BETWEEN es la siguiente:

SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" BETWEEN 'valor1' AND 'valor2'

Esto seleccionará todas las filas cuya columna tenga un valor entre 'valor1' y 'valor2'.

Por ejemplo, podríamos desear seleccionar la visualización de toda la información de ventas entre el 06 de enero de 1999, y el 10 de enero de 1999, en la Tabla Store_Information,

Tabla Store_Information
store_name Sales Date
Los Angeles 1500 € 05-Jan-1999
San Diego 250 € 07-Jan-1999
San Francisco 300 € 08-Jan-1999
Boston 700 € 08-Jan-1999

Ingresamos,

SELECT *
FROM Store_Information
WHERE Date BETWEEN '06-Jan-1999' AND '10-Jan-1999'

Tenga en cuenta que la fecha puede almacenarse en diferentes formatos según las diferentes bases de datos. Esta guía de referencia simplemente elige uno de los formatos.

Resultado:
store_name Sales Date
San Diego 250 € 07-Jan-1999
San Francisco 300 € 08-Jan-1999
Boston 700 € 08-Jan-1999