12.176 cursos gratis
8.741.989 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Capýtulo 12:

 Creación de consultas. Algunos elementos del Lenguaje SQL (4/4)

Agrupamiento de registros GROUP BY

La cláusula GROUP BY agrupa, como su propio nombre indica, filas que tienen el mismo valor para un atributo, en grupos distintos. Por ejemplo, si queremos obtener el apellido de todos los autores, ejecutamos

SELECT apellido FROM autores

Si nos fijamos en el resultado obtenido, tenemos que existen dos autores, cuyo apellido es el mismo, Ringer. Por lo tanto, se muestran dos filas iguales para este apellido, una por cada autor que se apellida Ringer. Supongamos ahora, que lo único que nos interesa es obtener todos los apellidos que sean distintos. Para ello deberemos agrupar los autores cuyo apellido sea el mismo en un único grupo, y a continuación mostrar los grupos, en lugar de las filas. Con esto garantizamos que sólo se mostrará una fila por cada apellido distinto, ya que sólo mostramos una fila del grupo, en lugar de todas. Esto que parece tan complicado, se resume en una sentencia, usando la cláusula GROUP BY.

SELECT apellido FROM autores GROUP BY apellido

En ella, lo que se hace es simplemente un select, pero no de las filas de la tabla, sino de los grupos obtenidos a partir de la cláusula GROUP BY. Puesto que deseamos agrupar por el apellido, detrás de esta cláusula se debe determinar el atributo apellido, garantizando así que todas las filas cuyo valor de este atributo sea igual, irán al mismo grupo.

Uso de las funciones de agregado más importantes (Count, Max, Min, Sum)

SUM:Realiza una suma acumulativa de un atributo para todas las filas accedidas mediante una consulta SQL.

Por ejemplo, supongamos que tenemos una tabla de pedidos, con los atributos cod_cliente, cod_material y precio. Si queremos obtener la suma del precio de todos los pedidos almacenados, bastará con realizar una función de tipo SUM:

SELECT sum(precio) FROM pedido

La anterior consulta obtiene la suma del precio para todas las filas de la tabla pedido, ya que no hemos especificado ninguna condición en la cláusula WHERE.

Si ahora queremos obtener la suma total de todos los pedidos realizados por el cliente cuyo código es "R12CE", debemos realizar la misma consulta, pero especificando una condición para obtener únicamente las filas cuyo cod_cliente es "R12CE":

SELECT sum(precio) FROM pedido WHERE cod_cliente = "R12CE"

COUNT:Cuenta todas las filas de las tablas accedidas mediante una consulta SQL.

Por ejemplo, si tenemos una tabla cliente, con todos los clientes de una empresa de servicios, con los atributos DNI, nombre, apellidos, dirección y población, y queremos saber todos los clientes que tenemos, deberemos realizar un count, para obtener todas el número de filas de la tabla ejecutamos

SELECT count(DNI) FROM cliente

En el anterior ejemplo, al existir el mismo número de filas, sea cual sea el atributo que

seleccionemos, podríamos haber escogido cualquier otro. En general, se suele escribir

SELECT count(*) FROM cliente

Si ahora queremos saber el número de clientes que viven en Madrid, deberemos realizar un conteo de todas las filas con la condición de que el atributo población sea Madrid.

SELECT count(*) FROM cliente WHERE poblacion = "Madrid"

Si queremos saber cuantos títulos tenemos nuestra base de datos, teclearemos

SELECT count(*) FROM titles

Y si queremos saber cuantos títulos tenemos, cuyo precio es mayor de 20 $, deberemos

realizar lo mismo, pero especificando esta condición en la cláusula WHERE. Al resultado de la búsqueda le llamaremos caros.

SELECT count(*) caros FROM titles WHERE price > 20

MAX:Obtiene el máximo valor del atributo especificado, de entre todas las filas

seleccionadas mediante la sentencia SQL.

Supóngase, por ejemplo, que tenemos la tabla de materiales descrita anteriormente. Si

queremos saber el material mas caro, deberemos realizar un SELECT con la cláusula max, que obtenga el mayor valor para el atributo precio de todas las filas. Para nuestro ejemplo, si queremos saber cual es el libro más caro, ejecutaremos

