13 comandi SQL più importanti che ogni programmatore dovrebbe conoscere
I database guidano il web moderno. Ogni sito grande o dinamico utilizza un database in qualche modo e, se combinato con Structured Query Language (SQL), le possibilità di manipolare i dati sono davvero infinite. Se conosci già SQL, assicurati di aver verificato queste abilità di programmazione 7 Abilità di programmazione Tutti gli sviluppatori di siti web dovrebbero conoscere 7 Abilità di programmazione Tutti gli sviluppatori di siti web dovrebbero sapere La progettazione e lo sviluppo di siti Web offrono buoni guadagni e vantaggi, ore di lavoro decenti e prospettive di avanzamento. Ti mostreremo quali sono le abilità essenziali che puoi iniziare ad imparare ora per entrare in questo entusiasmante campo. Per saperne di più tutti gli sviluppatori di siti Web dovrebbero sapere.
Oggi ti mostrerò alcuni dei principali comandi che devi conoscere come programmatore.
Esistono molti nomi per i dati restituiti da una tabella di database. I dati sono comunemente indicati come Righe, Records, o Le tuple. Userò questi termini in modo intercambiabile in questo articolo.
Prefazione
Tutti gli esempi oggi saranno basati su quattro tabelle fittizie. Il cliente la tabella contiene il nome e l'età dei clienti:
Il altezza la tabella contiene il nome e l'altezza di ogni persona:
Il personale la tabella contiene il nome e l'età dei membri dello staff, esattamente la stessa della tabella clienti:
Il tavolo finale ha chiamato persone contiene il nome e l'età delle persone, proprio come le tabelle dei clienti e dello staff:
1. Seleziona
Il selezionare la dichiarazione è la più semplice ed è essenziale che tu la capisca in quanto è alla base di quasi tutti gli altri comandi. È considerata una buona pratica scrivere le parole SQL riservate in maiuscolo, in quanto facilita la lettura e la comprensione del comando.
Come suggerisce il nome, selezionare è usato per selezionare dati da un database. Ecco l'uso più semplice:
SELEZIONA * DA tabella;
Ci sono due parti in questo. La prima parte (SELEZIONA) specifica quali colonne si desidera selezionare. L'asterisco indica che desideri selezionare tutte le colonne nella tabella. La seconda parte (Dalla tabella) dice al tuo motore di database da dove vorresti recuperare questi dati. Sostituire “tavolo” con il nome della tabella del database.
Questa selezione è conosciuta come “seleziona stella.” Usare l'asterisco è un buon modo per capire quali dati sono in una tabella, ma non è consigliabile utilizzarli per qualsiasi codice di produzione. Quando si utilizza una stella selezionata, spetta al motore del database per presentare i dati desiderati. Non hai alcun controllo sull'ordine in cui i dati vengono restituiti, quindi se qualcuno aggiunge una nuova colonna alla tabella, potresti scoprire che le tue variabili nel tuo linguaggio di programmazione non rappresentano più i dati corretti. Fortunatamente, c'è una soluzione.
Puoi indicare in modo esplicito quali colonne desideri recuperare, in questo modo:
SELEZIONA età, nome DALLE persone;
Questa query recupera il file “età” e “nome” colonne dal “persone” tavolo. Essere espliciti può essere un po 'noioso se si hanno molti dati, ma così facendo si ridurranno i problemi in futuro, rendendo più facile la comprensione di SQL da parte di futuri programmatori.
Se vuoi selezionare un altro dato, ma non è memorizzato in nessuno dei tuoi tavoli, puoi farlo in questo modo:
SELEZIONA l'età, '1234' DALLE PERSONE;
Ogni stringa racchiusa tra virgolette singole verrà restituita anziché corrispondere al nome di una colonna.
2. Dove
Il comando select è eccellente per il recupero dei dati, ma cosa succede se si desidera filtrare un po 'di più i risultati? Che ne dici di recuperare solo le persone che hanno gli occhi blu? Che dire delle persone nate a gennaio che lavorano come meccanici? Questo è dove il dove arriva il comando. Questo ti permette di applicare le condizioni alla selezione, e basta semplicemente aggiungerla alla fine dell'istruzione:
SELEZIONA l'età, nome FROM persone DOVE età> 10;
Questa query è ora limitata alle persone che hanno più di 10 anni. È possibile combinare più condizioni utilizzando il E operatore:
SELEZIONA l'età, nome FROM persone DOVE età> 10 E età < 20;
Il E il comando funziona esattamente come nella lingua inglese: applica un'altra condizione all'istruzione. In questo esempio, i dati restituiti sarebbero tutti i record con un'età compresa tra 10 e 20. Poiché non ci sono risultati corrispondenti, non viene restituito alcun dato.
Un altro comando che può essere usato in congiunzione con questo è O. Ecco un esempio:
SELEZIONA età, nome FROM persone DOVE età> 10 O nome = "Joe";
Questa query restituisce i record in cui l'età è maggiore di 10 o il nome è uguale a “Joe”. Nota come c'è un solo segno di uguale? La maggior parte dei linguaggi di programmazione usa i doppi uguali (==) per verificare l'equivalenza. Questo non è necessario per la stragrande maggioranza dei motori di database (ma può molto per ambiente, quindi prima controlla due volte).
3. Ordine
Il ordine il comando è usato per ordinare i risultati restituiti. È un altro facile da usare. Semplicemente aggiungilo alla fine della tua dichiarazione:
SELEZIONA nome, età FROM persone ORDINA per età DESC;
Devi specificare la colonna e l'ordine, che può essere ASC per ascendere o DESC per discendere. Puoi ordinare per colonne multiple come questa:
SELEZIONA nome, età FROM persone ORDER BY nome ASC, età DESC
ORDINATO DA è forse il più utile quando combinato con altri comandi. Non tutte le query restituiranno i dati in modo logico o ordinato: questo comando consente di cambiarli.
4. Partecipa
Il aderire il comando è usato per aderire dati correlati memorizzati in una o più tabelle. tu aderire la seconda tabella alla prima tabella e specificare la modalità di connessione dei dati. Ecco un esempio di base:
SELEZIONA età, nome, altezza DA persone LEFT JOIN heights USING (nome);
Ci sono alcune cose che succedono qui. Devi iniziare con il “SINISTRA” sintassi, che specifica di voler unire una tabella usando un join di tipo left. Quindi, specifica la tabella che desideri unire (altezze). Il USING (nome) la sintassi afferma che la colonna “nome” può essere trovato in entrambe le tabelle, e questo dovrebbe essere usato come chiave per unire le tabelle insieme.
Non preoccuparti se le tue colonne hanno nomi diversi in ogni tabella. Puoi usare “SOPRA” invece di “UTILIZZO”:
SELEZIONA età, nome, altezza DALLE persone LEFT JOIN heights ON (namea = nameb);
L'istruzione on indica esplicitamente le colonne da inserire. Ci sono molti tipi di join e ci vorrebbe molto tempo per entrare nei dettagli di ognuno, quindi ecco un breve riassunto dei loro usi:
- (INTERIORE) UNISCITI - Restituisce le righe con una corrispondenza in entrambe le tabelle.
- SINISTRA (ESTERNO) UNISCITI - Restituisce tutte le righe dalla tabella di sinistra, con eventuali corrispondenze dalla tabella di destra. Se non ci sono corrispondenze, i record della tabella sinistra vengono comunque restituiti.
- GIUSTO (ESTERNO) PARTITA - Questo è l'opposto di un join di sinistra: vengono restituite tutte le righe della tabella di destra, insieme a tutte le corrispondenze nella tabella di sinistra.
- FULL (OUTER) JOIN - Restituisce qualsiasi record con una corrispondenza in entrambe le tabelle.
Il “INTERNO” o “ESTERNO” la sintassi è facoltativa. Può rendere le cose più facili da capire, ma non è necessario specificarlo per la maggior parte del tempo.
5. Alias
Ora conosci le basi, diamo un'occhiata a alias comando. Questo è usato per rinominare temporaneamente una tabella - più di un soprannome che altro, poiché questo nuovo nome esiste solo all'interno della singola transazione che stai eseguendo. Ecco come lo usi:
SELECT A.age FROM persone A;
Puoi usare qualsiasi nome valido che ti piace, ma mi piace usare le lettere dell'alfabeto. Prima di ogni nome di colonna, l'alias viene prefisso. Questo alias viene assegnato alla tabella immediatamente dopo la sua dichiarazione. Questo è esattamente lo stesso di questo:
SELEZIONA people.age DALLE persone;
Piuttosto che dover digitare un nome di tabella lungo, è possibile digitare una lettera semplice e facile da ricordare, ma qual è il punto? Bene, se stai selezionando da più di una tabella, è facile confondersi su quali colonne appartengono a quale tabella. Se entrambe le tabelle contengono colonne con lo stesso nome, è possibile che la query del database non venga eseguita senza riferimento esplicito al nome o all'alias della tabella. Ecco un esempio con due tabelle:
SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;
Ed ecco la stessa query con alias:
SELECT A.age, A.name, B.age, B.name FROM staff A, clienti B;
Il tavolo dello staff ha lo pseudonimo di “UN”, e alla tabella dei clienti viene fornito lo pseudonimo di “B”. Le tabelle di alias aiutano davvero a rendere il tuo codice più facile da capire e riducono la quantità di digitazione che devi fare.
Puoi anche rinominare una colonna con un alias usando il “COME” comando:
SELEZIONA età AS persona_a DALLE persone;
Quando viene eseguita questa query, verrà richiamata la colonna “personaggio” invece di “età”.
6. Unione
Unione è un grande comando. Ti consente di aggiungere righe l'una all'altra. A differenza dei join che aggiungono colonne corrispondenti, unione può aggiungere righe non correlate purché abbiano lo stesso numero e nome di colonne. Ecco come lo usi:
SELEZIONA età, nome DA clienti UNIONE SELEZIONA età, nome DA personale;
Puoi pensare all'unione come a un modo per combinare i risultati di due domande. Un'unione restituirà risultati solo se esiste una riga univoca tra le due query. Puoi usare il “UNIONE TUTTI” sintassi per restituire tutti i dati, indipendentemente dai duplicati:
SELEZIONA età, nome DA clienti UNIONE TUTTI SELEZIONA età, nome DAL personale;
Si noti come cambia l'ordine delle righe? L'unione funziona nel modo più efficiente, quindi i dati restituiti possono variare in ordine.
Un possibile caso d'uso per l'unione è un subtotale: è possibile unire una query della somma totale a una query dei singoli totali per un particolare scenario.
7. Inserisci
Ora sai tutto sul recupero dei dati da un database, ma che ne dici di inserirlo? Questo è dove il inserire comando arriva. Ecco un esempio:
INSERIRE I VALORI (nome, età) delle persone ('Joe', 102);
Devi specificare il nome della tabella (persone) e le colonne che desideri utilizzare (nome ed età). Il “VALORI” la sintassi viene quindi utilizzata per fornire i valori da inserire. Questi devono essere nello stesso ordine delle colonne precedentemente specificate.
Non è possibile specificare una clausola where per gli inserimenti ed è necessario assicurarsi di seguire tutti i vincoli di tabella necessari presenti.
8. Aggiornamento
Dopo aver inserito alcuni dati, è naturale che sia necessario modificare righe specifiche. Ecco il aggiornare sintassi del comando:
UPDATE persone SET nome = 'Joe', età = 101;
Devi specificare la tabella che desideri modificare e quindi usare il “IMPOSTATO” sintassi per specificare le colonne e i loro nuovi valori. Questo esempio è buono, ma aggiornerà ogni singolo record, qualcosa che non è sempre auspicabile!
Per essere più specifico, puoi usare “DOVE” clausole come quando si effettua una selezione:
UPDATE persone SET nome = 'Joe', età = 101 WHERE name = 'James';
Puoi anche specificare più condizioni utilizzando “E” e “O”:
UPDATE persone SET nome = 'Joe', età = 101 WHERE (nome = 'James' AND età = 100) O nome = 'Ryan';
Si noti come vengono utilizzate le parentesi per vincolare le condizioni.
9. Upsert
upsert è una strana parola dal suono, ma è un comando incredibilmente utile. Supponiamo che tu abbia un vincolo sulla tua tabella e hai specificato che desideri sempre solo record con nomi univoci, ad esempio non vuoi memorizzare due righe con lo stesso nome. Se hai provato ad inserire più valori di "Joe", il tuo motore di database genererebbe un errore e si rifiuterebbe di farlo (giustamente). Un UPSERT consente di aggiornare un record se già esiste. Questo è incredibilmente utile! Senza questo comando, dovresti scrivere un sacco di logica per controllare prima se esiste un record, inserire se non lo fa, altrimenti recuperare la chiave primaria corretta e quindi aggiornare.
Sfortunatamente, gli upster sono implementati in modo diverso nei diversi motori di database. PostgreSQL ha recentemente acquisito questa capacità, mentre MySQL lo ha avuto per un bel po '. Ecco la sintassi MySQL per riferimento:
INSERIRE I VALORI (nome, età) delle persone ('Joe', 101) ON DUPLICATE KEY UPDATE età = 101;
Si noti come questo sia essenzialmente un aggiornamento e una dichiarazione di inserimento, che può essere riassunta come “aggiornamento se l'inserimento non è riuscito.”
10. Elimina
Elimina è usato per rimuovere completamente i record - può essere molto dannoso se abusato! La sintassi di base è molto facile da usare:
CANCELLARE DALLE PERSONE;
Come la maggior parte degli altri comandi, questo verrà eliminato qualunque cosa! È necessario utilizzare un punto in cui limitarlo a un numero leggermente più sano di righe, idealmente uno:
ELIMINA DA persone DOVE name = 'Joe';
Se stai sviluppando un sistema, spesso è saggio implementare un sistema “cancellazione morbida.” Non si esegue mai effettivamente il comando delete, ma si crea una colonna eliminata, quindi si controlla quella colonna selezionata: si evita un grande potenziale imbarazzo se è possibile recuperare rapidamente e facilmente i record presumibilmente eliminati. Questo non è un sostituto per backup adeguati, tuttavia.
11. Crea tabella
Il crea tabella il comando è usato per creare tabelle. È un altro molto semplice:
CREA TABELLA persone (nome TESTO, età, INTEGER, CHIAVE PRIMARIA (nome));
Si noti come i nomi e i vincoli delle colonne siano tra parentesi e le colonne abbiano un tipo di dati appropriato. Viene specificata una chiave primaria, come richiesto in qualsiasi buona progettazione di database.
12. Modificare la tabella
Il alter table il comando è usato per modificare la struttura di una tabella. Questo è un po 'limitato, in quanto il database non ti consente di modificare una tabella se i dati esistenti causerebbero un conflitto - ad esempio, cambiando una stringa in un numero intero. In questi casi, correggere prima i dati, quindi modificare la tabella. Ecco un esempio:
ALTER TABLE people ADD numero intero di altezza;
Questo esempio aggiunge una colonna chiamata “altezza” di tipo intero alla tabella persone. Non c'è davvero un limite a ciò che puoi modificare.
13. Drop Table
Il comando finale è drop table. Pensa a questo come a eliminare, ma piuttosto che eliminare un singolo record, rimuove ogni singolo record insieme alla tabella! Ecco come lo usi:
DROP TABLE persone;
È un comando abbastanza drastico e non c'è motivo per cui debba essere programmato nel tuo sistema. Dovrebbe essere eseguito solo manualmente nella stragrande maggioranza dei casi, e può esserlo molto distruttivo.
È tutto per oggi. Spero che tu abbia imparato alcuni trucchi utili! Potresti imparare come creare un sito Web Come creare un sito web: per principianti Come creare un sito web: per principianti Oggi ti guiderò attraverso il processo di creazione di un sito Web completo da zero. Non ti preoccupare se questo sembra difficile. Ti guiderò in ogni fase del percorso. Leggi altro, e usa le tue nuove abilità per renderlo dinamico - assicurati di non commettere questi errori 9 Errori che non dovresti commettere quando costruisci un sito Web 9 Errori che non dovresti creare quando costruisci una pagina web Gli errori di codifica HTML sono facili da realizzare, ma se li allontani prima piuttosto che dopo, la tua pagina avrà un aspetto migliore, sarà più facile da mantenere e funzionerà come desideri. Leggi di più o lascia che sia vulnerabile all'iniezione SQL Cos'è un SQL Injection? [MakeUseOf Explains] Che cos'è un'Iniezione SQL? [MakeUseOf Explains] Il mondo della sicurezza di Internet è afflitto da porte aperte, backdoor, buchi di sicurezza, trojan, worm, vulnerabilità dei firewall e una manciata di altri problemi che ci tengono tutti in punta di piedi ogni giorno. Per gli utenti privati, ... Per saperne di più. Se non sei sicuro di aver bisogno di imparare SQL, hai considerato un generatore di siti statico 7 motivi per abbandonare il tuo CMS e considera un generatore di siti statico 7 motivi per abbandonare il tuo CMS e prendere in considerazione un generatore di siti statico Per molti anni, pubblicando un sito web era difficile per molti utenti. CMS come WordPress lo hanno cambiato, ma possono ancora essere confusi. Un'altra alternativa è un generatore di siti statici. Leggi di più ?
Perché non lasciare un commento qui sotto con i tuoi consigli e trucchi SQL preferiti?
Crediti immagine: HYS_NP / Shutterstock
Scopri di più su: programmazione, SQL.