Anuncio

lenguaje de consulta estructurado (SQL) es una herramienta extraordinariamente poderosa y llena de funciones. Una vez que hayas dominado más comandos importantes de SQL 13 comandos SQL más importantes que cualquier programador debe saberCada sitio web grande o dinámico utiliza una base de datos de alguna manera, y cuando se combina con el Lenguaje de consulta estructurado (SQL), las posibilidades de manipulación de datos son realmente infinitas. Lee mas , puede comenzar a ser un poco más creativo con su SQL. Hoy te mostraré todo lo que necesitas saber sobre las cadenas de concatenación SQL.

Hay muchos dialectos SQL diferentes. Para todos estos ejemplos, estoy usando el PostgreSQL variante.

¿Qué es la concatenación?

Concatenación significa unir dos cosas juntas. Es posible que lo haya usado en un lenguaje de programación para unir dos cadenas. Quizás tenga un nombre y apellido variables que unió como una variable de nombre completo.

La concatenación es una forma muy útil de combinar dos cadenas en una sola.

instagram viewer
PHP usa un punto final para unir cadenas, mientras que JavaScript y jQuery Una guía básica de JQuery para programadores de JavascriptSi eres un programador de Javascript, esta guía de JQuery te ayudará a comenzar a codificar como un ninja. Lee mas usa un signo más.

La concatenación en SQL funciona exactamente igual. Utiliza un operador especial para unir dos cosas en una. Aquí hay un ejemplo en Pseudocódigo:

nombre_nombre = Joe. last_name = Coburn. nombre completo = nombre + apellido_

En lenguajes de programación, la concatenación hace que el código sea más fácil de leer. Si su código siempre necesita acceder a dos cadenas, combinarlas en una sola hace que sea más fácil de recordar y reduce la longitud del código.

Si bien las variables en SQL son menos comunes (pero todavía se usan), la concatenación aún es necesaria para devolver resultados combinados o para manipular datos.

Cómo concatenar

La concatenación es muy Fácil en SQL. Si bien SQL es un lenguaje común, los motores de bases de datos individuales implementan características de diferentes maneras. Si bien todos estos ejemplos están en el dialecto de PostgreSQL, es fácil de traducir a otras variantes simplemente buscando en la web "Concatenate . " Los diferentes motores pueden tener una sintaxis diferente para la concatenación, pero el principio sigue siendo el mismo.

Volviendo a nuestro ejemplo de nombre, aquí hay un básico Seleccione consulta:

SELECCIONE nombre, apellido, correo electrónico de la tabla de usuarios
sql select

Aquí no hay nada complejo, así que agreguemos la concatenación:

SELECCIONAR nombre_nombre || last_name AS full_name, email FROM users_table
concatenación básica sql

Como puede ver, esta concatenación ha funcionado perfectamente, pero hay un pequeño problema. El nombre completo resultante se ha unido exactamente como el producto de ambas columnas: ¡debe haber un espacio entre los nombres!

Afortunadamente, es fácil de solucionar: simplemente concatene un espacio entre los dos:

SELECCIONAR nombre_nombre || '' || last_name AS full_name, email FROM users_table
espacio de concatenación sql

Estos son ejemplos básicos, pero debería ver cómo funciona la concatenación: ¡es realmente así de fácil! El operador de tubería (|) se usa dos veces entre cláusulas. Su motor SQL sabe que cada parte antes y después de este símbolo debe unirse y tratarse como una sola. Sin embargo, tenga cuidado, si usa el operador concat pero no concatena nada, obtendrá un error.

error de sql

Como se mencionó anteriormente, estos ejemplos usan la variante PostgreSQL de SQL. Otras variantes pueden usar un operador diferente, o incluso una función especial a la que tiene que llamar. Realmente no importa cómo puede concatenar cadenas, siempre que lo haga de la manera que espera su motor de base de datos.

Yendo más profundo

Ahora que conoce los conceptos básicos, veamos algunos ejemplos detallados, junto con algunas dificultades comunes.

La mayoría de los motores de bases de datos concatenarán con éxito una mezcla de cadenas y enteros, tal vez incluso fechas. Por lo general, se encontrará con problemas al intentar concatenar tipos complejos, como matrices:

