Come scrivere query semplici

Pubblicato: 2022-03-21

Mai sentito parlare di SQL? Potresti averne sentito parlare nel contesto dell'analisi dei dati, ma non hai mai pensato che si applicasse a te come marketer. Oppure, potresti aver pensato: "Questo è per gli utenti di dati avanzati. Non potrei mai farlo”.

Beh, non potresti essere più sbagliato! I marketer di maggior successo sono basati sui dati e una delle parti più importanti dell'essere basati sui dati è la raccolta rapida dei dati dai database. SQL è lo strumento più popolare là fuori per fare proprio questo.

Se la tua azienda archivia già i dati in un database, potrebbe essere necessario imparare l'SQL per accedere ai dati. Ma non preoccuparti: sei nel posto giusto per iniziare. Entriamo subito.

Scarica 10 modelli di Excel per esperti di marketing [Kit gratuito]

Perché usare SQL?

SQL (spesso pronunciato come "sequel") sta per Structured Query Language e viene utilizzato quando le aziende hanno un sacco di dati che vogliono manipolare. Il bello di SQL è che chiunque lavori in un'azienda che archivia i dati in un database relazionale può usarlo. (E è probabile che la tua lo faccia.)

Ad esempio, se lavori per un'azienda di software e desideri estrarre i dati sull'utilizzo dei tuoi clienti, puoi farlo con SQL. Se stai aiutando a sviluppare un sito Web per un'azienda di e-commerce che dispone di dati sugli acquisti dei clienti, puoi utilizzare SQL per scoprire quali clienti stanno acquistando quali prodotti. Naturalmente, queste sono solo alcune delle molte possibili applicazioni.

Pensaci in questo modo: hai mai aperto un set di dati molto grande in Excel, solo per bloccare o addirittura spegnere il tuo computer? SQL ti consente di accedere solo ad alcune parti dei tuoi dati alla volta in modo da non dover scaricare tutti i dati in un CSV, manipolarlo ed eventualmente sovraccaricare Excel. In altre parole, SQL si occupa dell'analisi dei dati che potresti essere abituato a fare in Excel.

Come scrivere semplici query SQL

Prima di iniziare, assicurati di avere un'applicazione di gestione del database che ti permetta di estrarre i dati dal tuo database. Alcune opzioni includono MySQL o Sequel Pro.

Inizia scaricando una di queste opzioni, quindi parla con il reparto IT della tua azienda su come connetterti al tuo database. L'opzione che scegli dipenderà dal back-end del tuo prodotto, quindi controlla con il tuo team di prodotto per assicurarti di selezionare quello corretto.

Comprendi la gerarchia del tuo database

Successivamente, è importante abituarsi al database e alla sua gerarchia. Se disponi di più database di dati, dovrai perfezionare la posizione dei dati con cui desideri lavorare.

Ad esempio, supponiamo di lavorare con più database su persone negli Stati Uniti. Immettere la query "MOSTRA BANCHE DATI;". I risultati potrebbero mostrare che hai un paio di database per località diverse, incluso uno per il New England.

All'interno del tuo database, avrai diverse tabelle contenenti i dati con cui vuoi lavorare. Utilizzando lo stesso esempio sopra, supponiamo di voler scoprire quali informazioni sono contenute in uno dei database. Se utilizziamo la query "SHOW TABLES in NewEngland;", troveremo tabelle per ogni stato del New England: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland e people_vermont.

Infine, è necessario scoprire quali campi si trovano nelle tabelle. I campi sono i dati specifici che puoi estrarre dal tuo database. Ad esempio, se vuoi estrarre l'indirizzo di qualcuno, il nome del campo potrebbe non essere solo "indirizzo", ma potrebbe essere separato in address_city, address_state, address_zip. Per capirlo, usa la query "Describe people_massachusetts;". Questo fornisce un elenco di tutti i dati che puoi estrarre usando SQL.

Facciamo una rapida rassegna della gerarchia usando il nostro esempio del New England:

  • Il nostro database è: NewEngland.
  • Le nostre tabelle all'interno di quel database sono: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland e people_vermont.
  • I nostri campi all'interno della tabella people_massachusetts includono: address_city, address_state, address_zip, hair_color, age, first_name e last_name.

Ora, scriviamo alcune semplici query SQL per estrarre i dati dal nostro database NewEngland.

Query SQL di base

Per imparare a scrivere una query SQL, utilizziamo il seguente esempio:

Chi sono le persone che hanno i capelli rossi in Massachusetts e sono nate nel 2003 organizzate in ordine alfabetico?

SELEZIONARE

SELEZIONA sceglie i campi che desideri visualizzare nel grafico. Questa è l'informazione specifica che vuoi estrarre dal tuo database. Nell'esempio sopra, vogliamo trovare le persone che soddisfano il resto dei criteri.

Ecco la nostra query SQL:

SELEZIONARE

nome di battesimo,

cognome

;

DA

DA individua la tabella da cui si desidera estrarre i dati. Nella sezione precedente, abbiamo appreso che c'erano sei tabelle per ciascuno dei sei stati del New England: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland e people_vermont. Poiché stiamo cercando persone in Massachusetts in particolare, estrarremo i dati da quella tabella specifica.

Ecco la nostra query SQL:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

;

DOVE

WHERE ti consente di filtrare una query per essere più specifica. Nel nostro esempio, vogliamo filtrare la nostra query per includere solo le persone con i capelli rossi nate nel 2003. Iniziamo con il filtro dei capelli rossi.

Ecco la nostra query SQL:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli="rosso"

;

hair_color avrebbe potuto far parte della tua istruzione SELECT iniziale se avessi voluto guardare tutte le persone in Massachusetts insieme al loro colore di capelli. Ma se vuoi filtrare per vedere solo le persone con i capelli rossi, puoi farlo con un'istruzione WHERE.

FRA

Oltre a equals (=), BETWEEN è un altro operatore che puoi utilizzare per le query condizionali. Un'istruzione BETWEEN è vera per i valori che rientrano tra i valori minimo e massimo specificati.

Nel nostro caso, possiamo usare BETWEEN per estrarre i record da un anno specifico, come il 2003. Ecco la query:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

data di nascita TRA '2003-01-01' E '2003-12-31'

;

E

E ti consente di aggiungere criteri aggiuntivi alla tua istruzione WHERE. Ricorda, vogliamo filtrare in base alle persone che avevano i capelli rossi oltre alle persone nate nel 2003. Poiché la nostra affermazione WHERE è ripresa dai criteri dei capelli rossi, come possiamo filtrare anche in base a un anno di nascita specifico?

È qui che entra in gioco l'istruzione AND. In questo caso, l'istruzione AND è una proprietà della data, ma non deve necessariamente esserlo. (Nota: controlla il formato delle tue date con il tuo team di prodotto per assicurarti che siano nel formato corretto.)

Ecco la nostra query SQL:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli="rosso"

E

data di nascita TRA '2003-01-01' E '2003-12-31'

;

O

OR può essere utilizzato anche con un'istruzione WHERE. Con AND, entrambe le condizioni devono essere vere per apparire nei risultati (ad esempio, il colore dei capelli deve essere rosso e deve essere nato nel 2003). Con OR, entrambe le condizioni devono essere vere per apparire nei risultati (ad esempio, il colore dei capelli deve essere rosso o deve essere nato nel 2003).

Ecco come appare un'istruzione OR in azione:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli = 'rosso'

O

data di nascita TRA '2003-01-01' E '2003-12-31'

;

NON

NOT viene utilizzato in un'istruzione WHERE per visualizzare valori in cui la condizione specificata non è vera. Se volessimo tirare su tutti i residenti del Massachusetts senza capelli rossi, possiamo usare la seguente query:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE NO

colore_capelli = 'rosso'

;

ORDINATO DA

