Foglio informativo su SQL

Immagine introduttiva di SQL Cheat Sheet


In questa guida troverai un utile cheat sheet che documenta alcuni degli elementi più comunemente utilizzati di SQL e anche alcuni dei meno comuni. Si spera che aiuterà gli sviluppatori, sia a livello principiante che esperto, a diventare più abili nella comprensione del linguaggio SQL.

Usalo come riferimento rapido durante lo sviluppo, un aiuto per l’apprendimento o persino stampalo e rilegalo se preferisci (qualunque cosa funzioni!).

Ma prima di arrivare al cheat sheet stesso, per gli sviluppatori che potrebbero non avere familiarità con SQL, iniziamo con …

Che cos’è SQL

SQL sta per Structured Query Language. È la lingua preferita sul Web di oggi per l’archiviazione, la manipolazione e il recupero dei dati all’interno di database relazionali. La maggior parte, se no tutti dei siti Web visitati lo utilizzerà in qualche modo, incluso Questo uno.

Ecco come appare un database relazionale di base. Questo esempio in particolare memorizza informazioni di e-commerce, in particolare i prodotti in vendita, gli utenti che li acquistano e le registrazioni di questi ordini che collegano queste 2 entità.

Un database relazionale di base

Utilizzando SQL, è possibile interagire con il database scrivendo query che, una volta eseguite, restituiscono tutti i risultati che soddisfano i suoi criteri.

Ecco una query di esempio:-

SELEZIONA * DA utenti;

Utilizzando questa istruzione SELECT, la query seleziona tutti i dati da tutte le colonne nella tabella dell’utente. Restituirebbe quindi dati come il seguente, che in genere viene chiamato un set di risultati:-

Esempio di tabella utenti

Se invece sostituissimo il carattere jolly asterisco (*) con nomi di colonna specifici, dalla query verrebbero restituiti solo i dati di queste colonne.

SELEZIONA first_name, last_name FROM utenti;

Tabella utenti di esempio con colonne ridotte

Possiamo aggiungere un po ‘di complessità a un’istruzione SELECT standard aggiungendo una clausola WHERE, che consente di filtrare ciò che viene restituito.

SELEZIONA * DA prodotti DOVE stock_count <= 10 ORDER BY stock_count ASC;

Questa query restituirebbe tutti i dati dalla tabella dei prodotti con un valore stock_count inferiore a 10 nel suo set di risultati.

L'uso della parola chiave ORDER BY significa che i risultati verranno ordinati utilizzando la colonna stock_count, i valori più bassi al più alto.

Tabella dei prodotti di esempio

Utilizzando l'istruzione INSERT INTO, possiamo aggiungere nuovi dati a una tabella. Ecco un esempio di base per aggiungere un nuovo utente alla tabella degli utenti:-

INSERISCI utenti INTO (nome, cognome, indirizzo, e-mail)
VALORI ("Tester", "Giullare", "123 Fake Street, Sheffield, Regno Unito", "[e-mail protetta]");

Quindi, se dovessi rieseguire la query per restituire tutti i dati dalla tabella dell'utente, il set di risultati sarebbe simile al seguente:

Tabella di esempio con nuova riga

Naturalmente, questi esempi dimostrano solo una piccolissima selezione di ciò di cui è capace il linguaggio SQL.

SQL vs MySQL

Potresti aver sentito parlare di MySQL prima. È importante non confonderlo con lo stesso SQL, poiché esiste una chiara differenza.

SQL vs MySQLSQL è il linguaggio. Descrive la sintassi che consente di scrivere query che gestiscono database relazionali. Niente di più.

MySQL nel frattempo è un database sistema che gira su un server. esso attrezzi il linguaggio SQL, che consente di scrivere query utilizzando la sua sintassi per gestire i database MySQL.

Oltre a MySQL, ci sono altri sistemi che implementano SQL. Alcuni dei più popolari includono:

  • PostgreSQL
  • SQLite
  • Database Oracle
  • Microsoft SQL Server

Installazione di MySQL

finestre

Il modo raccomandato per installare MySQL su Windows è usando il programma di installazione che puoi scaricare da Sito Web MySQL.

Installa MySQL Windows

Mac OS

Su macOS, il modo raccomandato per installare MySQL è usare i pacchetti nativi, il che sembra molto più complicato di quanto non sia in realtà. In sostanza, comporta anche il download di un installatore.

Installa MySQL per Mac

In alternativa, se si preferisce utilizzare gestori di pacchetti come homebrew, puoi installare MySQL in questo modo:

brew install mysql

Se è necessario installare la versione precedente di MySQL 5.7, che è ancora oggi ampiamente utilizzata sul Web, è possibile:

brew install [e-mail protetta]

Usando MySQL

Con MySQL ora installato sul tuo sistema, per iniziare il più rapidamente possibile scrivendo query SQL, si consiglia di utilizzare un'applicazione di gestione SQL per rendere la gestione dei database un processo molto più semplice e facile.

Esistono molte app tra cui scegliere, che svolgono in gran parte lo stesso lavoro, quindi dipende dalle tue preferenze personali su quale utilizzare:

  • MySQL Workbench è sviluppato da Oracle, il proprietario di MySQL.
  • HeidiSQL (Windows consigliato) è un'app gratuita e open source per Windows. Per utenti macOS e Linux, Vino è prima richiesto come prerequisito.
  • phpMyAdmin è un'alternativa molto popolare che opera nel browser web.
  • Sequel Pro (MacOS consigliato) è l'unica alternativa a macOS e la nostra preferita grazie alla sua interfaccia chiara e facile da usare.

Quando sei pronto per iniziare a scrivere le tue query SQL, anziché perdere tempo a creare il tuo database, considera invece l'importazione di dati fittizi.

Il sito Web MySQL fornisce una serie di database fittizi che puoi scaricare gratuitamente e quindi importare nella tua app SQL.

Database fittizio MySQL

Il nostro preferito di questi è il mondo database, che fornisce alcuni dati interessanti per esercitarsi nella scrittura di query SQL. Ecco uno screenshot della sua tabella dei paesi all'interno di Sequel Pro.