SELECCIONAR nombre_nombre || '' || apellido_| ARRAY [123, 456] AS full_name, email FROM users_table

Este código no funcionará. No es posible combinar cadenas con objetos complejos como matrices. Si piensa en lo que necesita hacer, a menudo puede escribir código simple que funcione, en lugar de código complejo y loco que no se ejecuta.

Si ha pensado detenidamente sobre lo que necesita hacer y aún no puede hacer que el SQL funcione, ¿ha considerado usar un lenguaje de programación? Como desarrollador de software que trabaja en código heredado, conozco el dolor de tratar de depurar SQL que alguien ha metido tanta lógica es una maravilla que se ejecute en absoluto: si está intentando escribir lógica en SQL, cambie a un lenguaje de programación (hay muchos de idiomas fáciles de aprender 6 lenguajes de programación más fáciles de aprender para principiantesAprender a programar se trata de encontrar el idioma correcto tanto como del proceso de edificación. Aquí están los seis lenguajes de programación más fáciles para principiantes. Lee mas ).

La concatenación funciona muy bien para dónde declaraciones también:

SELECCIONE nombre, apellido, correo electrónico DESDE tabla_usuarios DONDE fecha_del_nacimiento = ('DÍA' || '/' || 'MES' || '/' || 'AÑO'):: fecha

Hay algunas cosas que suceden aquí. En este ejemplo, DÍA, MESy AÑO son parámetros que se han pasado desde un script. Tal vez estos hayan sido generados por código o ingresados ​​por un usuario. Estos se concatenan juntos y luego se convierten a un tipo de fecha (usando la sintaxis de conversión a la fecha de PostgreSQL ::fecha).

Usar la concatenación de esta manera le permite encadenar las partes individuales de una fecha, que luego se puede procesar como una fecha "real", en lugar de una cadena. No olvide que este ejemplo básico no protege contra inyección SQL ¿Qué es una inyección SQL? [MakeUseOf explica]El mundo de la seguridad en Internet está plagado de puertos abiertos, puertas traseras, agujeros de seguridad, troyanos, gusanos, vulnerabilidades de firewall y una serie de otros problemas que nos mantienen alerta todos los días. Para usuarios privados, ... Lee mas , así que no lo uses en ningún código de producción sin modificarlo.

Otro obstáculo a tener en cuenta es nulo valores (una cadena nula es una cadena vacía o no existente). Dada esta consulta:

SELECCIONAR nombre_nombre || '' || NULL AS full_name, email FROM users_table
sql concatenación nula

Esta consulta falla en silencio. Esto se debe a la forma en que la concatenación está codificada internamente en su motor de base de datos. Es posible que no siempre encuentre este problema, pero es bastante común.

Si cree que los datos que devuelve su consulta pueden ser nulos, deberá usar un juntarse. Coalesce puede considerarse aproximadamente como "si esto es nulo, reemplácelo con esta otra cadena o columna":

SELECCIONAR nombre_nombre || '' || COALESCE (NULL, 'DATOS NULOS DE ERROR') COMO nombre completo, correo electrónico DESDE usuarios_tabla
fusión de concatenación sql

Ahora que sabe cómo usar la concatenación en SQL, ¿qué hará con él? Podrías hacer un sitio web Cómo hacer un sitio web: para principiantesHoy te guiaré a través del proceso de hacer un sitio web completo desde cero. No te preocupes si esto suena difícil. Te guiaré en cada paso del camino. Lee mas y animarlo con SQL? O tal vez necesitas un generador de sitio estático 7 razones para deshacerse de su CMS y considerar un generador de sitio estáticoDurante muchos años, publicar un sitio web fue difícil para muchos usuarios. Los CMS como WordPress lo cambiaron, pero aún pueden ser confusos. Otra alternativa es un generador de sitio estático. Lee mas para un enfoque más simple para crear sitios web.

Hagas lo que hagas, ¡háznoslo saber en los comentarios a continuación!

Joe se graduó en Ciencias de la Computación de la Universidad de Lincoln, Reino Unido. Es un desarrollador de software profesional, y cuando no está volando drones o escribiendo música, a menudo se lo puede encontrar tomando fotos o produciendo videos.