I calcoli e l'organizzazione possono anche essere eseguiti all'interno di una query. È qui che entrano in gioco le funzioni ORDER BY e GROUP BY. Per prima cosa, esamineremo le nostre query SQL con le funzioni ORDER BY e quindi GROUP BY. Quindi, daremo una breve occhiata alla differenza tra i due.

Una clausola ORDER BY consente di ordinare in base a uno qualsiasi dei campi specificati nell'istruzione SELECT. In questo caso, ordiniamo per cognome.

Ecco la nostra query SQL:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli = 'rosso'

E

data di nascita TRA '2003-01-01' E '2003-12-31'

ORDINATO DA

cognome

;

RAGGRUPPA PER

GROUP BY è simile a ORDER BY, ma aggrega i dati che presentano somiglianze. Ad esempio, se hai dei duplicati nei tuoi dati, puoi utilizzare GROUP BY per contare il numero di duplicati nei tuoi campi.

Ecco la tua query SQL:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli = 'rosso'

E

data di nascita TRA '2003-01-01' E '2003-12-31'

RAGGRUPPA PER

cognome

;

ORDINA PER VS. RAGGRUPPA PER

Per mostrare la differenza tra un'istruzione ORDER BY e un'istruzione GROUP BY, usciamo brevemente dal nostro esempio del Massachusetts per esaminare un set di dati molto semplice. Di seguito è riportato un elenco di numeri ID e nomi di quattro dipendenti.

a table of four names and IDs as a result of sql queries

Se dovessimo utilizzare un'istruzione ORDER BY in questo elenco, i nomi dei dipendenti verrebbero ordinati in ordine alfabetico. Il risultato sarebbe simile a questo:

a table of four names and IDs as a result of sql queries with the name Peter appearing twice at the bottom

Se invece dovessimo utilizzare un'istruzione GROUP BY, i dipendenti verrebbero conteggiati in base al numero di volte in cui sono apparsi nella tabella iniziale. Nota che Peter è apparso due volte nella tabella iniziale, quindi il risultato sarebbe simile a questo:

sql query examples: a table of three names and IDs

Con me finora? Ok, torniamo alla query SQL che abbiamo creato sulle persone dai capelli rossi del Massachusetts nate nel 2003.

LIMITE

A seconda della quantità di dati che hai nel database, l'esecuzione delle query potrebbe richiedere molto tempo. Questo può essere frustrante, soprattutto se hai commesso un errore nella tua query e ora devi aspettare prima di continuare. Se vuoi testare una query, la funzione LIMIT ti consente di limitare il numero di risultati che ottieni.

Ad esempio, se sospettiamo che ci siano migliaia di persone che hanno i capelli rossi in Massachusetts, potremmo voler testare la nostra query utilizzando LIMIT prima di eseguirla per intero per assicurarci di ottenere le informazioni che desideriamo. Diciamo, per esempio, di voler vedere solo le prime 100 persone nel nostro risultato.

Ecco la nostra query SQL:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli = 'rosso'

E

data di nascita TRA '2003-01-01' E '2003-12-31'

ORDINATO DA

cognome

LIMITE

100

;

INSERIRE

Oltre a recuperare informazioni da un database relazionale, SQL può essere utilizzato anche per modificare il contenuto di un database. Ovviamente, avrai bisogno delle autorizzazioni per apportare modifiche ai dati della tua azienda. Ma, nel caso in cui tu sia mai incaricato di gestire i contenuti di un database, condivideremo alcune domande che dovresti conoscere.

La prima è l'istruzione INSERT INTO, che serve per inserire nuovi valori nel database. Se vogliamo aggiungere una nuova persona alla tabella Massachusetts, possiamo farlo fornendo prima il nome della tabella che vogliamo modificare e i campi all'interno della tabella a cui vogliamo aggiungere. Successivamente, scriviamo VALUE con ogni rispettivo valore che vogliamo aggiungere.

Ecco come potrebbe apparire quella query:

INSERIRE

people_massachusetts (address_city, address_state, address_zip, hair_color, age, first_name, last_name)

I VALORI

(Cambridge, Massachusetts, 02139, bionda, 32, Jane, Doe)

;

In alternativa, se si aggiunge un valore a ogni campo della tabella, non è necessario specificare i campi. I valori verranno aggiunti alle colonne nell'ordine in cui sono elencati nella query.

INSERIRE

persone_massachusetts

I VALORI

(Cambridge, Massachusetts, 02139, bionda, 32, Jane, Doe)

;

Se vuoi solo aggiungere valori a campi specifici, devi specificare questi campi. Supponiamo di voler inserire solo un record con nome, cognome e stato_indirizzo: possiamo utilizzare la seguente query:

INSERIRE

people_massachusetts (nome, cognome, indirizzo_stato)

I VALORI

(Jane, Doe, Massachusetts)

;

AGGIORNARE

Se desideri sostituire i valori esistenti nel database con valori diversi, puoi utilizzare UPDATE. Cosa succede se, ad esempio, qualcuno viene registrato nel database come avente i capelli rossi mentre in realtà ha i capelli castani? Possiamo aggiornare questo record con le istruzioni UPDATE e WHERE:

AGGIORNARE

persone_massachusetts

IMPOSTARE

colore_capelli = 'marrone'

DOVE

first_name = 'Jane'

E

cognome = 'Daino'

;

Oppure, supponiamo che ci sia un problema nella tabella in cui alcuni valori per "address_state" vengono visualizzati come "Massachusetts" e altri vengono visualizzati come "MA". Per cambiare tutte le istanze di "MA" in "Massachusetts" possiamo utilizzare una semplice query e aggiornare più record contemporaneamente:

AGGIORNARE

persone_massachusetts

IMPOSTARE

address_state = 'Massachusetts'

DOVE

indirizzo_stato = MA

;

Fai attenzione quando usi UPDATE. Se non specifichi quali record modificare con un'istruzione WHERE, cambierai tutti i valori nella tabella.

ELIMINA

DELETE rimuove i record dalla tabella. Come con UPDATE, assicurati di includere un'istruzione WHERE, in modo da non eliminare accidentalmente l'intera tabella.

Oppure, se ci capitasse di trovare diversi record nella nostra tabella people_massachusetts che vivevano effettivamente nel Maine, possiamo eliminare rapidamente queste voci prendendo di mira il campo address_state, in questo modo:

ELIMINA DA

persone_massachusetts

DOVE

address_state = 'main'

;

Bonus: suggerimenti SQL avanzati

Ora che hai imparato a creare una semplice query SQL, discutiamo alcuni altri trucchi che puoi utilizzare per migliorare le tue query, a partire dall'asterisco.

* (asterisco)

Quando aggiungi un asterisco alla tua query SQL, indica alla query che desideri includere tutte le colonne di dati nei risultati.

Nell'esempio del Massachusetts che abbiamo utilizzato, abbiamo avuto solo due nomi di colonna: first_name e last_name. Ma supponiamo di avere 15 colonne di dati che vogliamo vedere nei nostri risultati: sarebbe difficile digitare tutti i nomi di 15 colonne nell'istruzione SELECT. Invece, se sostituisci i nomi di quelle colonne con un asterisco, la query saprà inserire tutte le colonne nei risultati.

Ecco come sarebbe la query SQL:

SELEZIONARE

*

DA

persone_massachusetts

DOVE

colore_capelli="rosso"

E

data di nascita TRA '2003-01-01' E '2003-12-31'

ORDINATO DA

cognome

LIMITE

100

;

% (simbolo percentuale)

Il simbolo di percentuale è un carattere jolly, il che significa che può rappresentare uno o più caratteri in un valore di database. I caratteri jolly sono utili per individuare i record che condividono caratteri comuni. In genere vengono utilizzati con l'operatore LIKE per trovare un modello nei dati.

Ad esempio, se volessimo ottenere i nomi di ogni persona nella nostra tabella il cui codice postale inizia con "02", possiamo scrivere questa query:

SELEZIONARE

nome di battesimo,

cognome

DOVE

address_zip MI PIACE '02%'

;

Qui, "%" sta per qualsiasi gruppo di cifre che segue "02", quindi questa query mostra qualsiasi record con un valore per address_zip che inizia con "02".

ULTIMI 30 GIORNI

Dopo aver iniziato a utilizzare SQL regolarmente, ho scoperto che una delle mie query di riferimento riguardava il tentativo di trovare quali persone hanno intrapreso un'azione o soddisfatto un determinato insieme di criteri negli ultimi 30 giorni.

Facciamo finta che oggi sia il 1° dicembre 2021. Puoi creare questi parametri impostando l'intervallo di data di nascita tra il 1° novembre 2021 e il 30 novembre 2021. Quella query SQL sarebbe simile a questa:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli="rosso"

E

data di nascita TRA '2021-11-01' E '2021-11-30'

ORDINATO DA

cognome

LIMITE

100

;

Tuttavia, ciò richiederebbe di pensare a quali date coprono gli ultimi 30 giorni e dovresti aggiornare costantemente questa query.

Invece, per fare in modo che le date coprano automaticamente gli ultimi 30 giorni, indipendentemente da quale giorno sia, puoi digitarlo sotto AND: data_nascita >= (DATE_SUB(CURDATE(),INTERVAL 30))

(Nota: ti consigliamo di ricontrollare questa sintassi con il tuo team di prodotto perché potrebbe differire in base al software che usi per estrarre le query SQL.)

La tua query SQL completa sarebbe quindi simile a questa:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

DOVE

colore_capelli="rosso"

E

data_nascita >= (DATE_SUB(CURDATE(),INTERVAL 30))

ORDINATO DA

cognome

LIMITE

100

;

CONTARE

In alcuni casi, potresti voler contare il numero di volte in cui viene visualizzato un criterio di un campo. Ad esempio, supponiamo che tu voglia contare il numero di volte in cui i diversi colori di capelli appaiono per le persone che stai contando dal Massachusetts. In questo caso, COUNT tornerà utile in modo da non dover sommare manualmente il numero di persone che hanno colori di capelli diversi o esportare tali informazioni in Excel.

Ecco come sarebbe quella query SQL:

SELEZIONARE

colore dei capelli,

COUNT(colore_capelli)

DA

persone_massachusetts

E

data di nascita TRA '2003-01-01' E '2003-12-31'

RAGGRUPPA PER

colore dei capelli

;

AVG

AVG calcola la media di un attributo nei risultati della query, escludendo i valori NULL (vuoto). Nel nostro esempio, potremmo utilizzare AVG per calcolare l'età media dei residenti nel Massachusetts nella nostra query.

Ecco come potrebbe essere la nostra query SQL:

SELEZIONARE

MEDIA (età)

DA

persone_massachusetts

;

SOMMA

SUM è un altro semplice calcolo che puoi eseguire in SQL. Calcola il valore totale di tutti gli attributi dalla tua query. Quindi, se volessimo sommare tutte le età dei residenti del Massachusetts, possiamo usare questa query:

SELEZIONARE

SOMMA(età)

DA

persone_massachusetts

;

MIN e MAX

MIN e MAX sono due funzioni SQL che forniscono i valori più piccoli e più grandi di un determinato campo. Possiamo usarlo per identificare i membri più anziani e più giovani del nostro tavolo del Massachusetts:

Questa query ci darà il record del più vecchio:

SELEZIONARE

MIN(età)

DA

persone_massachusetts

;

E questa query ci fornisce la più antica:

SELEZIONARE

MAX(età)

DA

persone_massachusetts

;

GIUNTURA

Potrebbe esserci un momento in cui è necessario accedere alle informazioni da due tabelle diverse in una query SQL. In SQL, puoi utilizzare una clausola JOIN per farlo.

