Modi intelligenti per utilizzare una stringa di concatenazione SQL

Modi intelligenti per utilizzare una stringa di concatenazione SQL

Structured Query Language (SQL) è uno strumento straordinariamente potente e ricco di funzionalità. Una volta che hai imparato di più importanti comandi SQL , puoi iniziare a essere un po' più creativo con il tuo SQL. Oggi ti mostrerò tutto ciò che devi sapere sulle stringhe di concatenazione SQL.





Esistono molti dialetti SQL diversi. Per tutti questi esempi, sto usando il PostgreSQL variante.





come togliere la musica da un vecchio iPod

Che cos'è la concatenazione?

Concatenare significa unire due cose insieme. Potresti averlo usato in un linguaggio di programmazione per unire due stringhe insieme. Forse hai un nome e un cognome variabili che hai unito come variabile del nome completo.





La concatenazione è un modo molto utile per combinare due stringhe in una. PHP usa un punto per unire le stringhe insieme, mentre JavaScript e jQuery usano un segno più.

La concatenazione in SQL funziona esattamente allo stesso modo. Usi un operatore speciale per unire due cose in una. Ecco un esempio in Pseudocodice :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

Nei linguaggi di programmazione, la concatenazione rende il codice più facile da leggere. Se il tuo codice deve sempre accedere a due stringhe, combinarle in una la rende più facile da ricordare e riduce la lunghezza del codice.

Sebbene le variabili in SQL siano meno comuni (ma vengono comunque utilizzate), la concatenazione è ancora necessaria per restituire risultati combinati o per manipolare i dati.





Come concatenare

La concatenazione è molto facile in SQL. Sebbene SQL sia un linguaggio comune, i singoli motori di database implementano le funzionalità in modi diversi. Sebbene tutti questi esempi siano nel dialetto PostgreSQL, è facile tradurre in altre varianti semplicemente cercando 'Concatenate' sul Web. Motori diversi possono avere una sintassi diversa per la concatenazione, ma il principio rimane lo stesso.

Tornando al nostro esempio di nome, ecco una base Selezionare domanda:





SELECT first_name, last_name, email FROM users_table

Niente di complesso qui, quindi aggiungiamo nella concatenazione:

SELECT first_name || last_name AS full_name, email FROM users_table

Come puoi vedere, questa concatenazione ha funzionato perfettamente, ma c'è un piccolo problema. Il nome completo risultante è stato cucito insieme esattamente come il prodotto di entrambe le colonne: dovrebbe esserci uno spazio tra i nomi!

Fortunatamente, è facile da risolvere: basta concatenare uno spazio tra i due:

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

Questi sono esempi di base, ma dovresti vedere come funziona la concatenazione: è davvero così facile! L'operatore del tubo ( | ) viene utilizzato due volte tra le clausole. Il tuo motore SQL sa che ogni parte prima e dopo questo simbolo dovrebbe essere unita e trattata come una. Fai attenzione però, se usi l'operatore concat ma non concateni nulla, otterrai un errore.

Come accennato in precedenza, questi esempi utilizzano la variante PostgreSQL di SQL. Altre varianti possono utilizzare un operatore diverso o anche una funzione speciale che devi chiamare. Non importa davvero come si concatenano le stringhe, a condizione che lo si faccia nel modo previsto dal motore del database.

Approfondimento

Ora che conosci le basi, diamo un'occhiata ad alcuni esempi approfonditi, insieme ad alcune insidie ​​comuni.

La maggior parte dei motori di database concatenerà con successo una combinazione di stringhe e numeri interi, forse anche date. Di solito si verificano problemi quando si tenta di concatenare tipi complessi come gli array:

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

Questo codice non funzionerà. Non è possibile combinare stringhe con oggetti complessi come gli array. Se pensi a cosa devi fare, puoi spesso scrivere codice semplice che funzioni, piuttosto che codice complesso e folle che non riesce a funzionare.

Se hai pensato attentamente a ciò che devi fare e non riesci ancora a far funzionare SQL, hai preso in considerazione l'utilizzo di un linguaggio di programmazione? Come sviluppatore di software che lavora su codice legacy, conosco il dolore di provare a eseguire il debug di SQL che qualcuno ha stipato così tanta logica in esso è una meraviglia che funzioni - se stai cercando di scrivere la logica in SQL, quindi passa a un linguaggio di programmazione (ci sono molti linguaggi facili da imparare).

La concatenazione funziona molto bene per dove anche dichiarazioni:

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

Ci sono alcune cose che stanno accadendo qui. In questo esempio, GIORNO , MESE , e ANNO sono parametri che sono stati passati da uno script. Forse questi sono stati generati dal codice o inseriti da un utente. Questi vengono concatenati insieme e quindi convertiti in un tipo di data (usando la sintassi del cast di PostgreSQL per la data ::Data ).

L'utilizzo della concatenazione in questo modo consente di concatenare le singole parti di una data, che possono quindi essere elaborate come una data 'reale', anziché come una stringa. Non dimenticare che questo esempio di base non protegge dall'iniezione SQL, quindi non utilizzarlo in alcun codice di produzione senza modificarlo.

Un'altra trappola a cui prestare attenzione è nullo valori (una stringa nulla è una stringa vuota o non esistente). Data questa domanda:

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

Questa query ha esito negativo. Ciò è dovuto al modo in cui la concatenazione è codificata internamente nel motore del database. Potresti non riscontrare sempre questo problema, ma è un evento abbastanza comune.

Se ritieni che i dati restituiti dalla tua query possano essere nulli, dovrai utilizzare a fondersi . Coalesce può essere approssimativamente pensato come 'se questo è null, sostituiscilo con quest'altra stringa o colonna':

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

Ora sai come usare la concatenazione in SQL, cosa ne farai? Vuole fare un sito web e ravvivarlo con SQL? O forse hai bisogno di un generatore di siti statici per un approccio più semplice alla creazione di siti web.

Qualunque cosa tu faccia, faccelo sapere nei commenti qui sotto!

a chi appartiene questo numero gratis?
Condividere Condividere Tweet E-mail 6 alternative udibili: le migliori app per audiolibri gratuite o economiche

Se non ti va di pagare per gli audiolibri, ecco alcune fantastiche app che ti consentono di ascoltarli gratuitamente e legalmente.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Programmazione
  • SQL
Circa l'autore Joe Coburn(136 articoli pubblicati)

Joe si è laureato in Informatica presso l'Università di Lincoln, nel Regno Unito. È uno sviluppatore di software professionista e quando non pilota droni o scrive musica, lo si può trovare spesso a scattare foto o produrre video.

Altro da Joe Coburn

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti