SELECT SQL SERVER: ¿Cómo seleccionar y consultar datos en SQL Server?

Hola amigo / amiga, bienvenido a este nuevo post donde revisaremos y aprenderemos a seleccionar datos de una tabla perteneciente a una base de datos, para poder llevar acabo esta consulta de datos lo haremos a través de: SELECT SQL.

El objetivo es que al finalizar aprendas que: mediante el comando SELECT le indicamos al motor de base de datos de que tabla queremos seleccionar datos y los campos o atributos que deseamos consultar, existen muchas opciones para este comendo, por lo que, analizaremos las mas importantes, así que comencemos con este tema.

Juan Carlos García
by Juan Carlos García24-Ag-20221

Para comprender esta clase, te recomiendo que des un repaso a estas vídeos y no olvides en suscribirte a mi canal de YouTube:

⚠️ NOTA: recuerda que SQL Server utiliza el lenguaje Transact-SQL (T-SQL) el cual es una variante mejorada del lenguaje SQL, por lo tanto, el comando SELECT lo intentaré hacer lo más apegado a SQL, pero, si hay que profundizar, tomaré en cuenta la sintaxis que proporciona Transact-SQL.

 

SELECT SQL: ¿Cómo consultar y seleccionar datos de una tabla en SQL Server?

Vamos a responder esta pregunta a través de varios ejemplos con SELECT, veremos algunas formas que SQL nos proporciona para seleccionar datos de una tabla y, dado que, T-SQL proporciona una gran cantidad de opciones para SELECT, analizaremos casos básicos para no confundirte.

 

¿Qué es y para que sirve SELECT SQL?

El comando SELECT permite seleccionar datos a una tabla perteneciente a una base de datos, además cuenta con opciones que nos permiten, limitar el número de datos consultados, agregar condicionales y agrupación de datos.

Para poder comprender mejor como se lleva a cabo la selección de datos, analicemos la sintaxis de este comando.

 

Sintaxis T-SQL: SELECT

<SELECT statement> ::=    
    [ WITH { [ XMLNAMESPACES ,] [ <common_table_expression> [,...n] ] } ]  
    <query_expression>   
    [ ORDER BY <order_by_expression> ] 
    [ <FOR Clause>]   
    [ OPTION ( <query_hint> [ ,...n ] ) ]   
<query_expression> ::=   
    { <query_specification> | ( <query_expression> ) }   
    [  { UNION [ ALL ] | EXCEPT | INTERSECT }  
        <query_specification> | ( <query_expression> ) [...n ] ]   
<query_specification> ::=   
SELECT [ ALL | DISTINCT ]   
    [TOP ( expression ) [PERCENT] [ WITH TIES ] ]   
    < select_list >   
    [ INTO new_table ]   
    [ FROM { <table_source> } [ ,...n ] ]   
    [ WHERE <search_condition> ]   
    [ <GROUP BY> ]   
    [ HAVING < search_condition > ] 

De esta sintaxis podemos destacar los siguiente:

  • statement: definimos las columnas que deseamos consultar, así como, funciones de agregación, y demás comandos necesarios.
  • ORDER BY: permite establecer el orden de los datos.
  • TOP: indicamos el límite de datos que deseamos regrese el comando.
  • FROM: indica la tabla o las tablas en la que deseamos consultar los datos.
  • WHERE: establecemos las condiciones que deben cumplir los datos a consultar.
  • DISTINCT: nos permite recuperar datos únicos y descartar los repetidos.
  • Etc.

Excelente, como ves, T-SQL proporciona una gran cantidad de opciones para el comando SELECT, no obstante, para este post donde abarcaremos casos básicos, con los parámetros que acabamos de describir será suficiente por el momento, de todos modos, te dejo la página de la documentación por si quieres revisarla: fuente.

Ahora veamos algunos ejemplos para que te quede más claro.

Suscribirme

Gracias por tu calificación:

1

Categorías


  • EWebik
  • React JS
  • SQL
  • Base de datos
  • PHP - MySQL
  • Página Web
  • Servidores
  • Flexbox
  • NodeJS
  • WordPress
  • POO

🥇 Creación de páginas web

⚡️ Quiero mi página web 💪🏼

¿Qué es y para qué sirve SELECT * FROM?