(Per chi ha familiarità con le formule di Excel, è simile all'utilizzo della formula CERCA.VERT quando è necessario combinare informazioni da due fogli diversi in Excel.)

Supponiamo di avere una tabella che contiene i dati di tutti gli ID utente dei residenti del Massachusetts e le loro date di nascita. Inoltre, abbiamo una tabella completamente separata contenente gli ID utente di tutti i residenti del Massachusetts e il colore dei loro capelli.

Se vogliamo capire il colore dei capelli dei residenti del Massachusetts nati nell'anno 2003, dovremmo accedere alle informazioni da entrambe le tabelle e combinarle. Funziona perché entrambe le tabelle condividono una colonna corrispondente: gli ID utente.

Poiché stiamo richiamando i campi da due tabelle diverse, anche la nostra istruzione SELECT cambierà leggermente. Invece di elencare solo i campi che vogliamo includere nei nostri risultati, dovremo specificare da quale tabella provengono. (Nota: la funzione asterisco può tornare utile qui, quindi la tua query include entrambe le tabelle nei risultati.)

Per specificare un campo da una tabella specifica, tutto ciò che dobbiamo fare è combinare il nome della tabella con il nome del campo. Ad esempio, la nostra istruzione SELECT direbbe "table.field" — con il punto che separa il nome della tabella e il nome del campo.

Assumiamo anche alcune cose in questo caso:

  1. La tabella della data di nascita del Massachusetts include i seguenti campi: nome, cognome, user_id, data di nascita
  2. La tabella dei colori dei capelli del Massachusetts include i seguenti campi: user_id, hair_color

La tua query SQL sarebbe quindi simile a:

SELEZIONARE

data di nascita_massachusetts.first_name,

data di nascita_massachusetts.cognome

DA

birthdate_massachusetts ISCRIVITI haircolor_massachusetts USING (user_id)

DOVE

colore_capelli="rosso"

E

data di nascita TRA '2003-01-01' E '2003-12-31'

ORDINATO DA

cognome

;

Questa query unirebbe le due tabelle utilizzando il campo "user_id" che appare sia nella tabella birthdate_massachusetts che nella tabella haircolor_massachusetts. Puoi quindi vedere una tabella di persone nate nel 2003 che hanno i capelli rossi.

ASTUCCIO

Utilizzare un'istruzione CASE quando si desidera restituire risultati diversi alla query in base alla condizione soddisfatta. Le condizioni sono valutate in ordine. Una volta soddisfatta una condizione, viene restituito il risultato corrispondente e tutte le condizioni seguenti vengono ignorate.

È possibile includere una condizione ELSE alla fine nel caso in cui non siano soddisfatte le condizioni. Senza un ELSE, la query restituirà NULL se non vengono soddisfatte le condizioni.

Ecco un esempio di utilizzo di CASE per restituire una stringa in base alla query:

SELEZIONARE

nome di battesimo,

cognome

DA

persone_massachusetts

ASTUCCIO

QUANDO hair_color = 'marrone' ALLORA 'Questa persona ha i capelli castani.'

QUANDO hair_color = 'bionda' ALLORA 'Questa persona ha i capelli biondi.'

QUANDO hair_color = 'rosso' ALLORA 'Questa persona ha i capelli rossi.'

ALTRO 'Colore dei capelli sconosciuto.'

FINE

;

Query SQL di base che gli esperti di marketing dovrebbero sapere

Congratulazioni. sei pronto per eseguire le tue query SQL! Sebbene ci sia molto di più che puoi fare con SQL, spero che tu abbia trovato utile questa panoramica delle nozioni di base in modo da poterti sporcare le mani. Con una solida base delle nozioni di base, sarai in grado di navigare meglio in SQL e lavorare verso alcuni degli esempi più complessi.

Nota del redattore: questo post è stato originariamente pubblicato il 25 marzo ed è stato aggiornato per completezza.

modelli di marketing excel