Cheat Sheet SQL: guida rapida ai comandi essenziali

Cheat Sheet SQL: guida rapida ai comandi essenziali

In qualità di programmatore o analista di dati, ti ritroverai spesso a lavorare con grandi volumi di dati. Uno degli strumenti più potenti a tua disposizione è SQL (Structured Query Language).

Questo cheat sheet SQL fornisce gli oggetti e i comandi SQL più comuni, inclusi tipi di dati, istruzioni DML e DDL, funzioni di aggregazione, funzioni di stringa e data e sottoquery.

È progettato per essere un riferimento rapido e pratico che puoi raggiungere ogni volta che interagisci con un database relazionale.

Se sei come noi e desideri scaricare e stampare o archiviare il cheat sheet sul tuo computer, puoi scaricarlo qui sotto.

Scarica il foglietto illustrativo di SQL

Sommario

Tipi di dati SQL

Cheat Sheet SQL: guida rapida ai comandi essenziali

I tipi di dati per specifici sistemi di gestione di database (DBMS) possono variare (ad es. Microsoft SQL Server vs MySQL ). Tuttavia, ce ne sono diversi che si trovano sulla maggior parte dei sistemi. Puoi dividerli in tre categorie:

  1. Numerico

  2. Data e ora

  3. Corda

1. Tipi numerici

Questi sono i tipi numerici più comuni:

  • INTEGER : Un numero intero senza punto decimale.

  • SMALLINT : un intervallo più piccolo di numeri interi

  • BIGINT : una gamma più ampia di numeri interi.

  • DECIMAL(p, s) o NUMERIC(p, s) : Ad esempio, un decimale(5,2) corrisponderebbe a 123,45.

  • REAL : Un numero in virgola mobile, con una precisione di almeno 6 cifre decimali.

  • FLOAT(n) : un numero a virgola mobile, con una precisione di almeno n cifre.

2. Tipi di data e ora

  • DATE : un valore di data, in genere nel formato 'YYYY-MM-DD'.

  • TIME : un valore temporale, in genere nel formato 'HH:MM:SS'.

  • DATETIME o TIMESTAMP : una combinazione di valori di data e ora.

3. Tipi di stringhe

  • CHAR(n) : Una stringa di lunghezza fissa con n caratteri.

  • VARCHAR(n) o CHARACTER VARYING(n) : Una stringa di lunghezza variabile.

  • TEXT : una stringa di lunghezza variabile con una lunghezza massima determinata dal DBMS.

Dichiarazione SELECT

Cheat Sheet SQL: guida rapida ai comandi essenziali

L'istruzione SELECT viene utilizzata per recuperare i dati da una o più tabelle. È possibile specificare le colonne che si desidera recuperare e da quale tabella. Un'istruzione SELECT di base è simile a questa:

SELECT column1, column2
FROM table;

Per recuperare tutti i record dalle colonne 'name' e 'country_id' dalla tabella 'city', la tua query SQL avrà il seguente aspetto:

SELECT name, country_id
FROM city;

Dove la clausola

Cheat Sheet SQL: guida rapida ai comandi essenziali

La clausola WHERE consente di filtrare i risultati di un'istruzione SELECT in base a condizioni specifiche.

SELECT column1, column2
FROM table
WHERE condition;

Per recuperare i record dalla tabella 'città' in cui la 'popolazione' è maggiore di 1.000.000, la query avrà il seguente aspetto:

SELECT name, population
FROM city
WHERE population > 1000000;

ORDINA PER Clausola

La clausola ORDER BY consente di ordinare i risultati di un'istruzione SELECT in base a una o più colonne. Puoi ordinare i risultati in ordine crescente (ASC) o decrescente (DESC):

SELECT column1, column2
FROM table
ORDER BY column1 ASC, column2 DESC;

Ad esempio, per recuperare i record dalla tabella "città" ordinati per "popolazione" in ordine decrescente, la query avrà il seguente aspetto:

SELECT name, population
FROM city
ORDER BY population DESC;

Unire più tabelle in SQL

Cheat Sheet SQL: guida rapida ai comandi essenziali

Ci sono quattro join comunemente usati in SQL:

  1. UNIONE INTERNA

  2. UNISCITI A SINISTRA

  3. GIUSTO UNISCITI

  4. UNISCITI COMPLETAMENTE

1. UNIONE INTERNA

Un INNER JOIN recupera i record che hanno valori corrispondenti in entrambe le tabelle.

Prendiamo un esempio di un database di artisti e album e vuoi trovare tutte le combinazioni di artisti e album. Questo è l'INNER JOIN:

SELECT *
FROM artists AS a
INNER JOIN albums AS b
ON a.artist_id = b.artist_id;

Con INNER JOIN, nei risultati verranno restituite solo le righe con valori corrispondenti nei campi specificati.

2. UNISCITI A SINISTRA

Un LEFT JOIN è anche noto come LEFT OUTER JOIN. Restituisce tutti i record della tabella di sinistra ei record corrispondenti della tabella di destra. Se non c'è corrispondenza nella tabella giusta, il risultato conterrà valori NULL.

Ad esempio, per ottenere un elenco di tutti gli artisti e dei rispettivi album (se ne hanno), puoi utilizzare LEFT JOIN:

SELECT *
FROM artists AS a
LEFT JOIN albums AS b
ON a.artist_id = b.artist_id;

Questa query restituirà tutti gli artisti, anche se non hanno album associati nella tabella degli album.

3. ISCRIVITI A DESTRA

Un RIGHT JOIN è anche noto come RIGHT OUTER JOIN. Restituisce tutti i record della tabella di destra ei record corrispondenti della tabella di sinistra. Se non c'è corrispondenza nella tabella di sinistra, il risultato conterrà valori NULL.

Ad esempio, per ottenere informazioni su tutti gli album e i relativi artisti associati (se esistono), utilizzare RIGHT JOIN:

SELECT *
FROM artists AS a
RIGHT JOIN albums AS b
ON a.artist_id = b.artist_id;

Questa query restituirà tutti gli album, anche se non hanno artisti associati nella tabella degli artisti.

4. ISCRIZIONE COMPLETA

Un FULL JOIN è anche noto come FULL OUTER JOIN. Combina i risultati di entrambi i join LEFT e RIGHT. In altre parole, restituisce tutte le righe delle tabelle sinistra e destra e riempie i valori mancanti con NULL quando non c'è corrispondenza.

Ecco un esempio che utilizza le tabelle degli artisti e degli album:

SELECT *
FROM artists AS a
FULL JOIN albums AS b
ON a.artist_id = b.artist_id;

Questa query restituisce tutte le righe di entrambe le tabelle, compilando i NULL dove non c'è corrispondenza in nessuna delle due tabelle.

Funzioni di aggregazione SQL

Le funzioni di aggregazione vengono utilizzate per calcolare un singolo risultato da un insieme di valori di input. Sono chiamati "aggregati" perché accettano più input e restituiscono un singolo output. I più comuni sono:

  1. CONTARE

  2. SOMMA

  3. AVV

  4. MASSIMO

  5. MIN

1. Funzione CONTEGGIO

La funzione COUNT consente di contare il numero di righe nel risultato di una query. È possibile utilizzare questa funzione di aggregazione per determinare il numero totale di record in una tabella o il numero di record che corrispondono a criteri specifici.

Ecco un esempio:

SELECT COUNT(*) FROM employees;

Questa query restituirà il numero totale di dipendenti nella tabella "dipendenti". Tieni presente che l'aggiunta di una clausola WHERE può perfezionare i risultati:

SELECT COUNT(*) FROM employees WHERE department = 'HR';

2. Funzione SOMMA

