
Joseph Goodman
0
2221
229
lenguaje de consulta estructurado (SQL) es una herramienta extraordinariamente poderosa y llena de funciones. Una vez que haya dominado los comandos SQL más importantes 13 Comandos SQL más importantes que cualquier programador debe saber 13 Comandos SQL más importantes que cualquier programador debe saber Cada 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 para manipular datos realmente son infinitas. , 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 la variante PostgreSQL.
¿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. PHP usa un punto final para unir cadenas, mientras que JavaScript y jQuery Una guía básica de JQuery para programadores de Javascript Una guía básica de JQuery para programadores de JavaScript Si es un programador de Javascript, esta guía de JQuery le ayudará a comenzar a codificar como un ninja. 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:
first_name = Joe last_name = Coburn whole_name = first_name + last_name
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 aún se usan), aún se necesita concatenación 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 PostgreSQL, es fácil traducir a otras variantes simplemente buscando en la web “Concatenar .” 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 seleccionar consulta:
SELECCIONE nombre, apellido, correo electrónico de la tabla de usuarios
Aquí no hay nada complejo, así que agreguemos la concatenación:
SELECCIONAR nombre_nombre || last_name AS full_name, email FROM users_table
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 || "|| apellido_Nombre AS nombre_completo, correo electrónico DESDE usuarios
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 (El |) 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.
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 concatena 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_principal || "|| apellido_ | ARRAY [123, 456] COMO nombre_completo, correo electrónico DESDE usuarios
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 cuidadosamente 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 en que es una maravilla que se ejecute en absoluto: si está tratando de escribir lógica en SQL, entonces cambie a una programación idioma (hay muchos idiomas fáciles de aprender 6 lenguajes de programación más fáciles de aprender para principiantes 6 lenguajes de programación más fáciles de aprender para principiantes Aprender a programar consiste en encontrar el idioma correcto tanto como en el proceso de edificación. Aquí están los seis principales Lenguajes de programación más fáciles para principiantes.).
La concatenación funciona muy bien para dónde declaraciones también:
SELECCIONE el nombre, el apellido, el correo electrónico DESDE la tabla_de_usuarios DONDE date_of_birth = ('DÍA' || '/' || 'MES' || '/' || 'AÑO') :: fecha
Hay algunas cosas que suceden aquí. En este ejemplo, DÍA, MES, y 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 pueden procesar como “real” fecha, a diferencia de una cadena. No olvide que este ejemplo básico no protege contra la inyección SQL. ¿Qué es una inyección SQL? [MakeUseOf explica] ¿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, ..., así que no lo uses en ningún código de producción sin modificar.
Otro obstáculo a tener en cuenta es nulo valores (una cadena nula es una cadena vacía o no existente). Dada esta consulta:
SELECCIONE first_name || "|| NULL AS full_name, email FROM users_table
Esta consulta falla silenciosamente. 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. La fusión puede considerarse más o menos como “si esto es nulo, reemplácelo con esta otra cadena o columna”:
SELECCIONE first_name || "|| COALESCE (NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table
Ahora que sabe cómo usar la concatenación en SQL, ¿qué hará con él? ¿Creará un sitio web? Cómo crear un sitio web: para principiantes Cómo crear un sitio web: para principiantes Hoy lo guiaré a través del proceso para crear un sitio web completo desde cero. No te preocupes si esto suena difícil. Te guiaré a través de cada paso del camino. y animarlo con SQL? O tal vez necesite un generador de sitio estático. 7 razones para deshacerse de su CMS y considerar un generador de sitio estático. 7 razones para deshacerse de su CMS y considerar un generador de sitio estático. Durante muchos años, la publicación de 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. para un enfoque más simple para construir sitios web.
Hagas lo que hagas, háznoslo saber en los comentarios a continuación!