Esempio di Sequel Pro

Questa query di esempio restituisce tutti i paesi con la regina Elisabetta II come capo di stato ����.

Esempio di Sequel Pro

Mentre questo restituisce tutti i paesi europei con una popolazione di oltre 50 milioni insieme alla loro capitale e la sua popolazione.

Esempio di Sequel Pro

E questo ultimo restituisce la percentuale media di persone che parlano francese nei paesi in cui il numero totale di persone che parlano francese è superiore al 10%.

Esempio di Sequel Pro

Cheat Sheet

parole

Una raccolta di parole chiave utilizzate nelle istruzioni SQL, una descrizione e, se del caso, un esempio. Alcune delle parole chiave più avanzate hanno una propria sezione dedicata più avanti nel cheat sheet.

Laddove MySQL è menzionato accanto a un esempio, ciò significa che questo esempio è applicabile solo ai database MySQL (al contrario di qualsiasi altro sistema di database).

Parole chiave SQL
Parola chiaveDescrizione
INSERISCIAggiunge una nuova colonna a una tabella esistente.

Esempio: Aggiunge una nuova colonna denominata "indirizzo_email" a una tabella denominata "utenti".

Utenti ALTER TABLE
ADD email_address varchar (255);
AGGIUNGI VINCITORECrea un nuovo vincolo su una tabella esistente, che viene utilizzato per specificare le regole per tutti i dati nella tabella.

Esempio: Aggiunge un nuovo vincolo PRIMARY KEY denominato "utente" sull'ID colonne e SURNAME.

Utenti ALTER TABLE
AGGIUNGI CHIAVE PRIMARIA dell'utente VINCITORE (ID, SURNAME);
ALTER TABLEAggiunge, elimina o modifica le colonne in una tabella. Può anche essere usato per aggiungere ed eliminare vincoli in una tabella, come sopra.

Esempio: Aggiunge una nuova colonna booleana denominata "approvata" a una tabella denominata "offerte".

Offerte ALTER TABLE
ADD booleano approvato;

Esempio 2: Elimina la colonna "approvato" dalla tabella "offerte"

Offerte ALTER TABLE
COLONNA DROP approvata;
ALTER COLUMNModifica il tipo di dati della colonna di una tabella.

Esempio: Nella tabella "utenti", trasforma la colonna "incept_date" in un tipo di "datetime".

Utenti ALTER TABLE
ALTER COLUMN incept_date datetime;
TUTTIRestituisce vero se tutti i valori della sottoquery soddisfano la condizione passata.

Esempio: Restituisce gli utenti con un numero maggiore di attività rispetto all'utente con il numero più alto di attività nel reparto risorse umane (ID 2)