The SUM function calculates the total sum of a numeric column. It’s useful when you need to calculate the total value of a particular numeric field. For example, this query returns the total sum of all employee salaries:

SELECT SUM(salary) FROM employees;

3. AVG Function

The AVG function computes the average value of a numeric column. This function is helpful when you want to find the average of a particular numeric field. For instance, this query returns the average salary of all employees:

SELECT AVG(salary) FROM employees;

4. MAX Function

The MAX function finds the maximum value of a column. This is often used to find the highest value in a numeric field or the most recent date in a datetime field. For example, this query returns the highest salary:

SELECT MAX(salary) FROM employees;

5. MIN Function

Lastly, the MIN function helps you find the minimum value of a column. For example, this query returns the lowest salary:

SELECT MIN(salary) FROM employees;

Remember, you can use WHERE clauses in these queries and JOIN with multiple tables.

Common String Functions

Cheat Sheet SQL: guida rapida ai comandi essenziali

Here are the most common string functions that are found in most SQL dialects (the exact syntax can vary):

  1. LEN or LENGTH(string): Returns the length of a string.

  2. UPPER(string): Converts a string to upper case.

  3. LOWER(string): Converts a string to lower case.

  4. SUBSTR or SUBSTRING(string, start, length): Extracts a portion from a string.

  5. TRIM(string): Removes leading and trailing spaces from a string.

  6. LTRIM(string): Removes leading spaces from a string.

  7. RTRIM(string): Removes trailing spaces from a string.

Common Numeric Functions

Cheat Sheet SQL: guida rapida ai comandi essenziali

Here are the most common numeric functions that are found in most SQL dialects (the exact syntax can vary):

  1. ABS(number): Returns the absolute value of a number.

  2. ROUND(number, decimal_places): Rounds a number to a certain number of decimal places.

  3. FLOOR(number): Rounds down the number to the nearest integer.

  4. CEIL or CEILING(number): Rounds up the number to the nearest integer.

  5. RAND(): Returns a random float value from 0 to 1.

  6. MOD(n, m): Returns the remainder of n divided by m.

  7. POWER(base, exponent): Raises a number to the power of another number.

  8. LOG(number): Returns the natural logarithm of a number.

Common Date Functions

Cheat Sheet SQL: guida rapida ai comandi essenziali

Here are the most common date functions that are found in most SQL dialects (the exact syntax can vary):

  1. NOW(): Returns the current date and time.

  2. DATE(datetime): Extracts the date part of a date or datetime expression.

  3. TIME(datetime): Extracts the time part of a date or datetime expression.

  4. YEAR(date): Returns the year part.

  5. MONTH(date): Returns the month part.

  6. DAY(date): Returns the day of the month part.

  7. HOUR(time): Returns the hour part from a time.

  8. MINUTE(time): Returns the minute part from a time.

  9. SECOND(time): Returns the second part from a time.

GROUP BY And HAVING

Cheat Sheet SQL: guida rapida ai comandi essenziali

When working with SQL queries, you may want to further summarize and filter your aggregated data. The GROUP BY and HAVING clauses provide this functionality.

1. Group By Clause

The GROUP BY clause allows you to group rows that share the same values in specified columns. It is commonly used with aggregate functions. This is the syntax:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2;

For example, if you want to calculate the total sales amount for each product category, this is the query:

SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category;

TIP: Combining GROUP BY and COUNT is a good way of finding duplicate values.

2. Having Clause

If you want to filter the aggregated results further, you can use the HAVING clause. The syntax is:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition;

If you want to find product categories with total sales of more than $1,000,000, you would write:

SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category
HAVING SUM(sales_amount) > 1000000;

Quick Tips

  • Always use the GROUP BY clause before the HAVING clause.

  • The SELECT statement can only contain specified column names, aggregate functions, constants, and expressions.

  • When using the HAVING clause, filter conditions should be applied to the aggregate functions rather than directly to the grouped columns.