Seleccionar todas las columnas y filas de una tabla resulta ser muy sencillo, por ejemplo:

 

¿Cómo seleccionar todas las filas y columnas de una tabla?

USE ewebikdb;

SELECT * FROM equipos_gps;

-- Estableciendo un alias
SELECT e.* FROM equipos_gps AS e;

El código anterior es sumamente simple:

  • Con el símbolo de asterisco (*) indicamos que deseamos seleccionar todas las columnas.
  • Y con FROM indicamos que los datos a consultar se encuentran en la tabla equipos_gps.
  • Otro punto importante a destacar es que en el segundo SELECT, a la tabla le hemos agregado un alias, el alias simplemente nos permite renombrar una tabla en otra, tal como lo que hicimos en la clase de álgebra relacional con el renombramiento, para este caso la tabla equipos_gps le hemos creado el alias “e”.
  • De igual forma podemos agregar un alias a las columnas.

Si leyéramos el código anterior sería algo así: selecciona todo de la tabla equipos_gps;

📌 NOTA: a pesar de que en código esta consulta es muy simple, debes tener cuidado al ejecutarla en una tabla real, ya que, si tu tabla cuenta con una enorme cantidad de datos, quizá la memoria de tu servidor se sature o el disco duro de tu archivo de log se llene y tengas problemas graves, así que ten mucho cuidado.

 

¿Qué es y para qué sirve SQL SELECT TOP?

Bien, como te he mencionado, regresar todos los datos de una tabla podría ser un problema si dicha tabla contiene una gran cantidad de datos, por lo tanto, si sólo deseas una muestra de dicha tabla, puedes limitar el número de registros que regresará tu consulta a través de TOP, por ejemplo:

 

¿Cómo especificar el número de registros que retorna una consulta en SQL?

USE ewebikdb;

SELECT top 100 e.* FROM equipos_gps AS e;
  • En este ejemplo hemos limitado la consulta a 100 registros, así, no te acabaras la memoria.

 

¿Qué es y para qué sirve SQL SELECT DISTINCT?

Ahora imagina que tenemos una tabla con varios datos repetidos y, deseamos obtener dichos datos, pero, descartando aquellos que se repiten, pues para ello podemos utilizar DISTINCT y, podemos especificar si descartamos únicamente datos repetidos en un atributo o más de un atributo, por ejemplo:

 

¿Cómo seleccionar valores únicos de una tabla en SQL Server?

USE ewebikdb;

-- Hacemos distinción sobre un solo atributo
SELECT
	DISTINCT e.imei
FROM equipos_gps AS e;

-- Especificamos la distinción se debe hacer en más de un atributo

SELECT
	DISTINCT e.imei, e.rfc
FROM equipos_gps AS e;
  • En el primer SELECT indicamos que deseamos recuperar todos los IMEI, pero descartando los repetidos.
  • En el segundo SELECT indicamos que la combinación de imei y rfc, no debe repetirse.

 

¿Qué es y para qué sirve SELECT CASE en SQL?

A través de la función CASE en SQL podemos crear condiciones a los atributos y, devolver un resultado u otro, dependiendo del resultad tras validar la condición, esto es similar a if-then-else de algunos lenguajes de programación.

 

¿Cómo condicionar los atributos de un SELECT a través de CASE?

USE ewebikdb;

SELECT
	CASE
		WHEN rfc = '-' or rfc = '' THEN 'Cliente no valido'
		WHEN rfc = NULL				THEN 'Cliente no valido'
		ELSE
			rfc
	END AS 'RFC'
FROM equipos_gps;

En el código especificamos que:

  • Si rfc es igual a guion o vacío: debes regresar Cliente no valido.
  • En una segunda condicional indicamos que si rfc es un valor nulo, también regresas Cliente no valido.
  • Pude haber puesto amabas condiciones en una misma línea, pero mi intención es que veas que puedes agregar varios condicionales (WHEN) dentro del CASE.
  • Si, ninguna condicional se cumple, simplemente regresamos el rfc y a esta nueva columna que forma el CASE, la llamamos nuevamente rfc.

Suscribirme

Gracias por tu calificación:

1

