[SQL Basic] Cómo trabajar con funciones de cadena en SQL —Mi SQL CONCAT, LENGTH, SUBSTR

# 17. Marketing / Análisis de datos para principiantes

En este tutorial, aprenderemos sobre las funciones que puede usar para manipular datos de cadena de manera fácil y rápida. Hay muchos tipos de funciones para cadenas y, a veces, diferentes bases de datos como Oracle, SQL Server y MySQL tienen diferentes métodos. Cubriremos datos de cadena basados ​​en MySQL.

#Glosario:

Lección 3: SELECCIONAR / DESDE / DONDE
Lección 4: ORDENAR POR
Lección 5: Y / O / IN
Lección 6: ME GUSTA
Lección 7: AS / DISTINCT / IS NULL
Lección 9: CUENTA / SUMA
Lección 10: AVG / MAX / MIN
Lección 11: GRUPO POR / TENIENDO
Lección 12: CASO
Lección 13: UNIÓN INTERNA
14Lección 14: UNIÓN EXTERIOR IZQUIERDA / UNIÓN EXTERIOR DERECHA
Lección 15: SUBQUERÍAS
Lección 16: DATE_FORMAT / DATEDIFF

#Tabla de contenido

Consulta 1. Combine las columnas de nombre y apellido del cliente para crear una nueva columna de nombre completo (CONCAT)
SELECCIONE customer_id, CONCAT (primer nombre, "", apellido) COMO nombre completo DESDE el cliente;
Consulta 2. Vamos a contar la longitud del nombre completo del cliente (LONGITUD)
SELECCIONE customer_id, CONCAT (primer nombre, ““, apellido) COMO nombre completo, LONGITUD (CONCAT (nombre, apellido)) AS length_name DESDE el cliente;
Consulta 3. Imprimamos solo tres caracteres del nombre del cliente (SUBSTR)
SELECCIONE el ID_cliente, CONCAT (nombre_punto, "", apellido_como AS nombre_completo, SUBSTR (CONCAT (nombre_punto, "", apellido_página), 1, 3) COMO nombre_corto DEL cliente;

Q1. Combine las columnas de nombre y apellido del cliente para crear una nueva columna de nombre completo (CONCAT)

Primero echemos un vistazo a la tabla de clientes.

SELECCIONAR * DEL cliente;

La tabla muestra los nombres y apellidos del cliente almacenados en diferentes columnas. Es posible que necesite el nombre completo en consultas más complicadas, por lo que es bueno saber cómo conectar los dos en una línea. Y para combinar los dos en MySQL, puede usar CONCAT.

#CONCAT

Comience especificando qué columna desea ver: ID de cliente
SELECCIONE customer_id

También queremos ver el nombre completo, así que usemos CONCAT para conectar el nombre y el apellido. Para agregar un espacio entre los dos, necesitamos poner uno específicamente allí y resaltarlo con comillas dobles (""). Asegúrese de separar los tres con comas:
CONCAT (primer nombre, "", apellido)

Cambie el nombre de esta nueva columna como Nombre completo:
AS nombre_completo

Y finalmente, ciérrelo con el nombre de la tabla y un punto y coma. Su consulta completa y final se verá así:
SELECCIONE customer_id, CONCAT (first_name, “”, last_name) AS full_name FROM customer;

️ ¡¡Usa F9 en SQLGate para formatear tu consulta !!

También puede agregar texto adicional en la consulta CONCAT de esta manera:

SELECCIONE customer_id, CONCAT ("Hola. Soy", first_name, "", last_name) AS full_name FROM customer;

¡Hola! Encantada de conocerte!

Q2 Vamos a contar la longitud del nombre completo del cliente (caracteres en el nombre y apellido).

A veces es necesario calcular la longitud de una cadena. Vamos a utilizar la consulta LENGTH para hacerlo. Esta función acepta datos de cadena como un valor de entrada, calcula cuántos caracteres tiene y genera números (calcula en función de los bytes).

#LONGITUD

Puede usar cadenas o columnas de cadenas directamente dentro de la función LENGTH, pero para este ejemplo usaremos la consulta CONCAT que acabamos de aprender. En el ejemplo anterior, el resultado de la función CONCAT fue una cadena correspondiente al nombre del cliente (full_name) para que podamos usarlo sin problemas. Pero si CONCAT se usa para cálculos numéricos, no podrá reproducir esta consulta.

Aquí hay un desglose visual de lo que hace esta consulta:

Entonces, primero configure las columnas que desea ver en la función SELECCIONAR:
SELECCIONE customer_id, CONCAT (first_name, "", last_name) AS full_name

Y luego agregue la función LONGITUD. Queremos contar cada carácter en el nombre y apellido, sin incluir el espacio que agregamos anteriormente, por lo que vamos a reescribir nuestra función CONCAT para LENGTH. Así es como debería verse:
LONGITUD (CONCAT (nombre, apellido))

Continúe y cambie el nombre de la nueva columna como Longitud de nombre y cierre la consulta:
COMO name_length DE cliente;

Así es como se ve la consulta final:

SELECCIONE el ID_cliente, CONCAT (nombre_punto, "", apellido_como AS nombre_completo, LONGITUD (CONCAT (nombre_punto, apellido_)) COMO nombre_ longitud del cliente;

¡Excelente! ¿Pero por qué hicimos eso? ¿Por qué necesitamos saber la longitud de los nombres de los clientes? Tenemos que entender esta función para nuestra pregunta de Tiempo de práctica. Lo verás aparecer de nuevo más tarde. Sigamos por ahora ~

Q3. Imprimamos solo tres caracteres del nombre del cliente (primeros tres y últimos tres).

La función SUBSTR se usa para extraer solo una parte de la cadena completa. También le permite establecer una posición inicial y especificar cuántos caracteres desea extraer.

#SUBSTR

Sigamos construyendo sobre nuestra consulta anterior. Comience con SELECCIONAR:
SELECCIONE customer_id, CONCAT (nombre_nombre, "", apellido_)

No olvide cambiar el nombre de la nueva columna:
AS nombre_completo

Luego conecte SUBSTR y dentro de él, duplique su función CONCAT. Aquí, tenemos dos nuevos factores en los que pensar. Primero, necesitamos establecer la posición de inicio. Como queremos que comience desde el principio, usaremos el número 1. A continuación, debemos indicar cuántos caracteres del nombre queríamos imprimir. Digamos solo 3 caracteres:
SUBSTR (CONCAT (primer nombre, "", apellido), 1, 3)

Aquí hay una demostración visual de lo que hace SUBTR:

Cambie el nombre de esta columna también:
AS nombre_corto

Ciérrelo con una función FROM:
Del cliente;

Su consulta final debería verse así:

SELECCIONE el ID_cliente, CONCAT (nombre_punto, "", apellido_como AS nombre_completo, SUBSTR (CONCAT (nombre_punto, "", apellido_página), 1, 3) COMO nombre_corto DEL cliente;

¡Así que ahora solo vemos los primeros 3 caracteres de cada nombre! MARY SMITH se ha convertido en MAR. agradable!

Digamos que queremos imprimir solo los últimos 3 caracteres de una cadena. ¿Cómo lo haríamos? Esto es un poco difícil. Como la longitud de todos los nombres es diferente, no podemos contar la posición exacta. ¡Pero lo que podemos hacer es retroceder! Simplemente dígale a SQLGate que desea retroceder 3 posiciones en todos los nombres y comenzar allí. Podemos hacer esto escribiendo negativo 3 (-3). Debe tener un aspecto como este:

SELECCIONE el ID_cliente, CONCAT (nombre_punto, "", apellido_como AS nombre_completo, SUBSTR (CONCAT (nombre_punto, "", apellido_página), 1, 3) COMO nombre_corto DEL cliente;

Puede establecer su posición de inicio al frente de la cadena usando números positivos, o establecerla en la parte posterior de la cadena usando números negativos.

#Tiempo de practica

Imprima una lista de nombres de clientes y sus correos electrónicos censurados (usando CONCAT, SUBSTR, REPEAT, LENGTH)

Al tratar con la información personal del cliente, como el nombre, la dirección y el número de teléfono, debemos manejarla sin exponerla. Usando las funciones que aprendimos hasta ahora, usemos la tabla de clientes para reemplazar el correo electrónico del cliente con una cadena que no se puede identificar.

Vamos a usar CONCAT y SUBSTR para censurar el correo electrónico. Primero, use CONCAT para obtener el nombre completo de los clientes. Luego use CONCAT y SUBSTR juntos para recuperar el correo electrónico, use REPEAT e INSTR para censurarlo y use AS para cambiar el nombre de la columna.

REPETIR: repite una cadena tantas veces como desees
INSTR: devuelve la posición de la primera aparición de una cadena en otra cadena

Así es como se ve el resultado:

¿Te sientes un poco confundido? Vamos a desglosarlo:

Comience con su función SELECCIONAR y continúe con la primera columna que desea ver, la columna ID de cliente:
SELECCIONE customer_id

Use CONCAT para combinar el nombre y apellido de los clientes, y cambie el nombre de la nueva columna como nombre completo:
CONCAT (primer nombre, "", apellido) COMO nombre completo

Use CONCAT nuevamente para crear la columna secreta de correo electrónico usando estos pasos:

  1. Imprima las 3 primeras letras del correo electrónico de un cliente utilizando SUBSTR
    (SUBSTR (correo electrónico, 1, 3)
  2. Con INSTR identificaremos una cadena (correo electrónico) y especificaremos un cierto carácter (@) como la posición inicial que queremos en la cadena.
    INSTR (correo electrónico, "@")
  3. Ahora, ya que queremos censurar el correo electrónico, necesitamos poner asteriscos (*) para completar la longitud restante (caracteres) después de los 3 originales que imprimimos. Debido a que esa longitud es diferente para cada correo electrónico, debemos repetirla tantas veces como sea necesario, así que usemos REPETIR. También vamos a restar 1 (-1) para el símbolo @ y restar 3 (-3) para el 3 texto impreso del correo electrónico, para que la información no se censure.
    REPETIR ("*", INSTR (correo electrónico) -1-3)
  4. Agregue el nombre de dominio a la cadena y cierre la función CONCAT:
    ‘@ Sakilacustomer.org’)
  5. Cambie el nombre de la nueva columna y escriba el nombre de la tabla:
    COMO secret_email DEL cliente;

Cuando ejecute la consulta (F5) obtendrá los primeros 3 caracteres de su correo electrónico impresos, ¡seguido de asteriscos que censuran el resto de la información personal! Aquí está la consulta completa juntos:

SELECCIONE customer_id, CONCAT (primer nombre, "", apellido) COMO nombre completo, CONCAT (SUBSTR (correo electrónico, 1, 3), REPEAT ('*', INSTR (correo electrónico, '@') - 1–3), '@sakilacustomer. org ') COMO secret_email DEL cliente;

Puede parecer algo complejo, pero no es difícil definir cada cadena que desea ver a la vez y luego combinarla con la función CONCAT. Aunque solo demostramos una práctica comúnmente utilizada de estas funciones, hay muchas otras formas de usarlas. Experimenta con ellos para encontrar el correcto

Si desea más orientación visual, consulte nuestro video tutorial a continuación:

# Video tutorial

Haga clic para descargar la versión gratuita de SQLGate

# [SQL Basic Series] - Marketing / Análisis de datos para principiantes

1. ¿Qué es SQL? - Introducción a la base de datos
2. Descarga de SQLGate y conexión a una base de datos
3. ¿Qué tipo de datos hay en la tabla de "película"? - SELECCIONAR / DESDE / DONDE
4. ¿Cómo ordenar las listas de películas por precio (tarifa de alquiler)? - ORDENAR POR
5. ¿Puedo alquilar una película de 3 horas por $ 0.99? - Y / O / EN
6. ¿Cómo puedo encontrar una película que sea emocionante? - ME GUSTA
7. ¿Cómo renombrar columnas y ver valores únicos? - AS / DISTINCT / IS NULL
8. ¡Veamos tablas de base de datos de muestra!
9. ¿Cuál es la duración total de todas las películas sumadas? - CUENTA / SUMA
10. ¿Cuál es la duración promedio de la película? - AVG / MIN / MAX
11. ¿Cuántas películas tienen la misma calificación? - GRUPO POR / TENIENDO
12. Designemos un valor basado en la duración del alquiler. - CASO
13. ¡Averigüemos los géneros de películas uniendo tablas! - UNIR INTERNAMENTE
14. ¡Verifiquemos el alquiler de películas por la lista de inventario! - IZQUIERDA IZQUIERDA / DERECHA
15. ¡Busquemos clientes que hayan alquilado películas a un precio de $ 9.99! - Subconsulta
16. Cómo trabajar con funciones de fecha en SQL - DATE_FORMAT, DATEDIFF
17. Cómo trabajar con funciones de cadena en SQL: CONCAT, LENGTH, SUBSTR
18. Usemos algunas funciones numéricas de SQL: TRUNCATE, ROUND, MOD