By understanding and properly applying the GROUP BY and HAVING clauses, you can better organize and analyze your data using SQL.

Subqueries

Cheat Sheet SQL: guida rapida ai comandi essenziali

A subquery is also known as an inner or nested query. This is a query embedded within another SQL statement (such as a SELECT statement) or even inside another subquery.

Subqueries allow you to retrieve data based on the output of another query. The most common operators used with subqueries are:

  1. IN

  2. EXISTS

  3. ANY

  4. ALL

1. IN Operator

The IN operator tests if a value is within a set of values generated by the inner query. The syntax for using the IN operator with a subquery is as follows:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT column_name FROM other_table);

This returns rows from the outer query where the specified column value matches any of the values provided by the subquery.

Suppose you have an employee table and a departments table. You want to find employees who work in departments based at the head office. Here is a sample query

SELECT first_name, last_name
FROM employee
WHERE department IN (SELECT department FROM departments
                     WHERE location = "HQ");

For a more in-depth look, check out our article on the SQL WHERE IN syntax.

2. EXISTS Operator

The EXISTS operator checks if there is at least one row resulting from the subquery. You can use the EXISTS operator to filter rows based on the existence of related data in another table. This is the syntax:

SELECT column_name(s)
FROM table_name
WHERE EXISTS (SELECT column_name FROM other_table WHERE condition);

When the subquery returns at least one row, the EXISTS operator returns true, and the relevant rows from the outer query are included in the result.

3. ANY Operator

The ANY operator is used to compare a value to any value in a set of values provided by a subquery. It’s commonly used with comparison operators like =, <, >, <=, or >=.

This is the syntax:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (SELECT column_name FROM other_table WHERE condition);

This will return rows from the outer query where the specified column value meets the condition against any value from the subquery.

4. ALL Operator

The ALL operator compares a value to all values within a set of values provided by a subquery. The conditions must be true for every value in the subquery’s result. This is the syntax:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL (SELECT column_name FROM other_table WHERE condition);

This returns rows from the outer query only if the specified column value satisfies the condition against all values in the subquery’s output.

Data Manipulation (DML)

Cheat Sheet SQL: guida rapida ai comandi essenziali

Data Manipulation Language (DML) is a sub-language within SQL for managing and updating data. The most common statements are:

  1. INSERT

  2. UPDATE

  3. DELETE

1. INSERT Statement

The INSERT statement allows you to insert rows into a table. Here’s the basic syntax:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

For example, if you want to insert a new row into a ‘users’ table with columns ‘id’, ‘name’, and ’email’, you would use the following query:

INSERT INTO users (id, name, email)
VALUES (1, 'John Doe', '[email protected]');

2. UPDATE Statement

The UPDATE statement allows you to modify existing row data in a table. This is the syntax:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

For example, if you want to update the email address of a user with the id ‘1’ in the ‘users’ table, your query would look like this:

UPDATE users
SET email = '[email protected]'
WHERE id = 1;

TIP: remember to include a WHERE clause to avoid updating all rows in the table by mistake.

3. DELETE Statement

The DELETE statement allows you to remove rows from a table. Here’s the syntax:

DELETE FROM table_name
WHERE condition;

Ad esempio, se desideri eliminare un utente con ID '1' dalla tabella 'utenti', la tua query sarà simile a questa:

DELETE FROM users
WHERE id = 1;

SUGGERIMENTO : includi sempre una clausola WHERE per specificare quali righe eliminare e per evitare di eliminare tutte le righe nella tabella.

Gestione database con DDL

Cheat Sheet SQL: guida rapida ai comandi essenziali

Data Definition Language (DDL) è il sottolinguaggio SQL utilizzato per creare e modificare le tabelle e il database stesso. Le dichiarazioni DDL più comuni sono:

  1. CREARE

  2. ALTER

  3. GOCCIOLARE

1. Istruzione CREATE

L'istruzione CREATE consente di creare nuovi oggetti di database, come nuove tabelle, viste o indici. Quando si crea una nuova tabella, è necessario definire le colonne, i relativi tipi di dati ed eventuali vincoli.

Ecco un esempio di creazione di una tabella ordini:

CREATE TABLE orders (
    id INTEGER PRIMARY KEY,
    product VARCHAR(255) NOT NULL,
    customer_id INT NOT NULL
);

SUGGERIMENTO: scegli tipi di dati e vincoli appropriati per garantire l'integrità dei dati nelle tue tabelle.

Per uno sguardo più dettagliato, consulta il nostro articolo sulle operazioni di base della tabella SQL .

2. Dichiarazione ALTER

L'istruzione ALTER consente di modificare gli oggetti del database esistenti. Gli usi comuni includono:

  • aggiungere, modificare o eliminare colonne.

  • aggiungere o rimuovere vincoli da una tabella esistente.

  • aggiunta di chiavi primarie ed esterne.

AGGIUNGI UNA NUOVA COLONNA

ALTER TABLE users ADD COLUMN age INTEGER;

Modifica il tipo di dati di una colonna

ALTER TABLE users ALTER COLUMN age TYPE FLOAT;

Rilascia una colonna

ALTER TABLE users DROP COLUMN age;

Aggiungi un vincolo univoco

ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE(email);

Aggiungi una chiave esterna tra le tabelle

ALTER TABLE users ADD FOREIGN KEY (country_id) REFERENCES Country(country_id);

3. Dichiarazione DROP

L'istruzione DROP consente di rimuovere oggetti di database come tabelle, viste o indici. Usalo con cautela, poiché eliminerà definitivamente l'oggetto specificato e tutti i suoi dati.

Ecco un esempio:

DROP TABLE users;

SUGGERIMENTO : assicurarsi di disporre dei backup corretti prima di eseguire un'istruzione DROP.

Se vuoi saperne di più sulla modellazione dei dati, guarda questo video:

Transazioni

Le transazioni svolgono un ruolo cruciale nel mantenimento dell'integrità del database , specialmente quando più operazioni correlate vengono eseguite contemporaneamente. Ci sono tre operazioni fondamentali nella gestione delle transazioni:

  1. INIZIO

  2. COMMETTERE

  3. RITORNO

1. INIZIA

L'istruzione BEGIN indica l'inizio di una transazione. Dopo aver eseguito questo comando, stai stabilendo un punto di partenza per il tuo set di istruzioni SQL.

BEGIN;

2. IMPEGNO

Per finalizzare le modifiche e mantenerle nel database, utilizzare l'istruzione COMMIT. Ciò garantisce che tutte le operazioni all'interno della transazione vengano eseguite correttamente e in modo permanente.

COMMIT;

Ecco un esempio di transazione completa utilizzando il classico esempio di trasferimento di fondi tra account:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

3. RITORNO

Cheat Sheet SQL: guida rapida ai comandi essenziali

Quando si lavora con le transazioni, è anche essenziale sapere come annullare le modifiche quando si verifica un errore. L'istruzione ROLLBACK annulla tutte le modifiche apportate dall'inizio della transazione:

ROLLBACK;

Ecco un esempio di transazione con gestione degli errori utilizzando ROLLBACK:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
IF @@ERROR <> 0
    ROLLBACK;
ELSE
    COMMIT;

Pensieri finali

Come hai visto in questo cheat sheet di SQL, SQL offre una moltitudine di comandi e funzioni che ti consentono di creare, manipolare e interrogare i dati in un database relazionale.

Dai comandi fondamentali come SELECT, INSERT, UPDATE e DELETE, ai costrutti più complessi come JOIN e sottoquery, alle funzioni di aggregazione che abbiamo trattato, SQL offre la flessibilità necessaria per gestire un'ampia gamma di attività relative ai dati.

Continua a tornare su questo cheat sheet per accelerare il tuo viaggio verso l'apprendimento di SQL !


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere