• No se han encontrado resultados

5- Uso de sentencias avanzadas

N/A
N/A
Protected

Academic year: 2021

Share "5- Uso de sentencias avanzadas"

Copied!
8
0
0

Texto completo

(1)

5- Uso de sentencias avanzadas

Objetivos:

 Elaborar sentencias de manejo de datos.

Recursos:

 Microsoft SQL Server Management Studio  Guías prácticas.

Introducción:

Después de trabajar con las sentencias de agregar, modificar, editar y visualizar datos, debemos de ver algunas sentencias y modificadores para refinar y mejorar las búsquedas de nuestras bases de datos.

MAX y MIN

Las funciones MAX y MIN son muy similares así que las revisaremos juntas revisarlas juntas. La función MAX arroja el valor más alto para la columna especificada, y la función MIN arroja el valor más bajo.

Ambas funciones requieren que se especifique un nombre de columna. Por ejemplo, supongamos que tenemos una tabla de las ventas por ciudad de una empresa, y necesitamos saber cual es la venta máxima y cual es la mínima o mejor cuales es la máxima y mínima.

Tabla: vtaxciudad

Puedo obtener los resultados ejecutanmos las siguientes consultas: SELECT MAX(tot_ventas)AS 'VENTA MAYOR' FROM vtaxciudad

(2)

SELECT MIN(tot_ventas)AS 'VENTA MENOR' FROM vtaxciudad

SELECT MAX(tot_ventas)AS 'VENTA MAYOR',MIN(tot_ventas)AS 'VENTA MENOR' FROM vtaxciudad

Cuando se ejecuta esta instrucción, los resultados de la consulta incluirán solamente un valor (una fila y una columna), como se muestra en los siguientes resultados:

Este resultado, por sí mismo, no resulta de mucha ayuda. Sería mejor si los resultados de la consulta también incluyeran el nombre de la ciudad. Sin embargo, SQL no soporta una instrucción SELECT como la siguiente:

SELECT nom_ciudad,MIN(tot_ventas) AS 'VENTA MENOR' FROM vtaxciudad

Esta consulta generaría un error, pues no soporta colocar una columna adicional sin un modificador.

COUNT

Como su nombre sugiere, la función COUNT cuenta el número de filas en una tabla o el número de valores en una columna, según se especifique en la instrucción SELECT. Cuando se utiliza la función COUNT, se debe especificar un nombre de columna para contar el número de valores que no sean nulos en una columna, o un asterisco para contar todas las filas en una tabla independientemente de los valores nulos. Por ejemplo, si se quiere saber el total de registros de la siguiente tabla:

(3)

Elaboraremos la siguiente consulta:

SELECT COUNT(tot_ventas)AS 'Total Registros' FROM vtaxvendedor

La cual nos dará como resultado:

También puede utilizar la sentencia WHERE para contar los registros de esa condición, por ejemplo:

SELECT COUNT(tot_ventas)AS 'Total Registros' FROM vtaxvendedor WHERE vendedor = 'Karla Alas' Esto nos dara como resultado la cantidad de dos, que son la cantidad de registros que tiene el vendedor seleccionado.

GROUP BY

La siguiente cláusula en la instrucción SELECT es la cláusula GROUP BY. La cláusula GROUP BY tiene una función muy diferente de la cláusula WHERE. Como su nombre lo indica, la cláusula GROUP BY se utiliza para agrupar tipos de información con el fin de resumir datos relacionados. La cláusula GROUP BY se puede incluir en la instrucción SELECT aun si la cláusula WHERE se utiliza o no.

Si utilizamos la tabla de vtaxvendedor y queremos agrupar y saber cuantas ventas tengo por vendedor, ejecutaremos la siguiente consulta:

SELECT vendedor AS Vendedor,SUM(tot_ventas) AS 'Total Vendido' FROM vtaxvendedor GROUP BY vendedor

(4)

También puedo usar WHERE para solo ver el resultado de un vendedor, por ejemplo: SELECT vendedor AS Vendedor,SUM(tot_ventas) AS 'Total Ventas' FROM vtaxvendedor WHERE vendedor = 'Karla Alas' GROUP BY vendedor

Esto nos dará el siguiente resultado:

SUM

A diferencia de las funciones MIN y MAX, que seleccionan los valores más alto y más bajo de una columna, la función SUM agrupa valores de columna. Esto es particularmente útil cuando se necesita encontrar los totales para datos agrupados.

Para entender mejor la función SUM, tomemos la tabla vtaxvendedor de ventas por vendedor. Y pro usamos la siguiente consulta:

SELECT SUM(tot_ventas) AS TOTAL_VENDIDOS FROM vtaxvendedor

Esta nos da como resultado la siguiente pantalla.

A pesar de que la función SUM, al igual que cualquier otra función set, trata a la tabla entera como un grupo único si ningún dato ha sido explícitamente agrupado, si quisiera agrupar a los vendedores y obtener el total de ventas por cada uno de ellos, realizaríamos la siguiente consulta:

SELECT vendedor AS Vendedor,SUM(tot_ventas) AS 'Total Vendido' FROM vtaxvendedor GROUP BY vendedor

(5)

Si lo necesita también podrá incorporar WHERE a su consulta.

AVG

Como se puede imaginar, la función AVG simplemente promedia los valores en una columna especificada. Al igual que la función SUM, es más efectiva cuando se utiliza junto con una cláusula GROUP BY, a pesar de que puede ser utilizada sin la cláusula, como se muestra en el siguiente ejemplo:

SELECT AVG(tot_ventas) AS 'Total Vendido' FROM vtaxvendedor

Lo cual nos da por resultado el siguiente:

A pesar de que esta información puede ser bastante útil, sería de mucha más ayuda si se estableciera una instrucción que agrupe los datos:

SELECT vendedor as Vendedor,AVG(tot_ventas) AS 'Total Vendido' FROM vtaxvendedor GROUP BY vendedor

Si se ejecuta esta instrucción, se obtendrán los siguientes resultados de la consulta:

Esto nos daría como resultado la venta promedio de cada vendedor.

BETWEEN

Hablando estrictamente, el predicado BETWEEN no es un predicado de comparación. Sin embargo, es lo suficientemente similar en funciones al operador Mayor que o Igual a y a los operadores Menor que o Igual a, que vale la pena analizar aquí.

El predicado BETWEEN se utiliza en conjunción con la palabra clave AND para identificar un rango de valores que pueden ser incluidos como una condición de búsqueda en la cláusula WHERE. Los valores en la columna identificada deben entrar en ese rango para poder

(6)

evaluarse, utilizando la tabla vtaxvendedor, podemos hacer la siguiente consulta:

SELECT vendedor AS Vendedor, tot_ventas AS Ventas FROM vtaxvendedor WHERE tot_ventas between 500 and 2000

Lo cual nos daría el siguiente resultado:

Nos mostraría las ventas por vendedor que estén entre 500 y 2000 dolares.

IN

El predicado IN permite determinar si los valores en la columna especificada de una tabla están contenidos en una lista definida o contenidos dentro de otra tabla. En el primer caso, se debe especificar el nombre de la columna, la palabra clave IN y una lista de valores que son comparados a los valores en la columna especificada. En el segundo caso, se debe especificar el nombre de la columna, la palabra clave IN y una subconsulta, que hace referencia a la segunda tabla. En cada caso, si el valor de la columna coincide con uno de los valores en la lista o en los resultados de la subconsulta, el predicado se evalúa como verdadero y la fila es arrojada en los resultados de la consulta.

La mejor forma de ilustrar ambos de estos métodos es por medio de ejemplos. Usando siempre la tabla de vtaxvendedor evaluaremos la primera opción con la siguiente consulta. SELECT * FROM vtaxvendedor WHERE tot_ventas IN (600,700,800,900)

Esta nos dará como resultado el siguiente:

De la lista solo un registro concuerda con la lista en la clausula IN.

Otra forma es haciéndolo mediante una subconsulta, para lo cual nos ayudaremos con la tabla siguiente.

(7)

Tabla: valores

Lo que haremos médiate la siguiente consulta es ver cuantos datos de la tabla valores concuerdan con los datos de la tabla vtaxvendedor, la consulta es la siguiente:

SELECT * FROM vtaxvendedor WHERE tot_ventas IN (SELECT * FROM valores)

Dicha consulta logra coincidir con dos registros de la tabla y presenta los siguientes resultados.

SUBSTRING

La función del valor de cadena SUBSTRING extrae un número definido de caracteres de una cadena de caracteres identificada para crear una nueva cadena. Esa cadena de caracteres original puede ser derivada de una columna o puede ser declarada explícitamente. En ambos casos, la cadena de caracteres pasa como un parámetro de la función SUBSTRING, junto con un punto de inicio y una especificación de longitud. Por ejemplo, supongamos que se quieren arrojar solamente los primeros 5 caracteres de los valores en la columna vendedor de la tabla vtaxvendedor.

La función SUBSTRING incluye tres parámetros, nombre del campo, numero de posición de inicio y posición final. Se puede crear una instrucción SELECT similar a la siguiente:

SELECT SUBSTRING(vendedor,1,5) AS Abreviado FROM vtaxvendedor

Es resultado esta consulta es que tomara los primeros 5 caracteres de la columna vendedor y los mostrara de la siguiente forma.:

(8)

Ejercicios:

 Pruebe la sentencia vista en esta clase con la base de datos de la guía pasada.  Realice combinaciones de varios operadores y sentencias.

Datos ejemplo:

CREATE DATABASE prueba2

GO

USE prueba2

GO

CREATE TABLE vtaxciudad (

nom_ciudad varchar(25), tot_ventas smallmoney

)

INSERT INTO vtaxciudad VALUES ('Soyapango',3456.99)

INSERT INTO vtaxciudad VALUES ('Santa Ana',12456.23)

INSERT INTO vtaxciudad VALUES ('Ciudad Barrios',6356.99)

INSERT INTO vtaxciudad VALUES ('Apopa',956.00)

INSERT INTO vtaxciudad VALUES ('San Bartolo',13756.45)

CREATE TABLE vtaxvendedor (

vendedor varchar(25), tot_ventas smallmoney, sucursal int

)

INSERT INTO vtaxvendedor VALUES ('Efrain Burgos',345.56,1)

INSERT INTO vtaxvendedor VALUES ('Carlos Olmos',2345.00,1)

INSERT INTO vtaxvendedor VALUES ('Efrain Burgos',509.87,2)

INSERT INTO vtaxvendedor VALUES ('Karla Alas',3123.05,3)

INSERT INTO vtaxvendedor VALUES ('Carlos Olmos',323.76,3)

INSERT INTO vtaxvendedor VALUES ('Efrain Burgos',800.00,2)

INSERT INTO vtaxvendedor VALUES ('Carlos Olmos',654.43,2)

INSERT INTO vtaxvendedor VALUES ('Karla Alas',123.34,4)

Referencias

Documento similar

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

Detectar versiones en abierto en otras fuentes de publicaciones en acceso restringido en el repositorio.  Listado con

Cancioneiro de Madrid. 1 Nunca espeiei de amor contentamiento. 5v) 2 Es en todo tan corta esta jornada. 6v) 3 Aquel camino larguo de mis daños. 8v) 5 El tiempo en toda cosa

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

EL PAPEL DE LA POLITICA FISCAL EN EL CRECIMIENTO Y DESARROLLO ECONOMICO DE MEXICO 1982-2014, UNA. PERSPECTIVA PARA EL CORTO PLAZO

#### Leal Camacho Jessica Berenice Jiménez Vázquez Miguel Angel 15-ago-11 30527780-2 Análisis del Crédito al Consumo en México; 1995-2010 Tesis Escolarizado. #### Ledezma Pedraza