En SQL las consultas nos permiten obtener información almacenada en una Base de Datos, podemos consultar los registros de una o varias tablas dependiente de la información que necesitamos mostrar o dicho de otra manera podemos ver datos de una tabla.
Indice del Articulo
Que es una consulta en sql
Una consulta en SQL es una solicitud de información a una base de datos relacional. Se realiza mediante instrucciones estructuradas, como SELECT, INSERT, UPDATE o DELETE. Estas consultas permiten recuperar datos específicos, filtrar información basada en condiciones, agregar nuevos registros, actualizar valores existentes o eliminar datos no deseados. SQL es un lenguaje esencial para la gestión de bases de datos y es ampliamente utilizado por desarrolladores y administradores para trabajar con grandes cantidades de datos de manera eficiente y organizada.
Como hacer consultas en sql
En primer lugar es importante tener claro que para consultar registros de la Base de Datos, necesitamos haber insertado datos en las tablas a través de la instrucción insert de sql.
Instrucción select en SQL
En Management Studio para llevar a cabo las consultas a la base de datos de SQL Server se utiliza la instrucción SELECT, a través de ella es posible consultar una o varias tablas. Es importante mencionar que existen muchas cláusulas que se asocian a la sentencia SELECT, en este artículo abordaremos la forma básica de realizar consultas y en el curso completo de Sql Server veremos las diferentes clausulas asociadas.
Una consulta básica de SQL está enfocada en consultar datos en una sola tabla, y obtener filas y columnas en el orden y cantidad que nosotros queramos.
Sintaxis de consultas en Sql Server (Management Studio)
La sintaxis básica de una consulta SELECT es la siguiente:
SELECT ListaColumnas FROM Nombre_Tabla
En donde:
SELECT es el comando para obtener registros de la base de datos.
ListaColumnas será el espacio en el que debemos especificar los nombres de las columnas de las cuales queremos recibir la información.
From es el comando que permite que indiquemos la tabla de la cual vamos a consultar los registros.
Nombre_Tabla Indicaremos el nombre de la tabla a consultar los datos.
Ejemplos de consultas en Sql Server
En la Base de Datos que hemos trabajado a lo largo de la serie de artículos sobre SQL SERVER, tenemos la tabla alumnos con la estructura siguiente:
Vamos a consultar sus registros, para lo cual usaremos la sintaxis anterior, y la consulta seria la siguiente:
SELECT Nombre, Apellido, Direccion, Fecha_nacimiento FROM Alumnos
Al ejecutar en Management Studio el código anterior, nos devolverá el listado de registros detallados por las columnas nombre, Apellido, Direccion, Fecha_nacimiento. Podemos darnos cuenta que hemos omitido la columna Id, y esto lo pudiéramos hacer con cualquier columna.
Ahora bien si queremos consultar todas las columnas, podemos a cortar el código y hacerlo de la forma siguiente:
SELECT * FROM Alumnos
En este caso el “*” significa que queremos obtener los datos de todas las columnas.
Consulta sql utilizando where
La cláusula where permite especificar una condición que tiene que cumplirse con los registros de uno o varios campos que especifiquemos, de tal manera que los datos que se encuentren dentro de las condiciones, se incluirán en los resultados de la consulta que realicemos.
La cláusula where se utiliza en los casos que no requerimos que devuelvan todos los registros de una tabla, sino que unicamente los datos que cumplan ciertas condiciones.
Las condiciones son expresiones lógicas a comprobar posterior a la cláusula where, el valor que devolverá la comparación será un valor TRUE o FALSE, en virtud al cumplimiento de la condición especificada. Se puede hacer uso de cualquier expresión lógica y en ella implementar algún operador de los siguientes:
> “Mayor”
>= “Mayor o igual”
< “Menor”
<= “Menor o igual”
= “Igual” <> o != “Distinto”
IS [NOT] NULL “para validar si el valor de una columna no es nulo, es decir, si contiene o no contiene algún registro”
Ejemplo de consulta con cláusula where
Para realizar una consultar registros y establecer una condición con la clausula where, lo podemos hacer de la forma siguiente:
SELECT * FROM Alumnos where Nombre='Franklin'
En la consulta anterior lo que estamos indicando es que necesitamos que nos muestre todos los registros de la tabla Alumnos mientras el nombre sea: «Franklin». Como podemos ver la condición que hemos establecido en el where seria que el nombre sea exactamente igual a «Franklin».
Tutorial consultas en SQL SERVER con código y Management Studio
En el siguiente tutorial les muestro la practica de este articulo y realizaremos las consultas básicas en una tabla de nuestra Base de Datos. Recuerda que este tema lo veremos mas a fondo en el curso completo de SQL SERVER.
Entradas Relacionadas:
1.Lista los nombres de los productos junto con su tipo de producto y el nombre del proveedor.
SELECT a.NOMBREPRODUCTO, b.NOMBRETIPOPRODUCTO, c.NOMBREPROVEEDOR
FROM PRODUCTOS a
INNER JOIN TIPOPRODUCTO b ON b.IDTIPOPRODUCTO = a.IDTIPOPRODUCTO
INNER JOIN PROVEEDORES c ON c.IDPROVEEDOR = a.IDPROVEEDOR
2.Muestra la clave primaria solamente de los productos.
SELECT IDPRODUCTO FROM PRODUCTOS
3.Encuentra todos los clientes que aún no han realizado ninguna compra.
SELECT a.NOMBRECLIENTE, a.APELLIDOPATERNO, a.APELLIDOMATERNO
FROM CLIENTES a
LEFT JOIN VENTASDIARIAS b ON b.IDCLIENTE = a.IDCLIENTE
WHERE b.IDCLIENTE IS NULL
SELECT a.NOMBRECLIENTE, a.APELLIDOPATERNO, a.APELLIDOMATERNO
FROM CLIENTES a
WHERE a.IDCLIENTE not in (SELECT b.IDCLIENTE FROM VENTASDIARIAS AS b)
SELECT a.NOMBRECLIENTE, a.APELLIDOPATERNO, a.APELLIDOMATERNO
FROM CLIENTES a
WHERE (SELECT count(*) FROM VENTASDIARIAS AS b where b.IDCLIENTE=a.IDCLIENTE)=0
4.Muestra las ventas diarias realizadas en una sucursal específica, junto con el nombre del producto vendido
SELECT a.FECHAVENTA, a.CANTIDAD, b.NOMBREPRODUCTO
FROM VENTASDIARIAS a
INNER JOIN PRODUCTOS b ON b.IDPRODUCTO = a.IDPRODUCTO
WHERE a.IDSUCURSAL = ‘2’
SELECT C.NOMBRESUCURSAL, A.FECHAVENTA, a.CANTIDAD, b.NOMBREPRODUCTO
FROM VENTASDIARIAS a
INNER JOIN PRODUCTOS b ON b.IDPRODUCTO = a.IDPRODUCTO
INNER JOIN SUCURSALES AS c ON C.IDSUCURSAL=A.IDSUCURSAL
WHERE C.NOMBRESUCURSAL = ‘SANTIAGO-LASCONDES’
SELECT C.NOMBRESUCURSAL, A.FECHAVENTA, a.CANTIDAD, b.NOMBREPRODUCTO
FROM VENTASDIARIAS a
INNER JOIN PRODUCTOS b ON b.IDPRODUCTO = a.IDPRODUCTO
INNER JOIN SUCURSALES AS c ON C.IDSUCURSAL=A.IDSUCURSAL AND C.NOMBRESUCURSAL = ‘SANTIAGO-LASCONDES’
5.Lista todos los productos que aún no han sido comprados
SELECT a.NOMBREPRODUCTO
FROM PRODUCTOS a
LEFT JOIN VENTASDIARIAS b ON b.IDPRODUCTO = a.IDPRODUCTO
WHERE b.IDPRODUCTO IS NULL
SELECT a.NOMBREPRODUCTO
FROM PRODUCTOS a
WHERE a.IDPRODUCTO not in (SELECT b.IDPRODUCTO FROM VENTASDIARIAS AS b)
SELECT a.NOMBREPRODUCTO
FROM PRODUCTOS a
WHERE (SELECT count(*) FROM VENTASDIARIAS AS b where b.IDPRODUCTO=a.IDPRODUCTO)=0
6.Genera una lista de las ciudades y la cantidad de sucursales que tienen en cada una de ellas.
SELECT A.NOMBRECIUDAD, COUNT(B.IDSUCURSAL) AS CANTIDAD_SUCURSALES
FROM CIUDAD A
INNER JOIN SUCURSALES B ON B.IDCIUDAD = A.IDCIUDAD
GROUP BY A.NOMBRECIUDAD
SELECT A.NOMBRECIUDAD, (SELECT COUNT(*) FROM SUCURSALES AS B WHERE B.IDCIUDAD=A.IDCIUDAD) AS CANTIDAD_SUCURSALES
FROM CIUDAD A
7.Muestra todas las ventas que no tienen una observación registrada
SELECT NROVENTA
FROM VENTASDIARIAS
WHERE OBSERVACION IS NULL OR OBSERVACION=»
8.Muestra el total de ventas realizadas por cada vendedor
SELECT A.NOMBREVENDEDOR, A.APELLIDOPATERNO, A.APELLIDOMATERNO, COUNT(b.IDVENDEDOR) AS TOTAL_VENTAS
FROM VENDEDOR A
INNER JOIN VENTASVENDEDOR B ON B.IDVENDEDOR = A.IDVENDEDOR
GROUP BY A.NOMBREVENDEDOR, A.APELLIDOPATERNO, A.APELLIDOMATERNO
SELECT A.NOMBREVENDEDOR, A.APELLIDOPATERNO, A.APELLIDOMATERNO,
(select count(*) FROM VENTASVENDEDOR AS X INNER JOIN VENTASDIARIAS AS Y ON Y.NROVENTA=X.NROVENTA AND X.IDVENDEDOR=A.IDVENDEDOR) AS TOTAL_VENTAS
FROM VENDEDOR A
9.Selecciona toso los productos y muestra si tienen o no un proveedor asignado (usando NOT NULL Y NULL)
SELECT NOMBREPRODUCTO,
CASE
WHEN IDPROVEEDOR IS NOT NULL THEN ‘Tiene proveedor’
ELSE ‘No tiene proveedor’
END
AS ESTADO_PROVEEDOR
FROM PRODUCTOS
SELECT NOMBREPRODUCTO,
CASE
WHEN IDPROVEEDOR IS NOT NULL THEN ‘Tiene proveedor’
WHEN IDPROVEEDOR IS NULL THEN ‘No tiene proveedor’
END
AS ESTADO_PROVEEDOR
FROM PRODUCTOS
10.Muestra una relación entre productos y sus tipos
SELECT a.NOMBREPRODUCTO, b.NOMBRETIPOPRODUCTO
FROM PRODUCTOS a
INNER JOIN TIPOPRODUCTO b ON b.IDTIPOPRODUCTO = a.IDTIPOPRODUCTO
relacion entre sucursales y ciudad
SELECT a.NOMBRESUCURSAL , b.NOMBRECIUDAD
FROM SUCURSALES a
INNER JOIN CIUDAD b ON b.IDCIUDAD = a.IDCIUDAD