Categorías


  • EWebik
  • React JS
  • SQL
  • Base de datos
  • PHP - MySQL
  • Página Web
  • Servidores
  • Flexbox
  • NodeJS
  • WordPress
  • POO

🥇 Creación de páginas web

⚡️ Quiero mi página web 💪🏼

¿Qué es y para que sirve SQL ORDER BY?

Una instrucción sumamente usada en SQL es ORDER BY, con esta instrucción podemos indicar el orden en que queremos que el motor de base de datos nos regrese la información, por ejemplo:

 

¿Cómo consultar datos y ordenarlos en SQL Server?

USE ewebikdb;

SELECT
	e.rfc,
	e.imei
FROM equipos_gps AS e
ORDER BY e.rfc, e.imei;
  • Le hemos indicado al motor de base de datos que deseamos recuperar los datos ordenados por rfc y después por imei.
  • Con esto podríamos visualizar rápidamente los equipos por cliente.

 

¿Qué es y para qué sirve SELECT SQL WHERE?

Ahora, que pasa si deseamos solo seleccionar un conjunto especifico de datos, para ello, debemos especificar una condición que deben cumplir los datos en nuestra consulta, para ello utilizaremos el parámetro WHERE, por ejemplo:

 

¿Cómo seleccionar datos estableciendo condiciones?

USE ewebikdb;

SELECT
	e.imei	as i,
	e.celular as cel
FROM equipos_gps AS e
WHERE
	e.imei = '111111111111111'
AND	e.rfc = 'aaaa111111';
  • En la consulta indicamos que solo queremos retornar las columnas o atributos: imei y celular; pero, al mismo tiempo les agregamos un alias “i” y “cel”, respectivamente.
  • WHERE: indicamos la condicional que deben cumplir los datos, en este caso: imei debe ser igual a 111111111111111 y rfc debe ser igual a aaaa111111.
    • En esta condicional podemos utilizar operadores lógicos: AND, OR, NOT, >, <, etc.

 

¿Qué es y para qué sirve SELECT SQL BETWEEN?

A través de BETWEEN podemos especificar a nuestra consulta un rango, es decir, podemos indicar al motor que regrese todos los datos que se encuentran entre un valor y otro, ya sea, un rango de fechas, textos o números, por ejemplo:

 

¿Cómo seleccionar datos entre dos fechas con SQL BETWEEN?

USE ewebikdb;

SELECT
	e.*
FROM equipos_gps AS e
WHERE
	e.fecha BETWEEN '2021-01-01' AND '2021-12-31';
  • A través de BETWEEN podemos especificar un rango, por ejemplo en este caso indicamos:
    • La fecha 2021-01-01 como valor inicial del rango.
    • Y la fecha 2021-12-31 como valor final del rango.
  • BETWEEN es inclusivo, tanto el valor inicial o final son incluidos en la consulta.
  • Si leyéramos a BETWEEN, sería como decir: selecciona los datos que están entre valor inicial y valor final.

Suscribirme

Gracias por tu calificación:

1

Categorías


  • EWebik
  • React JS
  • SQL
  • Base de datos
  • PHP - MySQL
  • Página Web
  • Servidores
  • Flexbox
  • NodeJS
  • WordPress
  • POO

🥇 Creación de páginas web

⚡️ Quiero mi página web 💪🏼

¿Qué es y para qué sirve SELECT LIKE?

A través de LIKE podemos buscar un patrón especifico dentro de una columna, esto es muy útil cuando necesitamos realizar búsquedas dentro de un texto.

 

Comodines de LIKE SQL

Existen dos comodines que podemos utilizar con esta instrucción:

  • El símbolo de porcentaje (%) representa cero, uno o muchos caracteres.
  • Por otra parte, el símbolo de guion bajo (_) representa un sólo carácter.

Revisemos la siguiente tabla antes de pasar hacer unos ejemplos en SQL Server:

EjemploFuncionamiento
LIKE ‘e%’Regresa cualquier valor que inicio con “e”.
LIKE ‘%e’Regresa cualquier valor que termine con “e”.
LIKE ‘%ewebik%’Regresa cualquier valor que contenga en cualquier posición “ewebik”.
LIKE ‘_e’Regresa cualquier valor que tenga una “e” en la segunda posición.
LIKE ‘e_%’Regresa cualquier valor que inicie con “e” y sea de al menos dos caracteres.
LIKE ‘e__%’Regresa cualquier valor que inicie con “e” y sea de al menos tres caracteres.
LIKE ‘e%k’Regresa cualquier valor que comience con “e” y termina con "k", sin importar el tamaño o letras del contenido.

 

¿Cómo seleccionar datos de una tabla con SELECT LIKE Y NOT LIKE?

USE ewebikdb;

-- Regresar datos que cumplan con el patrón
SELECT
	e.*
FROM equipos_gps AS e
WHERE
	e.imei LIKE '1%2';

-- Regresar los datos que no cumplan con el patrón
SELECT
	e.*
FROM equipos_gps AS e
WHERE
	e.imei NOT LIKE '1%2';

En el primer SELECT tenemos la siguiente condicional:

  • WHERE e.imei LIKE '1%2' : indica que la consulta regresará todos los imei que inician en 1 y terminan con 2.

Ahora, también podemos excluir un patrón y retornar todos los datos que no cumplan con el, esto lo hacemos agregando NOT a la condición, tal como se lleva acabo en el segundo SELECT:

  • WHERE e.imei NOT LIKE '1%2' : indica que la consulta regresará todos los imei que no inicien en 1 y terminen con 2.

 

¿Qué es y para que sirve SELECT GROUP BY?

Bien, a través de GROUP BY podemos identificar columnas por las cuales agruparemos un resultado o resumen, es decir, si queremos saber el promedio de gastos de un usuario, obtendríamos el promedio del atributo que representa el gasto y a través de GROUP BY indicaríamos que la columna usuario es por la cual agrupáremos el resumen.

  • Por lo regular GROUP BY es utilizado con funciones de agregación: COUNT, MAX, MIN, SUM, AVG, etc.

Hagamos un ejemplo para que te quede más claro.

 

¿Cómo agrupar columnas a través de GROUP BY en SQL Server?

USE ewebikdb;

SELECT
	e.rfc, COUNT(*) as cantidad
FROM equipos_gps AS e
GROUP BY e.rfc;

En el código lleva a cabo lo siguiente:

  • Regresamos la cantidad de equipos por rfc, es decir, cuantos equipos tiene cada cliente.
  • En primer lugar indicamos que deseamos regresar la columna rfc y la función de agregación COUNT, donde, a COUNT le agregamos un alias cantidad.
  • Por lo tanto, en GROUP BY necesitamos especificar en que columna se llevará acabo la agrupación, en este caso es rfc.

Podemos agrupar más de una columna, de hecho, podemos agrupar la cantidad de columnas que sean necesarias para crear nuestro resumen.

 

Conclusión: SELECT SQL

Excelente, hemos llegado al final, ahora ya conoces:

  • Como llevar acabo un SELECT.
  • Limitar el número de registros.
  • Eliminar datos repetidos de un SELECT.
  • Como funciona un SELECT CASE.
  • Ordenar datos a través de ORDER BY.
  • Agregar a un SELECT condicionales a través de WHERE.
  • Seleccionar un rango de datos a través de BETWEEN.
  • Buscar patrones a través de LIKE.
  • Y crear resúmenes de nuestros datos a través de funciones de agregación y GROUP BY.

Ahora solo debes practicar y ver ti mismo cada consulta, combina cada caso y experimenta, pero siempre en un ambiente de desarrollo y pruebas, ya que, aunque sea solo seleccionar datos, puedes estresar el servidor. Nos vemos en la próxima clase.

Suscribirme

Gracias por tu calificación:

1

Categorías


  • EWebik
  • React JS
  • SQL
  • Base de datos
  • PHP - MySQL
  • Página Web
  • Servidores
  • Flexbox
  • NodeJS
  • WordPress
  • POO

🥇 Creación de páginas web

⚡️ Quiero mi página web 💪🏼

🧐 Autoevaluación: SELECT SQL

1 ¿Qué es un SELECT en SQL Server?

2 ¿Qué es el SELECT DISTINCT?

3 ¿Para que sirve BETWEEN?

Juan Carlos García

Juan Carlos García

Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como: Node JS, PHP, C# y Bases de datos.

Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.

Desarrollador de software

© 2022 EWebik

Diseño de páginas web y aplicaciones moviles.