Está en la página 1de 10

Investigar:

Estructura General de queries

Para realizar consultas sobre las tablas de las bases de datos disponemos de la
instrucción SELECT. Con ella podemos consultar una o varias tablas. Es sin duda el
comando más versátil del lenguaje SQL.

Existen muchas cláusulas asociadas a la sentencia SELECT (GROUP BY, ORDER,


HAVING, UNION). También es una de las instrucciones en la que con más frecuencia
los motores de bases de datos incorporan cláusulas adicionales al estándar, que es el que
veremos aquí.

Vamos a empezar viendo las consultas simples, basadas en una sola tabla. Veremos cómo
obtener filas y columnas de una tabla en el orden en que nos haga falta.

El resultado de una consulta SELECT nos devuelve una tabla lógica. Es decir, los
resultados son una relación de datos, que tiene filas/registros, con una serie de
campos/columnas. Igual que cualquier tabla de la base de datos. Sin embargo esta tabla
está en memoria mientras la utilicemos, y luego se descarta. Cada vez que ejecutamos la
consulta se vuelve a calcular el resultado.

Comandos de SQL

SELECT se utiliza cuando quieres leer (o seleccionar) tus datos. INSERT se utiliza
cuando quieres añadir (o insertar) nuevos datos. UPDATE se utiliza cuando quieres
cambiar (o actualizar) datos existentes. DELETE se utiliza cuando quieres eliminar
(o borrar) datos existentes.

Operaciones con fechas y funciones de agregado.

Las funciones de agregación en SQL nos permiten efectuar operaciones sobre un conjunto
de resultados, pero devolviendo un único valor agregado para todos ellos. Es decir, nos
permiten obtener medias, máximos, etc... sobre un conjunto de valores.

Las funciones de agregación básicas que soportan todos los gestores de datos son las
siguientes:

o COUNT: devuelve el número total de filas seleccionadas por la consulta.


o MIN: devuelve el valor mínimo del campo que especifiquemos.
o MAX: devuelve el valor máximo del campo que especifiquemos.
o SUM: suma los valores del campo que especifiquemos. Sólo se puede
utilizar en columnas numéricas.
o AVG: devuelve el valor promedio del campo que especifiquemos. Sólo
se puede utilizar en columnas numéricas.

Las funciones anteriores son las básicas en SQL, pero cada sistema gestor de bases de
datos relacionales ofrece su propio conjunto, más amplio, con otras funciones de
agregación particulares.

Queries anidados.

A veces puede que desee usar los resultados de una consulta como un campo en otra
consulta o como un criterio para un campo de consulta. Por ejemplo, supongamos que
desea ver el intervalo entre los pedidos de cada uno de los productos. Para crear una
consulta que muestre este intervalo, debe comparar cada fecha de pedido con otras
fechas de pedido para ese producto. Comparar estas fechas de pedido también requiere
una consulta. Puede anidar esta consulta dentro de la consulta principal mediante una
subconsulta.

Puede escribir una subconsulta en una expresión o en una instrucción Lenguaje de


consulta estructurado (SQL) en vista SQL.

Usar los resultados de una consulta como campo en otra consulta

Puede usar una subconsulta como alias de campo. Use una subconsulta como alias de
campo cuando desee usar los resultados de la subconsulta como un campo de la
consulta principal.

Nota: Una subconsulta que se usa como alias de campo no puede devolver más de un
campo.

Puede usar un alias de campo de subconsulta para mostrar valores que dependen de
otros valores de la fila actual, lo que no es posible sin usar una subconsulta.

Por ejemplo, volvamos al ejemplo en el que desea ver el intervalo entre los pedidos de
cada uno de sus productos. Para determinar este intervalo, debe comparar cada fecha de
pedido con otras fechas de pedido para ese producto. Puede crear una consulta que
muestre esta información con la plantilla de base de datos Northwind.
Operaciones de inserción, actualización y borrado con queries
anidados.

Insertar Realiza una operación de inserción en la tabla o vista de destino .

- La operación Insert toma una matriz de registros como entrada. Cada


registro se escribe fuertemente en la tabla de destino y se asigna a la fila
que se inserta en la tabla.
- Puede insertar valores en columnas de identidad siempre que el valor de
la propiedad de enlace AllowIdentityInsert esté establecido en TRUE.
Para obtener más información sobre la propiedad de enlace
AllowIdentityInsert, vea Leer sobre el adaptador de BizTalk para SQL
Server de enlace del adaptador.
- El valor devuelto de la operación Insert es una matriz de tipo de datos
Long. Esta matriz almacena los valores de ident idad de las filas
insertadas, si las hay. Si no hay ninguna columna de identidad en una
tabla, el valor devuelto es NULL.

Seleccionar Realiza una instrucción SELECT en la tabla o vista de destino basada en


una matriz de registros (columnas) y una cadena de consulta que
especifica una cláusula WHERE .

- Se debe especificar un valor para la lista de columnas de la instrucción


SELECT. Si todas las columnas tienen que recuperarse en una tabla o
vista, * debe especificarse en la instrucción SELECT. Si es necesario
recuperar columnas específicas, los nombres de columna deben estar
separados por comas y especificarse en el mismo orden que se def inen en
la tabla o vista.
- La cláusula WHERE debe incluirse en la instrucción SELECT. Sin
embargo, si no desea especificar un valor en la cláusula
WHERE, Query puede eliminar el elemento o dejarlo vacío.
- La operación Seleccionar también permite realizar una operación de
actualización. En este caso, la instrucción UPDATE se coloca dentro
del Query elemento de la instrucción SELECT .

El valor devuelto de la operación Select es un conjunto de resultados


fuertemente tipo que contiene las columnas y filas esp ecificadas de la
tabla o vista de destino.

Actualizar Realiza una operación de actualización en la tabla o vista de destino .

- La operación de actualización toma una matriz de pares de registros


como entrada. Cada par de registros es una colección de dos registros y
cada registro se escribe fuertemente en la tabla de destino .

- El primer registro corresponde a los nuevos valores que deben


actualizarse, es decir, corresponde a la cláusula SET de la instrucción
UPDATE.
- El segundo registro corresponde a los valores antiguos de las filas, es
decir, corresponde a la cláusula WHERE de la instrucción
UPDATE. Nota: Si, para un par de registros determinado, no hay valores
que se puedan usar en la cláusula SET, no se ejecuta ninguna instrucción
UPDATE para ese par de registros.
- Puede actualizar los valores de las columnas de identidad siempre que
el valor de la propiedad de enlace AllowIdentityInsert esté establecido en
TRUE. Para obtener más información sobre la propiedad de enlace
AllowIdentityInsert, vea Leer sobre el adaptador de BizTalk para SQL
Server de enlace del adaptador.
- El valor devuelto de la operación Update es de tipo de datos Int32 y
denota el número de filas actualizadas.
Algunos valores del mensaje de operación de actualización se tratan de la
siguiente manera por el adaptador SQL actualización :

- Se omiten los valores especificados para las columnas calculadas y las


columnas timestamp de la cláusula SET del mensaje .
- Si un tipo definido por el usuario (UDT) no está ordenado por bytes, se
omite el valor especificado para la columna UDT en la cláusula WHERE .
- Si el nodo de una columna de identidad es NULL en la cláusula SET del
mensaje, se omite.

Eliminar Realiza una operación De eliminación en la tabla o vista de destino


basada en una matriz fuertemente fuerte de registros (lista de nombres de
columna) de la tabla de destino y una cadena de filtro que especifica una
cláusula WHERE.

El valor devuelto de la operación Delete es de t ipo de datos Int32 y


indica el número de filas eliminadas.

Algunos valores del mensaje de operación De eliminación se tratan de la


siguiente manera por el adaptador SQL datos:

- Si el nodo de una columna image, XML, Text o Ntext no es NULL en la


cláusula WHERE del mensaje, los valores especificados para ellos se
omiten porque no se pueden comparar estos valores.
- Si el nodo de una columna de identidad o marca de tiempo es NULL, se
omite.
- Si un UDT no está ordenado por bytes, se omite el valor especific ado
para la columna UDT en la cláusula WHERE.
1) Insertar al menos 5 datos a cada una de las tablas anteriormente creada
(Adjuntar comandos SQL Server).
2) Vamos actualizar los datos del primer cliente:

· Actualizar su apellido a UTESA

· Actualizar su correo electrónico a: utesa@utesa.com

3) Un Query para borrar los productos que contengan cantidades negativas.

4) Vamos a seleccionar la última factura mediante la sentencia order by.

select id_factura,
id_cliente,
id_tipo_ncf,
id_tipo_factura,
fecha,
sub_total,
total_itbis,
transporte,
descuento_total,
monto_total,
fecha_vencimiento
From Factura as p
order by sub_total, total_itbis,transporte,
descuento_total,monto_total,fecha_vencimiento
5) Seleccionar las facturas del cliente que contenga el
correo utesa@utesa.com (En este caso se tiene que utilizar joins)

6) Sumar todos los montos de las facturas (Utilizar comando SUM).

7) Insertar x cantidad de clientes que usted desee y luego me enviara un select


para saber qué cantidad de cliente posee actualmente en su base de datos. (Utilizar
comando COUNT).

8) Actualizar el precio a 50 del último producto registrado.


9) Actualizar la fecha de vencimiento de la factura al día actual si el tipo de factura
es al contado.

10) Borrar todas las unidades con estado = ‘inactivo’

Listo

11) Seleccionar todas las facturas con estado activo

12) Seleccionar todos los productos con estado = inactivo

13) Seleccionar todos los clientes que posean el estado = activo

14) Seleccionar los clientes ordenados por nombres

15) Seleccionar solo los 3 primeros clientes (Utilizar comando TOP)


16) Seleccionar todos los correos distintos a utesa@utesa.com (Usar comando
DISTINCT)

17) Seleccionar todas las facturas de los clientes (Utilizar comando INNER JOIN)

18) Seleccionar los clientes que no tengan facturas (Utilizar comando LEFT JOIN o
utilizar select anidados en where con la instrucción NOT EXISTS)

19) Seleccionar todos los datos de una factura: En este caso es hacer INNER JOIN
con Factura, detalle factura y forma de pago de factura.

20) Muestre los 3 primeros productos más caros.

21) Mostrar todos los nombres de los clientes que contengan el estado inactivo
22) Muestre los días transcurridos que se realizó una factura. (Utilizar comandos de
fechas, ya sea DATEDIFF en conjunto del comando GETDATE())

23) Mostrar las facturas entre las fechas (03-03-2020 y 01/12/2021)

24) Seleccionar los productos que contengan el siguiente string: ute (Utilizar
comando LIKE)

25) Mostrar los productos más vendidos en las fechas de: (06/06/2021 –
08/08/2021)

También podría gustarte