SELECT max(price) caro FROM titles

MIN:Obtiene el mínimo valor del atributo especificado, de entre todas las filas seleccionadas mediante la sentencia SQL. Si queremos saber cual es el libro más barato de nuestra base de datos, deberemos ejecutar

SELECT min(price) barato FROM titles

Consultas específicas de SQL

Consultas de paso a través

Una consulta paso a través envía comandos directamente a las bases de datos ODBC, como Microsoft FoxPro, mediante comandos aceptados por el servidor. Por ejemplo, puede emplear una consulta de paso a través para recuperar registros o modificar datos. Mediante las consultas de paso a través se trabaja directamente con las tablas del servidor, en vez de establecer vinculación a ellas. Las consultas paso a través son también útiles para ejecutar procedimientos almacenados en un servidor ODBC.

¿Cómo hacerlo?

  1. En la ventana Base de datos, haga clic en Consultas, bajo Objetos, y, a continuación, haga clic en Nuevo en la barra de herramientas de la ventana Base de datos.
  2. En el cuadro de diálogo Nueva consulta, haga clic en Vista diseño y luego en Aceptar.
  3. Sin agregar tablas o consultas, haga clic en Cerrar, en el cuadro de diálogo Mostrar tabla.
  4. En el menú Consultas señale Específica de SQL y haga clic en Paso a través.
  5. En la barra de herramientas, haga clic en Propiedades, para ver la hoja de propiedades de la consulta.
  6. En la hoja de propiedades de la consulta, configure la propiedad CadConexiónODBC (ODBCConnectStr) para especificar la información sobre la base de datos a la que se desea conectar. Puede escribir la información para la conexión o hacer clic en Generar e introducir la información sobre el servidor al que se está conectando. 

Cuando se le solicita guardar la contraseña en la cadena de conexión, seleccione , en caso de que desee guardar la contraseña en la información de la cadena de conexión.

  1. Si la consulta no es de las que devuelve registros, configure la propiedad DevuelveRegistros (ReturnsRecords) a No.
  2. En la ventana Consulta de paso a través de SQL, escriba su consulta de paso a través.

Para obtener detalles sobre la sintaxis para la consulta, vea la documentación sobre el servidor de bases de datos SQL al que está enviando la consulta.

  1. Para ejecutar la consulta, haga clic en Ejecutar en la barra de herramientas. De forma alternativa, para una consulta de paso a través que devuelve registros, puede hacer clic en Vista en la barra de herramientas.

Si fuera necesario, Microsoft Access le solicitará información acerca de su base de datos SQL Server.

Notas

  • Si no se especifica una cadena de conexión en la propiedad CadConexión (ODBCConnectStr) o si se elimina una existente, Access utiliza "ODBC" de forma predeterminada. Con este valor, Access solicita la información de conexión cada vez que se ejecuta la consulta.
  • Algunas consultas de paso a través pueden devolver mensajes junto con los datos. Si se configura la propiedad AnotarMensajes (LogMessages) de la consulta en , Access crea una tabla que contiene los mensajes devueltos. El nombre de la tabla es el nombre del usuario unido mediante un guión (-) a un número secuencial que comienza en 00. Por ejemplo, si el nombre de usuario predeterminado es ADMIN, las tablas devueltas se denominarán "ADMIN - 00", "ADMIN - 01", y así sucesivamente.

Consultas de definición de datos.

Una consulta de definición de datos crea, elimina o modifica tablas, o crea índices en una tabla de base de datos. Por ejemplo, la siguiente consulta de definición de datos utiliza la instrucción CREATE TABLE para crear una tabla denominada Amigos. La instrucción incluye el nombre y el tipo de datos de cada campo de la tabla, y asigna al campo IdAmigo un índice que lo identifica como clave principal.

CREATE TABLE Amigos
([IdAmigo] entero,
[Apellidos] texto,
[Nombre] texto,
[Cumpleaños] fecha,
[Teléfono] texto,
[Notas] memo,
CONSTRAINT [Índice1] PRIMARY KEY ([IdAmigo]));

¿Cómo hacerlo?

  1. En la ventana Base de Datos, haga clic en Consultas, bajo Objetos, y, a continuación, haga clic en Nuevo en la barra de herramientas de la ventana Base de datos.
  2. En el cuadro de diálogo Nueva consulta, haga clic en Vista diseño y luego en Aceptar.
  3. Sin agregar tablas o consultas, haga clic en Cerrar, en el cuadro de diálogo Mostrar tabla.
  4. En el menú Consultas señale Específica de SQL y haga clic en Definición de datos.
  5. Introduzca la instrucción SQL para la consulta de definición de datos. Cada consulta de definición de datos está formada por una sola instrucción de definición de datos. 

Instrucciones de definición de datos admitidas

Instrucción SQLFinalidad
CREATE TABLECrea una tabla
ALTER TABLEAgrega un nuevo campo o una nueva restricción a una tabla existente
DROPElimina una tabla de una base de datos o quita un índice de un campo o grupo de campos
CREATE INDEXCrea un índice para un campo o grupo de campos

Para ejecutar la consulta, haga clic en Ejecutar en la barra de herramientas.

Consultas de unión

Una consulta de combinación combina campos de dos o más tablas o consultas en un solo campo en los resultados de la consulta. Una consulta de combinación se puede utilizar para combinar datos de dos tablas. Por ejemplo, se pueden combinar datos de nombres de organizaciones y de ciudades de todas las organizaciones de Brasil que aparezcan en las tablas Proveedores y Clientes. Después, se puede construir una consulta de creación de tabla basada en la consulta de combinación para crear una tabla nueva.

Combinar datos de dos o más tablas con una consulta de unión Combinar datos de dos o más tablas con una consulta de uniónConsulta

La primera instrucción SELECT devuelve dos campos,  la segunda instrucción SELECT devuelve dos campos correspondientes y después,  combina en una sola tabla los valores de los campos correspondientes de ambas tablas.

¿Cómo hacerlo?

  1. En la ventana Base de Datos, haga clic en ConsultasConsulta, bajo Objetos, y, a continuación, haga clic en Nuevo en la barra de herramientas de la ventana Base de datos.
  2. En el cuadro de diálogo Nueva consulta, haga clic en Vista diseño y luego en Aceptar.
  3. Sin agregar tablas o consultas, haga clic en Cerrar, en el cuadro de diálogo Mostrar tabla.
  4. En el menú Consultas, señale Específica de SQL y haga clic en Unión.
  5. Introduzca instrucciones SQL SELECT combinadas con cualquier operación de UNION si no desea retornar registros duplicados o UNION ALL si desea retornar registros duplicados.

Nota   Cada instrucción SELECT debe devolver el mismo número de campos en el mismo orden. Los campos correspondientes deben tener tipos de datos compatibles. La excepción es que se puede utilizar un campo Numérico y Texto como campos correspondientes.

  1. Si desea especificar un orden alfabético en una consulta de unión, agregue una sola cláusula ORDER BY al final de la última instrucción SELECT. En la cláusula ORDER BY, especifique el nombre del campo por el que se va a ordenar, que debe proceder de la primera instrucción SELECT.
  2. Para ver los resultados de la consulta, haga clic en Vista en la barra de herramientas.

Nota  Una consulta de combinación toma los nombres de las columnas de los nombres de columna de la primera tabla o instrucción SELECT. Si desea cambiar el nombre de un campo del resultado, utilice la cláusula AS para crear un alias para los campos.

Nuestras novedades en tu e-mail

Escribe tu e-mail:



MailxMail tratarý tus datos para realizar acciones promocionales (výa email y/o telýfono).
En la polýtica de privacidad conocerýs tu derechos y gestionarýs la baja.

Cursos similares a Diseño y creación de bases de datos



  • Výdeo
  • Alumnos
  • Valoraciýn
  • Cursos
1. SGBD. Sistemas gestores de bases de datos (primera parte)
SGBD, Sistemas gestores de bases datos, en un curso de informática serio, pero... [21/10/08]
8.228  
2. SGBD. Sistemas gestores de bases de datos (segunda parte)
En este curso de informática sobre los SGBD o Sistema gestores de bases de datos,... [21/10/08]
5.030  
3. Diseño de base de datos relacionales
Aprende a diseñar bases de datos relacionales.Conocer el origen, historia y la... [13/04/05]
24.659  

ýQuý es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail