Cómo escribir consultas simples

Publicado: 2022-03-21

¿Has oído hablar de SQL? Es posible que haya oído hablar de él en el contexto del análisis de datos, pero nunca pensó que se aplicaría a usted como especialista en marketing. O quizás haya pensado: “Eso es para los usuarios de datos avanzados. Nunca podría hacer eso."

¡Pues no podrías estar más equivocado! Los especialistas en marketing más exitosos se basan en datos, y una de las partes más importantes de estar basados ​​en datos es recopilar datos de bases de datos rápidamente. SQL es la herramienta más popular que existe para hacer precisamente eso.

Si su empresa ya almacena datos en una base de datos, es posible que deba aprender SQL para acceder a los datos. Pero no se preocupe, está en el lugar correcto para comenzar. Saltemos directamente.

Descargue 10 plantillas de Excel para especialistas en marketing [Kit gratuito]

¿Por qué usar SQL?

SQL (a menudo pronunciado como "secuela") significa lenguaje de consulta estructurado y se usa cuando las empresas tienen una gran cantidad de datos que desean manipular. La belleza de SQL es que cualquiera que trabaje en una empresa que almacene datos en una base de datos relacional puede usarlo. (Y lo más probable es que el tuyo lo haga).

Por ejemplo, si trabaja para una empresa de software y desea obtener datos de uso de sus clientes, puede hacerlo con SQL. Si está ayudando a desarrollar un sitio web para una empresa de comercio electrónico que tiene datos sobre las compras de los clientes, puede usar SQL para averiguar qué clientes están comprando qué productos. Por supuesto, estas son solo algunas de las muchas aplicaciones posibles.

Piénselo de esta manera: ¿alguna vez ha abierto un conjunto de datos muy grande en Excel, solo para que su computadora se congele o incluso se apague? SQL le permite acceder solo a ciertas partes de sus datos a la vez para que no tenga que descargar todos los datos en un CSV, manipularlos y posiblemente sobrecargar Excel. En otras palabras, SQL se encarga del análisis de datos que usted puede estar acostumbrado a hacer en Excel.

Cómo escribir consultas SQL simples

Antes de comenzar, asegúrese de tener una aplicación de administración de base de datos que le permita extraer datos de su base de datos. Algunas opciones incluyen MySQL o Sequel Pro.

Comience descargando una de estas opciones, luego hable con el departamento de TI de su empresa sobre cómo conectarse a su base de datos. La opción que elija dependerá del back-end de su producto, así que consulte con su equipo de producto para asegurarse de seleccionar la correcta.

Comprender la jerarquía de su base de datos

A continuación, es importante acostumbrarse a su base de datos y su jerarquía. Si tiene varias bases de datos de datos, deberá concentrarse en la ubicación de los datos con los que desea trabajar.

Por ejemplo, supongamos que estamos trabajando con múltiples bases de datos sobre personas en los Estados Unidos. Ingrese la consulta “MOSTRAR BASES DE DATOS;”. Los resultados pueden mostrar que tiene un par de bases de datos para diferentes ubicaciones, incluida una para Nueva Inglaterra.

Dentro de su base de datos, tendrá diferentes tablas que contienen los datos con los que desea trabajar. Usando el mismo ejemplo anterior, digamos que queremos averiguar qué información está contenida en una de las bases de datos. Si usamos la consulta “MOSTRAR TABLAS en Nueva Inglaterra”, encontraremos que tenemos tablas para cada estado en Nueva Inglaterra: gente_connecticut, gente_maine, gente_massachusetts, gente_newhampshire, gente_rhodeisland y gente_vermont.

Finalmente, debe averiguar qué campos están en las tablas. Los campos son los datos específicos que puede extraer de su base de datos. Por ejemplo, si desea obtener la dirección de alguien, el nombre del campo puede no ser simplemente "dirección", sino que puede estar separado en dirección_ciudad, dirección_estado, dirección_código postal. Para resolver esto, utilice la consulta "Describe people_massachusetts;". Esto proporciona una lista de todos los datos que puede extraer mediante SQL.

Hagamos una revisión rápida de la jerarquía usando nuestro ejemplo de Nueva Inglaterra:

  • Nuestra base de datos es: NewEngland.
  • Nuestras tablas dentro de esa base de datos son: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland y people_vermont.
  • Nuestros campos dentro de la tabla people_massachusetts incluyen: address_city, address_state, address_zip, hair_color, age, first_name y last_name.

Ahora, escribamos algunas consultas SQL simples para extraer datos de nuestra base de datos de NewEngland.

Consultas SQL básicas

Para aprender a escribir una consulta SQL, usemos el siguiente ejemplo:

¿Quiénes son las personas que son pelirrojas en Massachusetts y nacieron en 2003 organizadas en orden alfabético?

SELECCIONE

SELECCIONAR elige los campos que desea que se muestren en su gráfico. Esta es la información específica que desea extraer de su base de datos. En el ejemplo anterior, queremos encontrar a las personas que cumplan con el resto de los criterios.

Aquí está nuestra consulta SQL:

SELECCIONE

primer nombre,

apellido

;

DE

FROM señala la tabla de la que desea extraer los datos. En la sección anterior, aprendimos que había seis tablas para cada uno de los seis estados de Nueva Inglaterra: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland y people_vermont. Debido a que estamos buscando personas en Massachusetts específicamente, obtendremos datos de esa tabla específica.

Aquí está nuestra consulta SQL:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

;

DÓNDE

DONDE le permite filtrar una consulta para que sea más específica. En nuestro ejemplo, queremos filtrar nuestra consulta para incluir solo a las personas pelirrojas que nacieron en 2003. Comencemos con el filtro pelirrojo.

Aquí está nuestra consulta SQL:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo=”rojo”

;

hair_color podría haber sido parte de su declaración SELECT inicial si hubiera querido ver a todas las personas en Massachusetts junto con su color de cabello. Pero si desea filtrar para ver solo a las personas pelirrojas, puede hacerlo con una instrucción WHERE.

ENTRE

Además de igual a (=), BETWEEN es otro operador que puede usar para consultas condicionales. Una instrucción BETWEEN es verdadera para los valores que se encuentran entre los valores mínimo y máximo especificados.

En nuestro caso, podemos usar BETWEEN para extraer registros de un año específico, como 2003. Esta es la consulta:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

;

Y

AND le permite agregar criterios adicionales a su declaración WHERE. Recuerde, queremos filtrar por personas que eran pelirrojas además de las personas que nacieron en 2003. Dado que nuestra afirmación DÓNDE se basa en los criterios de pelirrojos, ¿cómo podemos filtrar también por un año de nacimiento específico?

Ahí es donde entra en juego la instrucción AND. En este caso, la instrucción AND es una propiedad de fecha, pero no necesariamente tiene que serlo. (Nota: verifique el formato de sus fechas con su equipo de producto para asegurarse de que estén en el formato correcto).

Aquí está nuestra consulta SQL:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo=”rojo”

Y

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

;

O

OR también se puede usar con una instrucción WHERE. Con AND, ambas condiciones deben cumplirse para aparecer en los resultados (por ejemplo, el color del cabello debe ser rojo y debe haber nacido en 2003). Con OR, cualquiera de las condiciones debe ser verdadera para aparecer en los resultados (por ejemplo, el color del cabello debe ser rojo o debe haber nacido en 2003).

Así es como se ve una instrucción OR en acción:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo = 'rojo'

O

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

;

NO

NOT se usa en una declaración WHERE para mostrar valores en los que la condición especificada no es verdadera. Si quisiéramos obtener todos los residentes de Massachusetts sin cabello rojo, podemos usar la siguiente consulta:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DONDE NO

color_pelo = 'rojo'

;

ORDENAR POR

Los cálculos y la organización también se pueden realizar dentro de una consulta. Ahí es donde entran las funciones ORDER BY y GROUP BY. Primero, veremos nuestras consultas SQL con las funciones ORDER BY y luego GROUP BY. Luego, veremos brevemente la diferencia entre los dos.

Una cláusula ORDER BY le permite ordenar por cualquiera de los campos que haya especificado en la instrucción SELECT. En este caso, ordenemos por apellido.

Aquí está nuestra consulta SQL:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo = 'rojo'

Y

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

ORDENAR POR

apellido

;

AGRUPAR POR

GROUP BY es similar a ORDER BY, pero agrega datos que tienen similitudes. Por ejemplo, si tiene duplicados en sus datos, puede usar GROUP BY para contar la cantidad de duplicados en sus campos.

Aquí está su consulta SQL:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo = 'rojo'

Y

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

AGRUPAR POR

apellido

;

ORDEN POR VS. AGRUPAR POR

Para mostrar la diferencia entre una declaración ORDER BY y una declaración GROUP BY, salgamos brevemente de nuestro ejemplo de Massachusetts para ver un conjunto de datos muy simple. A continuación se muestra una lista de los números de identificación y los nombres de cuatro empleados.

a table of four names and IDs as a result of sql queries

Si tuviéramos que usar una instrucción ORDER BY en esta lista, los nombres de los empleados se clasificarían en orden alfabético. El resultado se vería así:

a table of four names and IDs as a result of sql queries with the name Peter appearing twice at the bottom

Si tuviéramos que usar una declaración GROUP BY en su lugar, los empleados se contarían según la cantidad de veces que aparecieron en la tabla inicial. Tenga en cuenta que Peter apareció dos veces en la tabla inicial, por lo que el resultado se vería así:

sql query examples: a table of three names and IDs

Conmigo hasta ahora? Bien, volvamos a la consulta SQL que hemos estado creando sobre personas pelirrojas en Massachusetts que nacieron en 2003.

LÍMITE

Dependiendo de la cantidad de datos que tenga en su base de datos, puede llevar mucho tiempo ejecutar sus consultas. Esto puede ser frustrante, especialmente si cometió un error en su consulta y ahora necesita esperar antes de continuar. Si desea probar una consulta, la función LIMIT le permite limitar la cantidad de resultados que obtiene.

Por ejemplo, si sospechamos que hay miles de personas pelirrojas en Massachusetts, es posible que queramos probar nuestra consulta usando LIMIT antes de ejecutarla por completo para asegurarnos de obtener la información que queremos. Digamos, por ejemplo, que solo queremos ver a las primeras 100 personas en nuestro resultado.

Aquí está nuestra consulta SQL:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo = 'rojo'

Y

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

ORDENAR POR

apellido

LÍMITE

100

;

INSERTAR EN

Además de recuperar información de una base de datos relacional, SQL también se puede utilizar para modificar el contenido de una base de datos. Por supuesto, necesitará permisos para realizar cambios en los datos de su empresa. Pero, en caso de que alguna vez esté a cargo de administrar los contenidos de una base de datos, compartiremos algunas consultas que debe saber.

Primero está la declaración INSERT INTO, que es para poner nuevos valores en su base de datos. Si queremos agregar una nueva persona a la tabla de Massachusetts, podemos hacerlo proporcionando primero el nombre de la tabla que queremos modificar y los campos dentro de la tabla a los que queremos agregar. A continuación, escribimos VALOR con cada valor respectivo que queremos agregar.

Así es como podría verse esa consulta:

INSERTAR EN

personas_massachusetts (dirección_ciudad, dirección_estado, dirección_código postal, color_de_pelo, edad, nombre, apellido)

VALORES

(Cambridge, Massachusetts, 02139, rubia, 32, Jane, Doe)

;

Alternativamente, si está agregando un valor a cada campo de la tabla, no necesita especificar campos. Los valores se agregarán a las columnas en el orden en que aparecen en la consulta.

INSERTAR EN

gente_massachusetts

VALORES

(Cambridge, Massachusetts, 02139, rubia, 32, Jane, Doe)

;

Si solo desea agregar valores a campos específicos, debe especificar estos campos. Digamos que solo queremos insertar un registro con first_name, last_name y address_state; podemos usar la siguiente consulta:

INSERTAR EN

personas_massachusetts (nombre, apellido, dirección_estado)

VALORES

(Jane, Doe, Massachusetts)

;

ACTUALIZAR

Si desea reemplazar los valores existentes en su base de datos con valores diferentes, puede usar ACTUALIZAR. ¿Qué pasa si, por ejemplo, alguien está registrado en la base de datos como pelirrojo cuando en realidad tiene el pelo castaño? Podemos actualizar este registro con instrucciones UPDATE y WHERE:

ACTUALIZAR

gente_massachusetts

ESTABLECER

color_pelo = 'marrón'

DÓNDE

nombre = 'Jane'

Y

last_name = 'Cierva'

;

O digamos que hay un problema en su tabla donde algunos valores para “address_state” aparecen como “Massachusetts” y otros aparecen como “MA”. Para cambiar todas las instancias de "MA" a "Massachusetts", podemos usar una consulta simple y actualizar varios registros a la vez:

ACTUALIZAR

gente_massachusetts

ESTABLECER

dirección_estado = 'Massachusetts'

DÓNDE

dirección_estado = MA

;

Tenga cuidado al usar ACTUALIZAR. Si no especifica qué registros cambiar con una instrucción WHERE, cambiará todos los valores de la tabla.

ELIMINAR

DELETE elimina registros de su tabla. Al igual que con ACTUALIZAR, asegúrese de incluir una instrucción WHERE, para que no elimine accidentalmente toda su tabla.

O bien, si encontramos varios registros en nuestra tabla people_massachusetts que realmente vivían en Maine, podemos eliminar estas entradas rápidamente seleccionando el campo address_state, así:

ELIMINAR DE

gente_massachusetts

DÓNDE

dirección_estado = 'maine'

;

Bonificación: Consejos avanzados de SQL

Ahora que aprendió cómo crear una consulta SQL simple, analicemos algunos otros trucos que puede usar para mejorar sus consultas, comenzando con el asterisco.

* (asterisco)

Cuando agrega un carácter de asterisco a su consulta SQL, le dice a la consulta que desea incluir todas las columnas de datos en sus resultados.

En el ejemplo de Massachusetts que hemos estado usando, solo hemos tenido dos nombres de columna: nombre y apellido. Pero digamos que tenemos 15 columnas de datos que queremos ver en nuestros resultados: sería una molestia escribir los 15 nombres de columna en la instrucción SELECT. En cambio, si reemplaza los nombres de esas columnas con un asterisco, la consulta sabrá extraer todas las columnas en los resultados.

Así es como se vería la consulta SQL:

SELECCIONE

*

DE

gente_massachusetts

DÓNDE

color_pelo=”rojo”

Y

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

ORDENAR POR

apellido

LÍMITE

100

;

% (símbolo de porcentaje)

El símbolo de porcentaje es un carácter comodín, lo que significa que puede representar uno o más caracteres en un valor de base de datos. Los caracteres comodín son útiles para ubicar registros que comparten caracteres comunes. Por lo general, se usan con el operador LIKE para encontrar un patrón en los datos.

Por ejemplo, si quisiéramos obtener los nombres de cada persona en nuestra tabla cuyo código postal comience con "02", podemos escribir esta consulta:

SELECCIONE

primer nombre,

apellido

DÓNDE

dirección_zip COMO '02%'

;

Aquí, "%" representa cualquier grupo de dígitos que sigue a "02", por lo que esta consulta muestra cualquier registro con un valor para address_zip que comience con "02".

ÚLTIMOS 30 DÍAS

Una vez que comencé a usar SQL con regularidad, descubrí que una de mis consultas de acceso consistía en tratar de encontrar qué personas realizaron una acción o cumplieron con un determinado conjunto de criterios en los últimos 30 días.

Supongamos que hoy es el 1 de diciembre de 2021. Puede crear estos parámetros haciendo que la fecha de nacimiento se extienda entre el 1 de noviembre de 2021 y el 30 de noviembre de 2021. Esa consulta SQL se vería así:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo=”rojo”

Y

fecha_nacimiento ENTRE '2021-11-01' Y '2021-11-30'

ORDENAR POR

apellido

LÍMITE

100

;

Pero eso requeriría pensar en qué fechas cubren los últimos 30 días, y tendría que actualizar esta consulta constantemente.

En su lugar, para que las fechas abarquen automáticamente los últimos 30 días sin importar qué día sea, puede escribir esto debajo de Y: fecha_nacimiento >= (FECHA_SUB(FECHA_ACTUAL(),INTERVALO 30))

(Nota: querrá volver a verificar esta sintaxis con su equipo de producto porque puede diferir según el software que use para extraer sus consultas SQL).

Por lo tanto, su consulta SQL completa se vería así:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

DÓNDE

color_pelo=”rojo”

Y

fecha_nacimiento >= (FECHA_SUB(FECHA ACTUAL(),INTERVALO 30))

ORDENAR POR

apellido

LÍMITE

100

;

CONTAR

En algunos casos, es posible que desee contar el número de veces que aparece un criterio de un campo. Por ejemplo, supongamos que desea contar la cantidad de veces que aparecen los diferentes colores de cabello para las personas de Massachusetts que está contando. En este caso, COUNT será útil para que no tengas que sumar manualmente la cantidad de personas que tienen diferentes colores de cabello o exportar esa información a Excel.

Así es como se vería esa consulta SQL:

SELECCIONE

color de pelo,

CONTAR(color_pelo)

DE

gente_massachusetts

Y

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

AGRUPAR POR

color de pelo

;

PROMEDIO

AVG calcula el promedio de un atributo en los resultados de su consulta, excluyendo los valores NULL (vacíos). En nuestro ejemplo, podríamos usar AVG para calcular la edad promedio de los residentes de Massachusetts en nuestra consulta.

Así es como se vería nuestra consulta SQL:

SELECCIONE

PROMEDIO(edad)

DE

gente_massachusetts

;

SUMA

SUM es otro cálculo simple que puede hacer en SQL. Calcula el valor total de todos los atributos de su consulta. Entonces, si quisiéramos sumar todas las edades de los residentes de Massachusetts, podemos usar esta consulta:

SELECCIONE

SUMA(edad)

DE

gente_massachusetts

;

MIN y MAX

MIN y MAX son dos funciones SQL que le brindan los valores más pequeños y más grandes de un campo determinado. Podemos usarlo para identificar a los miembros más antiguos y más jóvenes de nuestra tabla de Massachusetts:

Esta consulta nos dará el registro de los más antiguos:

SELECCIONE

MIN(edad)

DE

gente_massachusetts

;

Y esta consulta nos da la más antigua:

SELECCIONE

MAX(edad)

DE

gente_massachusetts

;

UNIRSE

Puede haber un momento en el que necesite acceder a la información de dos tablas diferentes en una consulta SQL. En SQL, puede usar una cláusula JOIN para hacer esto.

(Para aquellos familiarizados con las fórmulas de Excel, esto es similar a usar la fórmula BUSCARV cuando necesita combinar información de dos hojas diferentes en Excel).

Digamos que tenemos una tabla que tiene datos de ID de usuario y fechas de nacimiento de todos los residentes de Massachusetts. Además, tenemos una tabla completamente separada que contiene las identificaciones de usuario y el color de cabello de todos los residentes de Massachusetts.

Si queremos averiguar el color de cabello de los residentes de Massachusetts nacidos en el año 2003, necesitamos acceder a la información de ambas tablas y combinarlas. Esto funciona porque ambas tablas comparten una columna coincidente: ID de usuario.

Debido a que llamamos campos de dos tablas diferentes, nuestra instrucción SELECT también cambiará ligeramente. En lugar de solo enumerar los campos que queremos incluir en nuestros resultados, debemos especificar de qué tabla provienen. (Nota: la función de asterisco puede ser útil aquí para que su consulta incluya ambas tablas en sus resultados).

Para especificar un campo de una tabla específica, todo lo que tenemos que hacer es combinar el nombre de la tabla con el nombre del campo. Por ejemplo, nuestra declaración SELECT diría "table.field" — con el punto que separa el nombre de la tabla y el nombre del campo.

También estamos asumiendo algunas cosas en este caso:

  1. La tabla de fechas de nacimiento de Massachusetts incluye los siguientes campos: nombre, apellido, ID de usuario, fecha de nacimiento
  2. La tabla de colores de cabello de Massachusetts incluye los siguientes campos: user_id, hair_color

Por lo tanto, su consulta SQL se vería así:

SELECCIONE

fecha_de_nacimiento_massachusetts.primer_nombre,

fecha_nacimiento_massachusetts.apellido

DE

birthdate_massachusetts ÚNETE haircolor_massachusetts USANDO (user_id)

DÓNDE

color_pelo=”rojo”

Y

fecha_nacimiento ENTRE '2003-01-01' Y '2003-12-31'

ORDENAR POR

apellido

;

Esta consulta uniría las dos tablas usando el campo "user_id" que aparece tanto en la tabla birthdate_massachusetts como en la tabla haircolor_massachusetts. Entonces podrá ver una tabla de personas nacidas en 2003 que tienen el pelo rojo.

CASO

Utilice una declaración CASE cuando desee devolver resultados diferentes a su consulta según la condición que se cumpla. Las condiciones se evalúan en orden. Una vez que se cumple una condición, se devuelve el resultado correspondiente y se saltan todas las condiciones siguientes.

Puede incluir una condición ELSE al final en caso de que no se cumplan las condiciones. Sin ELSE, la consulta devolverá NULL si no se cumplen las condiciones.

Aquí hay un ejemplo del uso de CASE para devolver una cadena basada en la consulta:

SELECCIONE

primer nombre,

apellido

DE

gente_massachusetts

CASO

WHEN hair_color = 'brown' THEN 'Esta persona tiene cabello castaño.'

WHEN hair_color = 'blonde' THEN 'Esta persona tiene cabello rubio.'

WHEN hair_color = 'red' THEN 'Esta persona tiene el pelo rojo.'

ELSE 'Color de pelo desconocido.'

FINAL

;

Consultas SQL básicas que los especialistas en marketing deben saber

Felicidades. ¡está listo para ejecutar sus propias consultas SQL! Si bien hay mucho más que puede hacer con SQL, espero que haya encontrado útil esta descripción general de los conceptos básicos para que pueda ensuciarse las manos. Con una base sólida de los conceptos básicos, podrá navegar mejor por SQL y trabajar en algunos de los ejemplos más complejos.

Nota del editor: esta publicación se publicó originalmente el 25 de marzo y se actualizó para que sea más completa.

plantillas de marketing de excel