Annuncio pubblicitario
Structured Query Language (SQL) è uno strumento straordinariamente potente e ricco di funzionalità. Una volta che hai imparato di più importanti comandi SQL 13 Comandi SQL più importanti che ogni programmatore dovrebbe conoscereOgni sito Web grande o dinamico utilizza in qualche modo un database e, se combinato con Structured Query Language (SQL), le possibilità di manipolare i dati sono davvero infinite. Leggi di più , puoi iniziare a diventare un po 'più creativo con il tuo SQL. Oggi ti mostrerò tutto ciò che devi sapere sulle stringhe di concatenazione di SQL.
Esistono molti dialetti SQL diversi. Per tutti questi esempi, sto usando il PostgreSQL variante.
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 cognome variabili che hai unito come variabile nome completo.
La concatenazione è un modo molto utile di combinare due stringhe in una.
PHP usa un punto per unire le stringhe, mentre JavaScript e jQuery Una guida di base a JQuery per programmatori JavascriptSe sei un programmatore Javascript, questa guida a JQuery ti aiuterà a iniziare a scrivere codice come un ninja. Leggi di più usa un segno più.La concatenazione in SQL funziona esattamente allo stesso modo. Si utilizza 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 semplifica la lettura del codice. Se il tuo codice deve sempre accedere a due stringhe, combinandole in una sola diventa più facile da ricordare e riduce la lunghezza del codice.
Mentre le variabili in SQL sono meno comuni (ma sono ancora utilizzate), la concatenazione è ancora necessaria per restituire risultati combinati o per manipolare i dati.
Come concatenare
La concatenazione è molto facile in SQL. Mentre SQL è un linguaggio comune, i singoli motori di database implementano le funzionalità in diversi modi. Mentre tutti questi esempi sono nel dialetto PostgreSQL, è facile tradurre in altre varianti semplicemente cercando sul Web "Concatenare
Tornando al nostro esempio di nome, eccone uno di base Selezionare query:
SELEZIONA first_name, last_name, email FROM users_table
Niente di complesso qui, quindi aggiungiamo nel concatenato:
SELEZIONA 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 concedere uno spazio tra i due:
SELEZIONA 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! The pipe operator (|) 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 sola. Fai attenzione, 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 persino una funzione speciale che devi chiamare. Non importa davvero Come concatenate stringhe, purché lo facciate come previsto dal motore di database.
Più profondo
Ora che conosci le basi, diamo un'occhiata ad alcuni esempi approfonditi, insieme ad alcune insidie comuni.
La maggior parte dei motori di database consentirà di conciliare con successo una combinazione di stringhe e numeri interi, forse anche date. In genere si verificano problemi durante il tentativo di concatenare tipi complessi come array:
SELEZIONA 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 array. Se pensi a cosa devi fare, spesso puoi scrivere un codice semplice che funziona, piuttosto che un codice pazzo complesso che non riesce a essere eseguito.
Se hai riflettuto attentamente su ciò che devi fare e non riesci ancora a far funzionare l'SQL, hai preso in considerazione l'utilizzo di un linguaggio di programmazione? Come sviluppatore di software che lavora su un codice legacy, conosco il dolore di provare a eseguire il debug di SQL che qualcuno ha riempito così tanta logica è una meraviglia che funzioni - se stai cercando di scrivere la logica in SQL, passa a un linguaggio di programmazione (ci sono molti di lingue facili da imparare 6 più semplici linguaggi di programmazione da imparare per i principiantiImparare a programmare significa trovare la lingua giusta tanto quanto il processo di edificazione. Ecco i primi sei linguaggi di programmazione più facili per i principianti. Leggi di più ).
La concatenazione funziona molto bene per dove dichiarazioni pure:
SELEZIONA first_name, last_name, email FROM users_table DOVE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR'):: date
Qui stanno accadendo alcune cose. 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 trasmessi a un tipo di data (usando la sintassi Cast to Date di PostgreSQL ::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é una stringa. Non dimenticare che questo esempio di base non protegge da SQL Injection Che cos'è un'iniezione SQL? [MakeUseOf Explains]Il mondo della sicurezza di Internet è afflitto da porte aperte, backdoor, falle di sicurezza, trojan, worm, vulnerabilità del firewall e una serie di altri problemi che ci tengono tutti in allerta ogni giorno. Per utenti privati, ... Leggi di più , quindi non utilizzarlo in nessun codice di produzione senza modificarlo.
Un'altra trappola a cui prestare attenzione è nullo valori (una stringa nulla è una stringa vuota o inesistente). Data questa domanda:
SELEZIONA first_name || '' || NULL AS full_name, email FROM users_table
Questa query fallisce silenziosamente. Ciò è dovuto al modo in cui la concatenazione è codificata internamente sul motore di 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 coalesce. Coalesce può essere approssimativamente considerato come "se questo è nullo, sostituirlo con questa altra stringa o colonna":
SELEZIONA first_name || '' || COALESCE (NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table
Ora sai come utilizzare la concatenazione in SQL, cosa ne farai? Vuole creare un sito Web Come creare un sito Web: per principiantiOggi ti guiderò attraverso il processo di creazione di un sito Web completo da zero. Non preoccuparti se questo sembra difficile. Ti guiderò attraverso ogni passaggio. Leggi di più e ravvivare con SQL? O forse hai bisogno di un generatore di sito statico 7 motivi per abbandonare il tuo CMS e considerare un generatore di sito staticoPer molti anni, pubblicare un sito Web è stato difficile per molti utenti. CMS come WordPress lo hanno cambiato, ma possono ancora essere fonte di confusione. Un'altra alternativa è un generatore di sito statico. Leggi di più per un approccio più semplice alla costruzione di siti Web.
Qualunque cosa tu faccia, faccelo sapere nei commenti qui sotto!
Joe è laureato in Informatica presso l'Università di Lincoln, nel Regno Unito. È uno sviluppatore di software professionale e quando non pilota droni o scrive musica, spesso si trova a scattare foto o a produrre video.