lunes, 24 de septiembre de 2018

UNION DE TABLAS

La unión de tablas

Esta operación se utiliza cuando tenemos dos tablas con las mismas columnas y queremos obtener una nueva tabla con las filas de la primera y las filas de la segunda. En este caso la tabla resultante tiene las mismas columnas que la primera tabla (que son las mismas que las de la segunda tabla).

Cuando hablamos de tablas pueden ser tablas reales almacenadas en la base de datos o tablas lógicas (resultados de una consulta), esto nos permite utilizar la operación con más frecuencia ya que pocas veces tenemos en una base de datos tablas idénticas en cuanto a columnas. El resultado es siempre una tabla lógica.

El operador UNION

Sirve para obtener a partir de dos tablas con las mismas columnas, una nueva tabla con las filas de la primera y las filas de la segunda.

CONSULTA 1                           OPERADOR     CONSULTA 2
SELECT….FROM….WHERE….. UNION …..      SELECT….. FROM…. WHERE



·   TOMEMOS EN CUENTA QUE:
      
  1.     Las dos consultas deben tener el mismo número de columnas pero las columnas pueden llamarse de diferente forma y ser de tipos de datos distintos.
  2. Las columnas del resultado se llaman como las de la primera consulta.
  3. Se puede unir más de dos tablas, para ello después de la segunda consulta repetimos la palabra UNION ... y así sucesivamente.
  4. También podemos indicar que queremos el resultado ordenado por algún criterio, en este caso se incluye la cláusula ORDER BY, se escribe después de la última consulta, al final de la sentencia; para indicar las columnas de ordenación podemos utilizar su número de orden o el nombre de la columna.
ACTIVIDAD DE APRENDIZAJE

EJERCICIO 9 
REVIZAR QUE EXISTAN TABLAS O CONSULTAS CON LAS MISMAS COLUMNAS
PARA ESTE CASO SE HIZO LA SIGUIENTE CONSULTA

SELECT matricula, nombres, apellidos, localidad from alumnos
ejercicio9_consulta1
matricula
Nombres
apellidos
localidad
090780095-7
heidi natali
carmona arriga
santa cruz
120780001-0
Carlos
hernandes amezcua
tamazula
120780031-7
Lizbeth guadalupe
valencia lozano
tamazula
120780039-0
maria guadalupe
medina campos
tamazula
120780261-0
genesis Natalia
Godinez Rodriguez
tamazula

SELECT notrabajador, nombre, apellido, localidad from maestros
ejercicio9_consulta2
notrabajador
nombre
apellido
localidad
1
Jose enrique
vivas torres
tamazula
2
marco antonio
celis Crisostomo
Cd.Guzman
3
ricardo
muños collaso
Cd.Guzman

CONSULTA 3
MOSTRAR LOS NOMBRES Y LOS APELLIDOS DE LOS REGISTROS QUE ESTAN EN LA BASES DE DATOS ESCUELA
SELECT nombres, apellidos from ejercicio9_consulta1 union select nombre, apellido from ejercicio9_consulta2
EJERCICIO9_CONSULTA3
nombres
apellidos
Carlos
hernandes amezcua
genesis natalia
Godinez Rodriguez
heidi natali
carmona arriga
Jose enrique
vivas torres
Lizbeth guadalupe
valencia lozano
marco antonio
celis Crisostomo
maria guadalupe
medina campos
ricardo
muños collaso

CONSULTA 4 MOSTRAR EL NOMBRE, APELLIDOS Y LOCALIDAD DE LOS EXISTENTES EN LA BASE DE DATOS ESCUELA ORDENADOS

SELECT nombres, apellidos, localidad from ejercicio9_consulta1 union select nombre, apellido, localidad from ejercicio9_consulta2 order by 2
ejercicio9_consulta4
nombres
apellidos
localidad
heidi natali
carmona arriga
santa cruz
marco antonio
celis Crisostomo
Cd.Guzman
genesis natalia
Godinez Rodriguez
tamazula
carlos
hernandes amezcua
tamazula
maria guadalupe
medina campos
tamazula
ricardo
muños collaso
Cd.Guzman
Lizbeth guadalupe
valencia lozano
tamazula
Jose enrique
vivas torres
tamazula









Consulta 5 ejercicio 9
Tomando de referencia la consulta anterior contabilizar los registros por la localidad
SELECT count(*) as cantiAlumnos, Localidad from ejercicio9_consulta4 group by Localidad
Ejercicio9_Consulta5
cantiAlumnos
Localidad
2
Cd.Guzman
1
santa cruz
5
tamazula

Consulta 6
MOSTRAR LOS APELLIDOS, NOMBRES DE LAS PERSONAS QUE ESTAN EN  NUESTRA BASE DE DATOS Y VIVEN EN TAMAZULA
SELECT NOMBRES, APELLIDOS FROM EJERCICO9_CONSULTA1 WHERE LOCALIDAD=”TAMAZULA” UNION SELECT NOMBRE, APELLIDO FROM EJERCICIO9_CONSULTA2 WHERE LOCALIDAD = “TAMAZULA”
EJERCICIO9_CONSULTA6
NOMBRES
APELLIDOS
carlos
hernandes amezcua
genesis natalia
Godinez Rodriguez
Jose enrique
vivas torres
Lizbeth guadalupe
valencia lozano
maria guadalupe
medina campos


CONSULTA 7
MOSTRAR LOS REGISTROS DONDE LOS APELLIDOS COMIENCEN POR VOCAL


SELECT APELLIDOS FROM EJERCICO9_CONSULTA4 WHERE APELLIDOS LIKE “A*” OR APELLIDOS LIKE “E*” OR APELLIDOS LIKE “I*” OR APELLIDOS LIKE “O*” OR APELLIDOS LIKE “U*”

NINGUN APELLIDO EMPIEZA POR VOCAL SE SUGIERE

SELECT APELLIDOS FROM EJERCICO9_CONSULTA4 WHERE APELLIDOS LIKE “V*” 


ACTIVIDAD PARA LA PRACTICA 5

Realiza en tu cuaderno de apuntes las consultas necesarias para que haya consultas que contengan el operador unión y poder unir la información de las tablas.

lunes, 17 de septiembre de 2018

CONSULTAS CON AGRUPACION EN TABLAS SIMPLES Y TABLAS COMBINADAS

1.2. Estructura información, mediante consultas de actualización, agrupación y combinación de datos en el sistema gestor de bases de datos para su administración. 
15 horas 20%     12 Sep al 20Sep    25/09/2017

Hacer un clic aqui para accesar a la rubrica de evalaucion 1.2.1 y al cuadro de evaluación






Agrupaciones La cláusula GROUP BY

Hasta ahora las consultas de resumen que hemos visto utilizan todas las filas de la tabla y producen una única fila resultado.

1.  Una consulta con una cláusula GROUP BY se denomina consulta agrupada ya que agrupa los datos de la tabla origen y produce una única fila resumen por cada grupo formado. Las columnas indicadas en el GROUP BY se llaman columnas de agrupación.

Ejemplo

SELECT SUM(ventas) FROM repventas GROUP BY oficina

Se forma un grupo para cada oficina, con las filas de la oficina, y la suma se calcula sobre las filas de cada grupo.
El ejemplo anterior obtiene una lista con la suma de las ventas de los empleados de cada oficina. Se pueden obtener subtotales con la cláusula GROUP BY.

2.     Un columna de agrupación no puede ser de tipo memo u OLE.

3.      La columna de agrupación se puede indicar mediante un nombre de columna o cualquier expresión válida basada en una columna pero no se pueden utilizar los alias de campo
SELECT importe/cant , SUM(importe)
FROM pedidos
GROUP BY importe/cant
4.     Se pueden agrupar las filas por varias columnas, en este caso se indican las columnas separadas por una coma y en el orden de mayor a menor agrupación. Se permite incluir en la lista de agrupación hasta 10 columnas.
SELECT SUM(ventas)
FROM oficinas
GROUP BY region,ciudad


La cláusula HAVING


La cláusula HAVING nos permite seleccionar filas de la tabla resultante de una consulta de resumen.

 Para la condición de selección se pueden utilizar los mismos EJEMPLOS de comparación descritos en la cláusula WHERE, también se pueden escribir condiciones compuestas (unidas por los operadores OR, AND, NOT), pero existe una restricción.
 En la condición de selección sólo pueden aparecer:
1.     valores constantes
2.     funciones de columna
3.     columnas de agrupación (columnas que aparecen en la cláusula GROUP BY)
4.     cualquier expresión basada en las anteriores.


Ejemplo: Queremos saber las oficinas con un promedio de ventas de sus empleados mayor que 500.000 ptas.

SELECT oficina
FROM empleados
GROUP BY oficina
HAVING AVG(ventas) > 500000


NOTA: Para obtener lo que se pide hay que calcular el promedio de ventas de los empleados de cada oficina, por lo que hay que utilizar la tabla empleados.Tenemos que agrupar los empleados por oficina y calcular el promedio para cada oficina, por último nos queda seleccionar del resultado las filas que tengan un promedio superior a 500.000 ptas.
Funciones de columna

En la lista de selección de una consulta de resumen aparecen funciones de columna también denominadas funciones de dominio agregadas. Una función de columna se aplica a una columna y obtiene un valor que resume el contenido de la columna.

La función SUM()
Calcula la suma de los valores indicados en el argumento. Los datos que se suman deben ser de tipo numérico (entero, decimal, coma flotante o monetario...). El resultado será del mismo tipo aunque puede tener una precisión mayor.

SELECT SUM(SALARIO) FROM EMPLEADOS  Suma los salarios de toda la tabla
SELECT salario, count(*), sum(salario) FROM EMPLEADOS group by salario having salario = 2000

La función AVG()

Calcula el promedio (la media aritmética) de los valores indicados en el argumento, también se aplica a datos numéricos, y en este caso el tipo de dato del resultado puede cambiar según las necesidades del sistema para representar el valor del resultado.

Actividad de Aprendizaje

Ejercicio 6
Elabora las siguientes consultas en la base de datos escuela, y realiza el reporte del ejercicio No 6.

CONSULTA 1
REALIZAR UNA CONSULTA QUE AGRUPE LAS LOCLAIDADES DONDE VIVEN LOS MAESTROS Y MENCIONE LA CANTIDAD DE MAESTROS QUE VIVEN EN DICHA LOCALIDAD

SELECT COUNT(*) AS CANTIDAD, LOCALIDAD FROM MAESTROS GROUP BY LOCALIDAD


EJRCICIO7_CONSULTA1
CANTIDAD
LOCALIDAD
2
Cd.Guzman
1
tamazula

CONSULTA 2
Realizar una consulta que agrupe a los alumnos por grupo y mencione la cantidad que hay en cada grupo
SELECT COUNT (*) AS CANTIDAD,GRUPO FROM ALUMNOS  GROUP BY GRUPO

EJERCICIO7_CONSULTA2
CANTIDAD
GRUPO
2
503
3
505

CONSULTA 3
REALIZAR UNA CONSULTA DE AGRUPACION PARA MOSTRAR LA SUMA DE SALARIOS DE LOS MAESTROS QUE VIVEN UNICAMNETE EN CIUDAD GUZMAN

SELECT LOCALIDAD,  SUM(SALARIO) AS TOTALAPAGAR FROM MAESTROS GROUP BY LOCALIDAD HAVING LOCALIDAD = “CD.GUZMAN”
CONSULTA #4 Realizar una consulta de agrupación para mostrar la suma de faltas de los alumnos del grupo 505.
SELECT SUM(FALTAS)AS TOTALFALTAS FROM ALUMNOS GROUP BY GRUPO  HAVING GRUPO =505

EJERCICIO7_CONSULTA4
TOTALFALTAS
10

 5.  Muestra el promedio de faltas que tienen los alumnos de cada grupo sin importar cual sera este.
SELECT Grupo, AVG (Faltas) AS Promediofaltas FROM Alumnos GROUP BY Grupo

Ejercicio7_Consulta5
Grupo
Promediofaltas
503
2
505
3.33333333333333

6.-  Muestra el promedio de salario que tienen los maestros que viven en Guzmán
SELECT localidad, AVG (salario) AS PromedioSalario FROM Maestros GROUP BY  localidad  HAVING LOCALIDAD ="Cd.Guzman"

ejercicio7_consulta6
localidad
PromedioSalario
Cd.Guzman
$6,500.00

ACTIVIDAD DE EVALUACIÓN PRACTICA 5
Ahora elabora en tu libreta 6 enunciados de consulta para resolver en la base de datos personal que se están manejando para cada actividad de evaluación.


AGRUPAMIENTO EN COMBINACION DE TABLAS

Si los datos que necesitamos utilizar para obtener nuestro resumen se encuentran en varias Tabla resumen con multi tablas, formamos el origen de datos adecuado en la cláusula FROM como si fuera una consulta multitabla normal.

El ejemplo mas claro es cuando se desean extraer datos de 2 o mas tablas y ala vez agruparlas.

CONSULTA 1
MOSTRAR LA CANTIDAD DE ALUMNOS A LOS QUE ATIENDE CADA MAESTRO EN CADA GRUPO

SELECT MAESTROS.APELLIDO, ALUMNOS.GRUPO, COUNT(*) AS TOTALALUMNOS FROM ALUMNOS LEFT JOIN MAESTROS ON ALUMNOS.NO_TRABAJADOR = MAESTROS.NOTRABAJADOR GROUP BY MAESTROS.APELLIDO, ALUMNOS.GRUPO

EJERCICIO8_CONSULTA1
APELLIDO
GRUPO
TOTALALUMNOS
celis Crisostomo
503
1
muños collaso
505
1
vivas torres
503
1
vivas torres
505
2

Se estan mostrando datos de las dos tablas como el apellido de maestro y el grupo donde se encuentra el alumno asignado y esta contabilizando cuantos alumnos tiene cada maestro en cada grupo.


ACTIVIDAD DE EVALUACIÓN PRACTICA 5


Ahora elabora en tu libreta 6 enunciados de consulta para resolver en la base de datos personal que se están manejando para cada actividad de evaluación.


lunes, 10 de septiembre de 2018

Consultas CON UTILIZACION DE FUNCIONES NUMERICAS, DE CADENA DE CARACTERES, FECHA Y DE CONVERSION



OPERACIONES EN CONSULTAS CON FUNCIONES NUMERICAS

Max, Min
Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Su sintaxis es:
Min(expr)
Max(expr)

En donde expr es el campo sobre el que se desea realizar el cálculo. Expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).

SELECT Max(Gastos) AS ElMax FROM Pedidos

SELECT MIN(Gastos) AS ElMIN FROM Pedidos

sELECT  max(faltas) as mayorfaltas from  alumnos



Count

Calcula el número de registros devueltos por una consulta. Su sintaxis es la siguiente:
Count(expr)

En donde expr contiene el nombre del campo que desea contar. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL). Puede contar cualquier tipo de datos incluso texto.


sELECT count(*) as totalalumnoseninformatica from alumnos where especialidad="informatica"


Consulta1
totalalumnoseninformatica
5



SELECT count(*) as total_registros from alumnos





Round
que permite redondear un número a por ejemplo dos decimales,

SELECT CAMPONUMERICOCONDECIMALES,  ROUND(CAMPONUMERICOCONDECIMALES , NUMDECIMALES) AS NUEVONOMBRECOLUMNA FROM TABLA



OPERACIONES CON FUNCIONES DE CADENA DE CARACTERES



LEN
Devuelve un entero que contiene el número de caracteres de una cadena, o bien el número nominal de bytes necesarios para almacenar una variable

SINTAXIS
 Len(vartipocadena)

EJEMPLO
SELECT LEN(CIUDAD) AS LONGITUD FROM TABLA

CIUDAD
LONGITUD
TAMAZULA
8
GUZMAN
6


SELECT LEN(CIUDAD) AS LONGITUD FROM TABLA


LEFT
Devuelve una cadena que contiene un número especificado de caracteres desde el lado izquierdo de una cadena.

SELECT LEFT(CIUDAD,4) AS “CARACTERESIZQUIERDA” FROM TABLA

CIUDAD
CARACTERES IZQUIERDA
TAMAZULA
TAMA
GUZMAN
GUZM

RIGHT
Devuelve una cadena que contiene un número especificado de caracteres desde el lado derecho de una cadena.

SELECT RIGHT(CIUDAD,3) AS “CARACTERESDERECHA” FROM TABLA

CIUDAD
CARACTERES DERECHA
TAMAZULA
ULA
GUZMAN
MAN




Mid (cadena,inicio,cuantos)

Devuelve una cadena que a su vez contiene un número especificado de caracteres de una cadena.

SELECT MID(CIUDAD,2,3)  AS “NUEVO TEXTO “ FROM ALUMNOS
CIUDAD
NUEVO TEXTO
TAMAZULA
AMA
GUZMAN
UZM


FUNCIONES TIPO FECHA QUE SE USAN EN CONSULTAS O SUBCONSULTAS

Función DateAdd
Devuelve una fecha a la que se le ha agregado un intervalo de tiempo especificado.

                    DateAdd(intervalo, número, fecha)




Donde los Argumentos:
Intervalo
Necesario. Expresión de cadena que es el intervalo que desea agregar , los valores pueden ser
“yyyy”   ->  años
“m”  -> meses
“d” -> días
Número
Necesario. Expresión numérica que es el número de intervalo que desea agregar. La expresión numérica puede ser positiva, para fechas futuras, o negativa, para fechas pasadas
Fecha
Necesario. Campo  o variable tipo  fecha a la que se agrega el intervalo.


Funcion Day (Fecha)
Obtiene el día, a partir de una fecha

Funcion Month(Fecha) 
Obtiene el mes a partir de una fecha.

Funcion year(Fecha) 



Funcion Day (fecha)    Obtiene el Dia será un número


Función Format(fecha,”valor”)
Devuelve los principales Formatos con nombre para el manejo de Fechas y Horas:

Donde fecha es un campo tipo fecha cualquiera y “valor puede tomar los siguientes argumentos:

“General Date” devuelve la fecha en formato genral
“Long Date” devuelve la fecha en formato largo
“Medium Date” devuelve la fecha en formato separado porguiones

Ejemplo
Format("06/08/78", "General Date") ' Devuelve: "06/08/1978"
Format("19/08/79", "Long Date") ' Devuelve : "Jueves 19 de Agosto de 1979".
Format("19/8/79", "Medium Date") ' Devuelve: "19-Ago-1979"


DateDiff    Obtiene el intervalo de tiempo entre dos fechas Usando la función DateDiff() podemos conocer la cantidad de días, meses, años, horas, minutos y segundos que hay entre dos fechas determinadas.

El formato de la función es el siguiente:
                          DateDiff("periodo", fecha1, fecha2)

Donde periodo puede ser:
d (día)
m (mes)
yyyy (año)
h (horas)
m (minutos)
s (segundos)
Fecha 1 es la campo  o variable fecha a utilizar en la resta


Fecha 2 es la campo  o variable fecha a utilizar en la resta












unidad de Aprendizaje:
Programación para el manejo de bases de datos
Número:
1

Practica  
Consultas CON UTILIZACION DE FUNCIONES NUMERICAS, DE CADENA DE CARACTERES, FECHA Y DE CONVERSION

Número:
4
Propósito de la PRACTICA
Realizar consultas de selección utilizando para su aplicación diversas funciones a diferentes tablas de la base de datos como parte de una consulta de selección para obtener información específica de la base de datos.

Escenario:
Laboratorio de informática.
Duración
2 horas

1.    Escribe y resuelve en la libreta de apuntes  enunciados para dar solución a una consulta de selección utilizando cada una de las funciones numéricas, de cadena de caracteres, fecha y de conversión.
2.    Crea la carpeta practica 4 en el escritorio de la computadora
3.    Dentro de la carpeta graba el archivo que comprimiste en la practica 3 extrae la  base de datos   y el documento en Word que llamamos “reporte de la practica 3” que hiciste en la practica 3 y ábrelos  (lo demás archivos y carpetas debes eliminarlos)
AHORA CUANDO GRABES UNA CONSULTA PONDRAS TUS INICIALES GUION BAJO PRACTICA4 GUION BAJO Y EL NOMBRE DE CONSULTA Y EL NUMERO CONSECUTIVO

4.    Realiza  2 consultas mediante la aplicación de los diferentes funciones numéricas mediante el desarrollo de instrucciones SQL,
5.    Realiza  2 consultas mediante la aplicación de los diferentes funciones para manejar cadena de caracteres mediante el desarrollo de instrucciones SQL,
6.    Realiza  2 consultas mediante la aplicación de los diferentes funciones para manejar campos tipo fecha mediante el desarrollo de instrucciones SQL,

7.    En el mismo documento en Word elaborado en la practica 3 elabora el reporte de la practica 4 conteniendo:
a.    LO  REPORTADO EN LA PRACTICA 0,1,2 y 3 enseguida:
b.    La guía de la practica 4
c.    Contenido de la tablas de las bases de datos utilizadas
d.    Enunciado de cada consulta
e.    Código SQL de cada consulta
f.     Resultado de cada consulta