SELEZIONA nome, cognome, compito_no
DA utenti
DOVE attività_no> TUTTO (SELEZIONA attività DALL'utente DOVE dipartimento_id = 2);
EUtilizzato per unire condizioni separate all'interno di una clausola WHERE.

Esempio: Restituisce eventi situati a Londra, Regno Unito

SELEZIONA * DA eventi
WHERE host_country = 'Regno Unito' AND host_city = 'London';
QUALUNQUERestituisce vero se uno qualsiasi dei valori della sottoquery soddisfa la condizione specificata.

Esempio: Restituisce i prodotti dalla tabella dei prodotti che hanno ricevuto ordini, memorizzati nella tabella degli ordini, con una quantità superiore a 5.

SELEZIONA il nome
DA prodotti
DOVE productId = ANY (SELEZIONA productId FROM ordini DOVE quantità> 5);
COMERinomina una tabella o una colonna con un valore alias che esiste solo per la durata della query.

Esempio: Alias ​​colonna north_east_user_subscriptions

SELEZIONA north_east_user_subscriptions AS ne_subs
DA utenti
DOVE ne_subs> 5;
ASCUtilizzato con ORDER BY per restituire i dati in ordine crescente.

Esempio: Mele, banane, pesche, raddish

FRASeleziona i valori all'interno dell'intervallo indicato.

Esempio 1: Seleziona lo stock con una quantità compresa tra 100 e 150.

SELEZIONA * DA magazzino
DOVE quantità TRA 100 E 150;

Esempio 2: Seleziona lo stock con una quantità NOT tra 100 e 150. In alternativa, usando la parola chiave NOT qui si inverte la logica e si selezionano i valori al di fuori dell'intervallo dato.

SELEZIONA * DA magazzino
DOVE quantità NON TRA 100 E 150;
ASTUCCIOModifica l'output della query in base alle condizioni.

Esempio: Restituisce gli utenti e i loro abbonamenti, insieme a una nuova colonna chiamata activity_levels che dà un giudizio in base al numero di abbonamenti.

SELEZIONA nome, cognome, abbonamenti
CASO QUANDO iscrizioni> 10 POI 'Molto attivo'
QUANDO Quantità TRA 3 E 10 POI 'Attivo'
ELSE 'Inattivo'
END AS activity_levels
DA utenti;
DAI UN'OCCHIATAAggiunge un vincolo che limita il valore che può essere aggiunto a una colonna.

Esempio 1 (MySQL): Verifica che tutti gli utenti aggiunti alla tabella degli utenti abbiano almeno 18 anni.

Utenti CREATE TABLE (
first_name varchar (255),
età int,
VERIFICA (età> = 18)
);

Esempio 2 (MySQL): Aggiunge un segno di spunta dopo che la tabella è già stata creata.

Utenti ALTER TABLE
AGGIUNGI CONTROLLO (età> = 18);
CREA DATABASECrea un nuovo database.

Esempio: Crea un nuovo database chiamato "websiteetup".

CREARE DATABASE websiteetup;
CREA TABELLACrea una nuova tabella .

Esempio: Crea una nuova tabella denominata "utenti" nel database "websiteetup".

Utenti CREATE TABLE (
id int,
first_name varchar (255),
cognome varchar (255),
indirizzo varchar (255),
contact_number int
);
PREDEFINITOImposta un valore predefinito per una colonna;

Esempio 1 (MySQL): Crea una nuova tabella denominata Prodotti che ha una colonna nome con un valore predefinito di "Nome segnaposto" e una colonna available_da con un valore predefinito della data odierna.

Prodotti CREATE TABLE (
id int,
name varchar (255) DEFAULT 'Nome segnaposto',
disponibile_da data DEFAULT GETDATE ()
);

Esempio 2 (MySQL): Come sopra, ma modifica una tabella esistente.

Prodotti ALTER TABLE
Nome ALTER SET DEFAULT 'Nome segnaposto',
ALTER disponibile_da SET DEFAULT GETDATE ();
ELIMINAElimina i dati da una tabella.

Esempio: Rimuove un utente con un user_id di 674.

ELIMINA DA utenti DOVE user_id = 674;
DESCUtilizzato con ORDER BY per restituire i dati in ordine decrescente.

Esempio: Raddish, Pesche, Banane, Mele

COLONNA A GOCCIAElimina una colonna da una tabella.

Esempio: Rimuove la colonna first_name dalla tabella degli utenti.

Utenti ALTER TABLE
DROP COLUMN first_name
DATABASE DROPElimina l'intero database.

Esempio: Elimina un database chiamato "websiteetup".

DROP DATABASE websiteetup;
DROP DEFAULTRimuove un valore predefinito per una colonna.

Esempio (MySQL): Rimuove il valore predefinito dalla colonna "nome" nella tabella "prodotti".

Prodotti ALTER TABLE
Nome ALTER COLUMN DROP DEFAULT;
TABELLA DI GOCCIAElimina una tabella da un database.

Esempio: Rimuove la tabella degli utenti.

Utenti DROP TABLE;
ESISTEVerifica l'esistenza di qualsiasi record all'interno della sottoquery, restituendo true se vengono restituiti uno o più record.

Esempio: Elenca tutti i concessionari con una percentuale di finanziamento dell'operazione inferiore a 10.

SELEZIONA nome concessionario
DA concessionari
DOVE ESISTE (SELEZIONA deal_name FROM affari DOVE dealership_id = deals.dealership_id E finance_percentage < 10);
A PARTIRE DALSpecifica da quale tabella selezionare o eliminare i dati.

Esempio: Seleziona i dati dalla tabella degli utenti.

SELEZIONA area_manager
FROM area_managers
DOVE ESISTE (SELEZIONA Nome Prodotto DA Prodotti DOVE area_manager_id = deals.area_manager_id E Prezzo < 20);
INUtilizzato insieme a una clausola WHERE come scorciatoia per più condizioni OR.

Quindi invece di:-

SELEZIONA * DA utenti
WHERE country = 'USA' OR country = 'United Kingdom' OR country = 'Russia' OR country = 'Australia';

Puoi usare:-

SELEZIONA * DA utenti
DOVE paese IN ("USA", "Regno Unito", "Russia", "Australia");
INSERIREAggiungi nuove righe a una tabella.

Esempio: Aggiunge un nuovo veicolo.

INSERIRE AUTO (marca, modello, chilometraggio, anno)
VALORI ('Audi', 'A3', 30000, 2016);
È ZEROTest per valori vuoti (NULL).

Esempio: Restituisce gli utenti a cui non è stato assegnato un numero di contatto.

SELEZIONA * DA utenti
DOVE contact_number È NULL;
NON È NULLIl contrario di NULL. Verifica valori non vuoti / NULL.
PIACERestituisce vero se il valore dell'operando corrisponde a un modello.

Esempio: Restituisce vero se il nome_utente dell'utente termina con "figlio".

SELEZIONA * DA utenti
DOVE first_name LIKE '% son';
NONRestituisce vero se un record NON soddisfa la condizione.

Esempio: Restituisce vero se il nome_utente dell'utente non termina con "figlio".

SELEZIONA * DA utenti
DOVE first_name NON MI PIACE '% son';
OUtilizzato insieme a WHERE per includere i dati quando entrambe le condizioni sono vere.

Esempio: Restituisce gli utenti che vivono a Sheffield o Manchester.

SELEZIONA * DA utenti
DOVE città = 'Sheffield' O 'Manchester';
ORDINATO DAUtilizzato per ordinare i dati dei risultati in ordine crescente (predefinito) o decrescente mediante l'uso di parole chiave ASC o DESC.

Esempio: Restituisce i paesi in ordine alfabetico.

SELEZIONA * DA Paesi
ORDINA PER Nome;
ROWNUMRestituisce risultati in cui il numero di riga soddisfa la condizione passata.

Esempio: Restituisce i primi 10 paesi dalla tabella dei paesi.

SELEZIONA * DA Paesi
DOVE ROWNUM <= 10;
SELEZIONAREUtilizzato per selezionare i dati da un database, che viene quindi restituito in un set di risultati.

Esempio 1: Seleziona tutte le colonne da tutti gli utenti.

SELEZIONA * DA utenti;

Esempio 2: Seleziona le colonne first_name e cognome da tutti gli utenti.xx

SELEZIONA first_name, cognome FROM utenti;
SELEZIONA DISTINCTViene indicato come SELEZIONA, ad eccezione dei valori duplicati.

Esempio: Crea una tabella di backup utilizzando i dati della tabella degli utenti.

SELEZIONA * INTO utentiBackup2020
DA utenti;
SELEZIONA INCopia i dati da una tabella e li inserisce in un'altra.

Esempio: Restituisce tutti i paesi dalla tabella degli utenti, rimuovendo eventuali valori duplicati (che sarebbe altamente probabile)

SELEZIONA DISTINCT paese dagli utenti;
SELEZIONA IN ALTOConsente di restituire un determinato numero di record da restituire da una tabella.

Esempio: Restituisce le prime 3 auto dal tavolo delle auto.

SELEZIONA I TOP 3 * DALLE auto;
IMPOSTATOUtilizzato insieme a UPDATE per aggiornare i dati esistenti in una tabella.

Esempio: Aggiorna i valori di valore e quantità per un ordine con un ID di 642 nella tabella degli ordini.

AGGIORNARE gli ordini
Valore SET = 19,49, quantità = 2
WHERE id = 642;
ALCUNIIdentico a QUALSIASI.
SUPERIOREUtilizzato insieme a SELEZIONA per restituire un determinato numero di record da una tabella.

Esempio: Restituisce i primi 5 utenti dalla tabella degli utenti.

SELEZIONA I TOP 5 * DAGLI utenti;
TRUNCATE TABLESimile a DROP, ma invece di eliminare la tabella e i suoi dati, questo elimina solo i dati.

Esempio: Svuota la tabella delle sessioni, ma lascia intatta la tabella stessa.

TRUNCATE TABLE sessioni;
UNIONECombina i risultati di 2 o più istruzioni SELECT e restituisce solo valori distinti.

Esempio: Restituisce le città dalle tabelle degli eventi e degli abbonati.

SELEZIONA città DA eventi
UNIONE
SELEZIONA città dagli abbonati;
UNION ALLLo stesso di UNION, ma include valori duplicati.
UNICOQuesto vincolo garantisce che tutti i valori in una colonna siano univoci.

Esempio 1 (MySQL): Aggiunge un vincolo univoco alla colonna ID durante la creazione di una nuova tabella utenti.

Utenti CREATE TABLE (
id int NOT NULL,
name varchar (255) NON NULL,
UNICO (id)
);

Esempio 2 (MySQL): Modifica una colonna esistente per aggiungere un vincolo UNIQUE.

Utenti ALTER TABLE
AGGIUNGI UNICO (ID);
AGGIORNAREAggiorna i dati esistenti in una tabella.

Esempio: Aggiorna i valori di chilometraggio e serviceDue per un veicolo con un ID di 45 nella tabella delle auto.

AGGIORNAMENTO auto
Chilometraggio SET = 23500, serviceDue = 0
DOVE ID = 45;
VALORIUtilizzato insieme alla parola chiave INSERT INTO per aggiungere nuovi valori a una tabella.

Esempio: Aggiunge una nuova auto al tavolo delle auto.

INSERISCI auto (nome, modello, anno)
VALORI ('Ford', 'Fiesta', 2010);
DOVEFiltra i risultati per includere solo i dati che soddisfano la condizione specificata.

Esempio: Restituisce gli ordini con una quantità superiore a 1 articolo.

SELEZIONA * DA ordini
DOVE quantità> 1;

Commenti

I commenti consentono di spiegare sezioni delle istruzioni SQL o di commentare il codice e impedirne l'esecuzione.

In SQL, ci sono 2 tipi di commenti, a riga singola e multilinea.

Commenti a linea singola

I commenti a riga singola iniziano con -. Qualsiasi testo dopo questi 2 caratteri fino alla fine della riga verrà ignorato.

-- La mia query di selezione
SELEZIONA * DA utenti;

Commenti multilinea

I commenti multilinea iniziano con / * e terminano con * /. Si estendono su più linee fino a quando non sono stati trovati i caratteri di chiusura.

/ *
Questa è la mia domanda selezionata.
Prende tutte le righe di dati dalla tabella degli utenti
* /
SELEZIONA * DA utenti;

/ *
Questa è un'altra query selezionata, che non voglio ancora eseguire

SELEZIONA * DA attività;
* /

Tipi di dati MySQL

Quando si crea una nuova tabella o si modifica una esistente, è necessario specificare il tipo di dati accettati da ciascuna colonna.

Nell'esempio seguente, i dati passati alla colonna id devono essere int, mentre la colonna first_name ha un tipo di dati VARCHAR con un massimo di 255 caratteri.

Utenti CREATE TABLE (
id int,
first_name varchar (255)
);

Tipi di dati stringa

Tipi di dati stringa
Tipo di datiDescrizione
CHAR (dimensione)Stringa di lunghezza fissa che può contenere lettere, numeri e caratteri speciali. Il parametro size imposta la lunghezza massima della stringa, da 0 a 255 con un valore predefinito di 1.
VARCHAR (dimensione)Stringa di lunghezza variabile simile a CHAR (), ma con una lunghezza massima della stringa compresa tra 0 e 65535.
BINARIO (dimensione)Simile a CHAR () ma memorizza stringhe di byte binari.
VARBINARY (dimensione)Simile a VARCHAR () ma per stringhe di byte binari.
TINYBLOBContiene oggetti binari di grandi dimensioni (BLOB) con una lunghezza massima di 255 byte.
TINYTEXTContiene una stringa con una lunghezza massima di 255 caratteri. Utilizza invece VARCHAR (), poiché viene recuperato molto più velocemente.
Dimensione del testo)Contiene una stringa con una lunghezza massima di 65535 byte. Ancora una volta, meglio usare VARCHAR ().
BLOB (dimensione)Contiene oggetti binari di grandi dimensioni (BLOB) con una lunghezza massima di 65535 byte.
MEDIUMTEXTContiene una stringa con una lunghezza massima di 16.777.215 caratteri.
MEDIUMBLOBContiene oggetti binari di grandi dimensioni (BLOB) con una lunghezza massima di 16.777.215 byte.
LONGTEXTContiene una stringa con una lunghezza massima di 4.294.967.295 caratteri.
LONGBLOBContiene oggetti binari di grandi dimensioni (BLOB) con una lunghezza massima di 4.294.967.295 byte.
ENUM (a, b, c, ecc ...)Un oggetto stringa che ha un solo valore, che viene scelto da un elenco di valori definiti dall'utente, fino a un massimo di 65535 valori. Se viene aggiunto un valore che non è in questo elenco, viene sostituito con un valore vuoto. Pensa che ENUM sia simile alle radio box HTML in questo senso.

Magliette CREATE TABLE (colore ENUM ("rosso", "verde", "blu", "giallo", "viola"));
SET (a, b, c, ecc ...)Un oggetto stringa che può avere 0 o più valori, che viene scelto da un elenco di valori definiti dall'utente, fino a un massimo di 64 valori. Pensa che SET sia simile alle caselle di controllo HTML in questo senso.

Tipi di dati numerici

Tipi di dati stringa
Tipo di datiDescrizione
BIT (dimensione)Un tipo di valore bit con un valore predefinito di 1. Il numero consentito di bit in un valore viene impostato tramite il parametro size, che può contenere valori compresi tra 1 e 64.
TINYINT (dimensione)Un numero intero molto piccolo con un intervallo con segno compreso tra -128 e 127 e un intervallo senza segno tra 0 e 255. Qui, il parametro size specifica la larghezza massima consentita del display, che è 255.
BOOLIn sostanza, un modo rapido per impostare la colonna su TINYINT con una dimensione di 1. 0 è considerato falso, mentre 1 è considerato vero.
BOOLEANCome BOOL.
SMALLINT (dimensione)Un numero intero piccolo con un intervallo con segno compreso tra -32768 e 32767 e un intervallo senza segno tra 0 e 65535. Qui, il parametro size specifica la larghezza massima consentita del display, che è 255.
MEDIUMINT (dimensione)Un numero intero medio con un intervallo con segno compreso tra -8388608 e 8388607 e un intervallo senza segno da 0 a 16777215. Qui, il parametro size specifica la larghezza massima consentita del display, che è 255.
INT (dimensione)Un numero intero medio con un intervallo con segno compreso tra -2147483648 e 2147483647 e un intervallo senza segno compreso tra 0 e 4294967295. Qui, il parametro size specifica la larghezza massima consentita del display, che è 255.
INTEGER (dimensione)Come INT.
BIGINT (dimensione)Un numero intero medio con un intervallo con segno compreso tra -9223372036854775808 e 9223372036854775807 e un intervallo senza segno compreso tra 0 e 18446744073709551615. Qui, il parametro size specifica la larghezza massima consentita del display, che è 255.
FLOAT (p)Un valore numerico in virgola mobile. Se il parametro precision (p) è compreso tra 0 e 24, il tipo di dati è impostato su FLOAT (), mentre se è compreso tra 25 e 53, il tipo di dati è impostato su DOUBLE (). Questo comportamento serve a rendere più efficiente la memorizzazione dei valori.
DOPPIA (taglia, d)Un valore numerico in virgola mobile in cui le cifre totali sono impostate dal parametro size e il numero di cifre dopo il punto decimale è impostato dal parametro d.
DECIMAL (dimensione, d)Un numero esatto di punti fissi in cui il numero totale di cifre è impostato dai parametri dimensione e il numero totale di cifre dopo il punto decimale è impostato dal parametro d.

Per dimensione, il numero massimo è 65 e il valore predefinito è 10, mentre per d, il numero massimo è 30 e il valore predefinito è 10.

DEC (dimensione, d)Come DECIMAL.

Tipi di dati di data / ora

Tipi di dati di data / ora
Tipo di datiDescrizione
DATAUna semplice data nel formato AAAA-MM-GG, con un intervallo supportato da "1000-01-01" a "9999-12-31".
DATETIME (FSP)Ora della data nel formato AAAA-MM-GG hh: mm: ss, con un intervallo supportato da "1000-01-01 00:00:00" a "9999-12-31 23:59:59".

Aggiungendo DEFAULT e ON UPDATE alla definizione della colonna, si imposta automaticamente sulla data / ora corrente.

TIMESTAMP (FSP)Un timestamp Unix, che è un valore relativo al numero di secondi dall'epoca di Unix ("1970-01-01 00:00:00" UTC). Questo ha un intervallo supportato da "1970-01-01 00:00:01" UTC a "2038-01-09 03:14:07" UTC.

Aggiungendo DEFAULT CURRENT_TIMESTAMP e ON UPDATE CURRENT TIMESTAMP alla definizione della colonna, si imposta automaticamente sulla data / ora corrente.

TEMPO (FSP)Un tempo nel formato hh: mm: ss, con un intervallo supportato da "-838: 59: 59" a "838: 59: 59".
ANNOUn anno, con una gamma supportata da "1901" a "2155".

operatori

Operatori aritmetici

Operatori aritmetici
OperatoreDescrizione
+Inserisci
-Sottrarre
*Moltiplicare
/Dividere
%Modulo

Operatore bit a bit

Operatori bit a bit
OperatoreDescrizione
&Bitwise AND
|OR bit a bit
^OR esclusivo bit a bit

Operatori di confronto

Operatori di confronto
OperatoreDescrizione
=Uguale a
>Più grande di
<Meno di
> =Maggiore o uguale a
<=Minore o uguale a
<>Non uguale a

Operatori composti

Operatori composti
OperatoreDescrizione
+=Aggiungi uguale
-=Sottrai uguale
* =Moltiplicare equivale
/ =Dividi è uguale
% =Modulo è uguale
& =Bit a bit E uguale
^ - =Esclusivo bit a bit uguale
| * =O bit a bit è uguale

funzioni

Funzioni stringa

Funzioni stringa
NomeDescrizione
ASCIIRestituisce il valore ASCII equivalente per un carattere specifico.
CHAR_LENGTHRestituisce la lunghezza del carattere di una stringa.
character_lengthCome CHAR_LENGTH.
CONCATAggiunge espressioni insieme, con un minimo di 2.
CONCAT_WSAggiunge espressioni insieme, ma con un separatore tra ciascun valore.
CAMPORestituisce un valore di indice relativo alla posizione di un valore all'interno di un elenco di valori.
TROVA IN SETRestituisce la posizione di una stringa in un elenco di stringhe.
FORMATOQuando viene passato un numero, restituisce quel numero formattato per includere le virgole (ad esempio 3.400.000).
INSERIRETi permette di inserire una stringa in un'altra ad un certo punto, per un certo numero di caratteri.
INSTRRestituisce la posizione della prima volta che una stringa appare all'interno di un'altra.
LCASEConverti una stringa in minuscolo.
SINISTRAA partire da sinistra, estrai il numero dato di caratteri da una stringa e restituiscili come un altro.
LUNGHEZZARestituisce la lunghezza di una stringa, ma in byte.
INDIVIDUARERestituisce la prima occorrenza di una stringa all'interno di un'altra,
INFERIORECome per LCASE.
LPADSinistra pad una stringa con un altro, per una lunghezza specifica.
LTRIMRimuovere eventuali spazi iniziali dalla stringa specificata.
MIDEstrae una stringa dall'altra, a partire da qualsiasi posizione.
POSIZIONERestituisce la posizione della prima volta che una sottostringa appare all'interno di un'altra.
RIPETERETi permette di ripetere una stringa
SOSTITUIREConsente di sostituire qualsiasi istanza di una sottostringa all'interno di una stringa, con una nuova sottostringa.
INVERSIONEInverte la stringa.
DESTRAA partire da destra, estrai il numero dato di caratteri da una stringa e restituiscili come un altro.
RPADIl tasto destro sposta una stringa con un'altra, a una lunghezza specifica.
RTRIMRimuove gli spazi finali dalla stringa specificata.
SPAZIORestituisce una stringa piena di spazi pari all'importo che viene passato.
STRCMPConfronta 2 stringhe per differenze
SUBSTREstrae una sottostringa da un'altra, a partire da qualsiasi posizione.
SUBSTRINGCome per SUBSTR
SUBSTRING_INDEXRestituisce una sottostringa da una stringa prima che venga rilevata la sottostringa passata il numero di volte uguale al numero passato.
TRIMRimuove gli spazi finali e iniziali dalla stringa specificata. Come se dovessi eseguire LTRIM e RTRIM insieme.
UCASEConverti una stringa in maiuscolo.
SUPERIORECome per UCASE.

Funzioni numeriche

Funzioni numeriche
NomeDescrizione
addominaliRestituisce il valore assoluto di un determinato numero.
ACOSRestituisce l'arco coseno del numero dato.
COME INRestituisce l'arco seno del numero dato.
UN'ABBRONZATURARestituisce l'arco tangente di uno o 2 numeri dati.
ATAN2Restituisce l'arco tangente di 2 numeri dati.
AVGRestituisce il valore medio dell'espressione data.
CEILRestituisce il numero intero (intero) più vicino verso l'alto da un determinato numero decimale.
SOFFITTOCome il CEIL.
COSRestituisce il coseno di un determinato numero.
CULLARestituisce la cotangente di un determinato numero.
CONTARERestituisce la quantità di record restituiti da una query SELECT.
GRADIConverte un valore in radianti in gradi.
DIVTi permette di dividere numeri interi.
EXPRestituisce e alla potenza di un determinato numero.
PAVIMENTORestituisce il numero intero (intero) più vicino verso il basso da un determinato numero decimale.
PIÙ GRANDERestituisce il valore più alto in un elenco di argomenti.
MENORestituisce il valore più piccolo in un elenco di argomenti.
LNRestituisce il logaritmo naturale del numero indicato
LOGRestituisce il logaritmo naturale di un determinato numero o il logaritmo di un determinato numero sulla base specificata
LOG10Fa lo stesso di LOG, ma alla base 10.
LOG2Fa lo stesso di LOG, ma alla base 2.
MAXRestituisce il valore più alto da un set di valori.
MINRestituisce il valore più basso da un set di valori.
MODRestituisce il resto del numero dato diviso per l'altro numero dato.
PIRestituisce PI.
POWRestituisce il valore di un determinato numero elevato alla potenza dell'altro numero dato.
ENERGIACome POW.
RADIANSConverte un valore in gradi in radianti.
RANDRestituisce un numero casuale.
IL GIROArrotondare il numero dato al dato numero di cifre decimali.
CARTELLORestituisce il segno del numero indicato.
PECCATORestituisce il seno del numero indicato.
SQRTRestituisce la radice quadrata del numero indicato.
SOMMARestituisce il valore dell'insieme di valori dato combinato.
TANRestituisce la tangente del numero indicato.
TRONCARERestituisce un numero troncato al numero dato di posizioni decimali.

Funzioni data

Funzioni data
NomeDescrizione
ADDDATEAggiungi un intervallo di date (ad esempio: 10 GIORNI) a una data (ad esempio: 20/01/20) e restituisci il risultato (ad esempio: 20/01/30).
SommaTempiAggiungi un intervallo di tempo (ad es. 02:00) a un'ora o datetime (05:00) e restituisci il risultato (07:00).
CURDATEOttieni la data corrente.
DATA ODIERNACome CURDATE.
ORA ATTUALEOttieni l'ora corrente.
CURRENT_TIMESTAMPOttieni la data e l'ora correnti.
CURTIMECome CURRENT_TIME.
DATAEstrae la data da un'espressione datetime.
DATEDIFFRestituisce il numero di giorni tra le 2 date indicate.
DATE_ADDCome per ADDDATE.
FORMATO DATAFormatta la data per il modello dato.
DATE_SUBSottrai un intervallo di date (ad esempio: 10 GIORNI) a una data (ad esempio: 20/01/20) e restituisci il risultato (ad esempio: 20/01/10).
GIORNORestituisce il giorno per la data specificata.
DAYNAMERestituisce il nome del giorno della settimana per la data specificata.
GIORNO DELLA SETTIMANARestituisce l'indice per il giorno della settimana per la data specificata.
DAYOFYEARRestituisce il giorno dell'anno per la data specificata.
ESTRATTOEstrarre dalla data la parte indicata (ad es. MESE per il 20/01/20 = 01).
DA GIORNIRestituisce la data dal valore data numerico indicato.
ORARestituisce l'ora dalla data indicata.
ULTIMO GIORNOOttieni l'ultimo giorno del mese per la data indicata.
ORA LOCALEOttiene la data e l'ora locali correnti.
LOCALTIMESTAMPCome per LOCALTIME.
MAKEDATECrea una data e la restituisce, in base ai valori dell'anno e del numero di giorni indicati.
abbondantemente recuperatoCrea un orario e lo restituisce, in base ai valori indicati di ora, minuti e secondi.
MICROSECONDRestituisce il microsecondo di un determinato tempo o datetime.
MINUTERestituisce il minuto del tempo o datetime specificato.
MESERestituisce il mese della data indicata.
MONTHNAMERestituisce il nome del mese della data specificata.
ADESSOCome per LOCALTIME.
PERIOD_ADDAggiunge il numero di mesi specificato al periodo specificato.
PERIOD_DIFFRestituisce la differenza tra 2 periodi indicati.
TRIMESTRERestituisce il trimestre dell'anno per la data specificata.
SECONDORestituisce il secondo di un determinato tempo o datetime.
SEC_TO_TIMERestituisce un tempo basato sui secondi indicati.
STR_TO_DATECrea una data e la restituisce in base alla stringa e al formato specificati.
SUBDATECome DATE_SUB.
SUBTIMESottrae un intervallo di tempo (ad es. 02:00) in un'ora o datetime (05:00) e restituisce il risultato (03:00).
SYSDATECome per LOCALTIME.
TEMPORestituisce il tempo da un determinato tempo o datetime.
FORMATO ORARIORestituisce il tempo indicato nel formato indicato.
TIME_TO_SECConverte e restituisce un tempo in secondi.
TimeDiffRestituisce la differenza tra 2 espressioni data / ora date.
TIMESTAMPRestituisce il valore datetime della data o datetime indicati.
DI OGGIRestituisce il numero totale di giorni che sono passati da "00 -00-0000" alla data indicata.
SETTIMANARestituisce il numero della settimana per la data specificata.
WEEKDAYRestituisce il numero del giorno della settimana per la data specificata.
WEEKOFYEARRestituisce il numero della settimana per la data specificata.
ANNORestituisce l'anno dalla data indicata.
annoSettimanaRestituisce il numero dell'anno e della settimana per la data specificata.

Varie funzioni

Varie funzioni
NomeDescrizione
BIDONERestituisce il numero indicato in binario.
BINARIORestituisce il valore dato come stringa binaria.
CASTConverti un tipo in un altro.
COALESCEDa un elenco di valori, restituisce il primo valore non nullo.
CONNECTION_IDPer la connessione corrente, restituire l'ID connessione univoco.
CONVConverti il ​​numero dato da un sistema di base numerico in un altro.
CONVERTIREConverti il ​​valore dato nel tipo di dati o nel set di caratteri.
UTENTE CORRENTERestituisce l'utente e il nome host utilizzati per l'autenticazione con il server.
BANCA DATIOttieni il nome del database corrente.
RAGGRUPPARE PERUtilizzato insieme alle funzioni aggregate (COUNT, MAX, MIN, SUM, AVG) per raggruppare i risultati.

Esempio: Elenca il numero di utenti con ordini attivi.

SELEZIONA COUNT (user_id), active_orders
DA utenti
Raggruppa per active_order;
VISTAÈ usato al posto di WHERE con funzioni aggregate.

Esempio: Elenca il numero di utenti con ordini attivi, ma include solo utenti con più di 3 ordini attivi.

SELEZIONA COUNT (user_id), active_orders
DA utenti
Raggruppa per active_order
HUNT COUNT (user_id)> 3;
SESe la condizione è vera restituisce un valore, altrimenti restituisce un altro valore.
IFNULLSe l'espressione data equivale a null, restituisce il valore dato.
È ZEROSe l'espressione è nulla, restituisce 1, altrimenti restituisce 0.
LAST_INSERT_IDPer l'ultima riga che è stata aggiunta o aggiornata in una tabella, restituire l'ID dell'incremento automatico.
NULLIFConfronta le 2 espressioni fornite. Se sono uguali, viene restituito NULL, altrimenti viene restituita la prima espressione.
SESSION_USERRestituisce l'utente corrente e i nomi host.
SYSTEM_USERCome per SESSION_USER.
UTENTECome per SESSION_USER.
VERSIONERestituisce la versione corrente di MySQL che alimenta il database.

Personaggi jolly

In SQL, i caratteri jolly sono caratteri speciali utilizzati con le parole chiave LIKE e NOT LIKE che ci consentono di cercare i dati con schemi sofisticati in modo molto più efficiente

I caratteri jolly
NomeDescrizione
%Equivale a zero o più caratteri.

Esempio 1: Trova tutti gli utenti con cognomi che terminano con "figlio".

SELEZIONA * DA utenti
DOVE il cognome MI PIACE '% figlio';

Esempio 2: Trova tutti gli utenti che vivono in città contenenti il ​​modello "che"

SELEZIONA * DA utenti
DOVE LA CITTA 'COME'% che% ';
_Equivale a qualsiasi singolo personaggio.

Esempio: Trova tutti gli utenti che vivono in città a partire da 3 caratteri, seguito da "chester".

SELEZIONA * DA utenti
DOVE LA CITTA 'COME' ___chester ';
[Charlist]Equivale a qualsiasi singolo carattere nell'elenco.

Esempio 1: Trova tutti gli utenti con nomi che iniziano con J, H o M.

SELEZIONA * DA utenti
DOVE first_name LIKE '[jhm]%';

Esempio 2: Trova tutti gli utenti con nomi che iniziano con lettere tra A - L.

SELEZIONA * DA utenti
DOVE first_name LIKE '[a-l]%';

Esempio 3: Trova tutti gli utenti con nomi che non finiscono con lettere tra n - s.

SELEZIONA * DA utenti
DOVE first_name LIKE '% [! N-s]';

chiavi

Nei database relazionali esiste un concetto di chiavi primarie ed esterne. Nelle tabelle SQL, queste sono incluse come vincoli, in cui una tabella può avere una chiave primaria, una chiave esterna o entrambe.

Chiave primaria

Una chiave primaria consente di identificare in modo univoco ogni record di una tabella. Può esserci solo una chiave primaria per tabella e puoi assegnare questo vincolo a qualsiasi singola o combinazione di colonne. Tuttavia, ciò significa che ogni valore all'interno di questa colonna deve essere univoco.

In genere in una tabella, la chiave primaria è una colonna ID ed è generalmente associata alla parola chiave AUTO_INCREMENT. Ciò significa che il valore aumenta automaticamente quando vengono creati nuovi record.

Esempio 1 (MySQL)

Crea una nuova tabella e imposta la chiave primaria sulla colonna ID.

Utenti CREATE TABLE (
id int NOT NULL AUTO_INCREMENT,
first_name varchar (255),
last_name varchar (255) NOT NULL,
indirizzo varchar (255),
email varchar (255),
CHIAVE PRIMARIA (id)
);

Esempio 2 (MySQL)

Modifica una tabella esistente e imposta la chiave primaria sulla colonna first_name.

Utenti ALTER TABLE
AGGIUNGI TASTO PRIMARIO (first_name);

Chiave esterna

Una chiave esterna può essere applicata a una o più colonne e viene utilizzata per collegare 2 tabelle insieme in un database relazionale.

Come mostrato nel diagramma seguente, la tabella che contiene la chiave esterna è chiamata chiave figlio, mentre la tabella che contiene la chiave di riferimento o chiave candidata è chiamata tabella padre.

Chiavi MySQL

Ciò significa essenzialmente che i dati della colonna sono condivisi tra 2 tabelle, poiché una chiave esterna impedisce anche l'inserimento di dati non validi che non sono presenti anche nella tabella padre.

Esempio 1 (MySQL)

Crea una nuova tabella e trasforma le colonne che fanno riferimento a ID in altre tabelle in chiavi esterne.

CREA TABELLA ordini (
id int NOT NULL,
user_id int,
product_id int,
CHIAVE PRIMARIA (id),
CHIAVE ESTERA (id_utente) RIFERIMENTI utenti (ID),
CHIAVE ESTERA (product_id) RIFERIMENTI prodotti (id)
);

Esempio 2 (MySQL)

Modifica una tabella esistente e crea una chiave esterna.

Ordini ALTER TABLE
AGGIUNGI TASTO ESTERO (user_id) REFERENCES utenti (id);

indici

Gli indici sono attributi che possono essere assegnati a colonne che vengono frequentemente ricercate per rendere il recupero dei dati un processo più rapido ed efficiente.

Ciò non significa che ogni colonna debba essere trasformata in un indice, poiché richiede più tempo per l'aggiornamento di una colonna con un indice rispetto a una colonna senza. Questo perché quando si aggiornano le colonne indicizzate, anche l'indice stesso deve essere aggiornato.

indici
NomeDescrizione
CREA INDICECrea un indice chiamato "idx_test" sulle colonne nome e cognome della tabella degli utenti. In questo caso, sono consentiti valori duplicati.
CREA INDICE idx_test
Utenti ON (nome, cognome);
CREA UN INDICE UNICOCome sopra, ma nessun valore duplicato.

CREA UN INDICE UNICO idx_test
Utenti ON (nome, cognome);
INDICE DI GOCCIARimuove un indice.

Utenti ALTER TABLE
DROP INDEX idx_test;

Si unisce

In SQL, una clausola JOIN viene utilizzata per restituire un set di risultati che combina dati da più tabelle, basato su una colonna comune che è presente in entrambi

Esistono diversi join disponibili da utilizzare:-

  • Inner Join (impostazione predefinita): Restituisce tutti i record con valori corrispondenti in entrambe le tabelle.
  • Sinistra Join: Restituisce tutti i record della prima tabella, insieme a tutti i record corrispondenti della seconda tabella.
  • Partecipa a destra: Restituisce tutti i record dalla seconda tabella, insieme a tutti i record corrispondenti dalla prima.
  • Partecipazione completa: Restituisce tutti i record da entrambe le tabelle in caso di corrispondenza.

Un modo comune di visualizzare come funzionano i join è questo:

MySQL Joins

Nel seguente esempio, verrà utilizzato un join interno per creare una nuova vista unificante che combina la tabella degli ordini e quindi 3 diverse tabelle

Sostituiremo user_id e product_id con le colonne nome e cognome dell'utente che ha effettuato l'ordine, insieme al nome dell'articolo che è stato acquistato.

Tabella di esempio di MySQL

SELEZIONa ordini.id, nomeutente.first, nome utente, nome.prodotto come 'nome prodotto'
DA ordini
Utenti INNER JOIN su ordini.utente_id = utenti.id
INNER JOIN prodotti su ordini.prodotto_id = products.id;

Restituirebbe un set di risultati che assomiglia a:

Tabella di esempio di MySQL

Visualizza

Una vista è essenzialmente un set di risultati SQL che viene archiviato nel database sotto un'etichetta, quindi è possibile tornare ad esso in un secondo momento, senza dover rieseguire la query. Questi sono particolarmente utili quando hai una costosa query SQL che potrebbe essere necessaria più volte, quindi invece di eseguirla più e più volte per generare lo stesso set di risultati, puoi semplicemente farlo una volta e salvarla come vista.

Creazione di viste

Per creare una vista, puoi farlo in questo modo:

CREA VISUALIZZA Priority_user AS
SELEZIONA * DA utenti
WHERE country = "Regno Unito";

Quindi, in futuro, se è necessario accedere al set di risultati archiviato, è possibile farlo in questo modo:

SELEZIONA * DA [prioritario_utente];

Sostituzione delle viste

Con il comando CREA O SOSTITUISCI, è possibile aggiornare una vista.

CREA O SOSTITUISCI VISUALIZZA [Priority_users] AS
SELEZIONA * DA utenti
WHERE country = 'United Kingdom' OR country = 'USA';

Eliminazione di visualizzazioni

Per eliminare una vista, utilizzare semplicemente il comando DROP VIEW.

DROP VIEW priority_users;

Conclusione

La maggior parte dei siti Web sul Web di oggi utilizza i database relazionali in qualche modo. Ciò rende SQL un linguaggio prezioso da conoscere, in quanto consente di creare siti Web e sistemi più complessi e funzionali.

Assicurati di aggiungere questa pagina ai segnalibri, quindi in futuro, se stai lavorando con SQL e non ricordi del tutto un operatore specifico, come scrivere una determinata query o sei semplicemente confuso su come funzionano i join, allora avrai un cheat sheet a portata di mano che è pronto, pronto e in grado di aiutare.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map