SQL Tutorial: SQL è uno Structured Query Language, ovvero un linguaggio informatico per l’archiviazione, la manipolazione e il recupero dei dati archiviati in un database relazionale. Tutti i sistemi di gestione di database relazionali (RDMS) come MySQL, MS Access, Oracle, Sybase, Informix, Postgres e SQL Server utilizzano SQL come linguaggio di database standard.
Inoltre, usano dialetti diversi, come:
- MS SQL Server utilizzando T-SQL,
- Oracle utilizzando PL / SQL,
- La versione di MS Access di SQL si chiama JET SQL (formato nativo) ecc.
Vantaggi
Iniziamo il nostro SQL Tutorial iniziando dalle funzionalità di base
Creare un database
Per creare un database:
CREATE DATABASE DatabaseName;
Selezionare un database
Per mostrare tutti i database esistenti
SQL> SHOW DATABASES;
per selezionarne uno digitare
USE DatabaseName;
Cancellare un database
Per cancellare un database basta digitare
DROP DATABASE DatabaseName;
Continuaimo il nostro Sql tutorial con le query relative alla tabelle
Creare una tabella
Per creare tabelle in un database, si utilizza CREATE TABLE
CREATE TABLE table_name(
column1 datatype NOT NULL,
column2 datatype,
column3 datatype,
…..
columnN datatype,
PRIMARY KEY( one or more columns )
);
Il minimo necessario per creare una tabella in SQL è dichiarare il nome della colonna, i tipi di dati e la lunghezza. Con NOT NULL indichiamo che il campo non può essere vuoto. Con PRIMARY KEY indichiamo la chiave primaria della tabella (non può essere ripetuta tra i record).
Cancellare una tabella
Per cancellare una tabella in un database, si utilizza DROP TABLE
DROP TABLE table_name;
Inserire record in una tabella
Ci sono due modi per inserire un record all’interno di una tabella. Il primo
INSERT INTO TABLE_NAME (column1, column2, column3,…columnN)
VALUES (value1, value2, value3,…valueN);
dove column1, column2, column3,…columnN sono i nomi delle colonne della tabella dove si vuole inserire il valore.
Inoltre è possibile omettere il nome delle colonne, l’ordine dei valori da inserire seguirà l’ordine delle colonne alla creazione della tabella.
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,…valueN);
Continuaimo il nostro Sql tutorial con le query relative all’estrazione dei dati
SELECT
L’istruzione SELECT viene utilizzata per recuperare i dati da una tabella del database e restituisce questi dati sotto forma di tabella dei risultati.
SELECT column1, column2, columnN FROM table_name;
oppure possiamo selezionare tutte le colonne con la seguente istruzione:
SELECT * FROM table_name;
Una clausola JOIN viene utilizzata per combinare righe da due o più tabelle, in base a una colonna correlata tra loro. Abbiamo diversi tipi di JOIN, vediamo graficamente il loro significato:
INNER JOIN
Restituisce i record con valori corrispondenti in entrambe le tabelle
SELECT table1.column1, table2.column2…
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;
LEFT JOIN
Restituisce tutti i record dalla tabella a sinistra e i record corrispondenti dalla tabella a destra
SELECT table1.column1, table2.column2…
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;
RIGHT JOIN
Restituisce tutte le righe dalla tabella a destra, anche se non ci sono corrispondenze nella tabella a sinistra.
SELECT table1.column1, table2.column2…
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field;
FULL JOIN
Restituisce le righe quando c’è una corrispondenza in una delle tabelle.
SELECT table1.column1, table2.column2…
FROM table1
FULL JOIN table2
ON table1.common_field = table2.common_field;
Sql Tutorial: Operatori
Assegnazione
Assegnano un valore a una variabile o a un campo:
- = Esprime un’assegnazione e non restituisce alcun valore
- := Esprime un’assegnazione di un valore ad una variabile non ancora istanziata e non restituisce alcun valore
Confronto
Per determinare uguaglianze e disuguaglianze tra valori e ad effettuare ricerche all’interno dei dati.
- = Esprime uguaglianza tra due valori
- < Stabilisce se un valore è minore di un altro
- > Stabilisce se un valore è maggiore di un altro
- <= Stabilisce se un valore è minore o uguale di un altro
- >= Stabilisce se un valore è maggiore o uguale di un altro
- <> Stabilisce se due valori sono diversi tra loro
- != equivale a <>
- IS Per verificare se un valore è NULL, oppure un valore booleano (TRUE, FALSE, UNKNOWN)
- LIKE Esprime somiglianza tra due valori letterali: con l’operatore LIKE è possibile usare, per i confronti, i caratteri speciali % (sostituisce un arbitrario numero di lettere) e _ (sostituisce una lettera arbitraria)
- BETWEEN … AND Un valore compreso tra due valori
- IN Se un valore è contenuto in una lista di valori
- EXISTS Stabilisce se una determinata subquery restituisce un valore
- ANY o SOME Stabilisce se una determinata subquery restituisce almeno uno dei valori specificati
- ALL Stabilisce se una determinata subquery restituisce tutti i valori desiderati
- E i rispettivi negativi con NOT:
IS NOT
NOT LIKE
NOT BETWEEN
NOT IN
NOT EXISTS - SIMILAR TO verifica se una stringa corrisponde a una data espressione regolare. Il complementare è NOT SIMILAR TO
- REGEXP verifica se una stringa corrisponde a una data espressione regolare. Il complementare è NOT REGEXP
Aritmetici
Restituiscono il risultato di un operazione aritmetica corrispondente (accetta interi o decimali).
- + addizione
- – sottrazione
- * moltiplicazione
- / divisione
- MOD Resto di una divisione
- DIV Parte intera di una divisione
Condizionali
- WHERE (dove) serve a definire criteri di ricerca mirati
Logici
Operatori logici booleani AND (e), OR (o, oppure), NOT (non), XOR (detto anche “OR esclusivo”)
- AND restituisce il valore TRUE se e solo se entrambi gli operandi sono veri
- OR restituisce TRUE se e solo se almeno uno degli operandi è vero
- NOT falso se il valore è vero, vero se il valore è falso
- XOR restituisce TRUE se e solo se uno solo degli operandi è vero
SQLTutorial: Data Types
Numerici
DATA TYPE | Esempio | |
---|---|---|
bigint | -9,223,372,036,854,775,808 | |
int | -2,147,483,648 | |
smallint | -32,768 | |
tinyint | 0 | |
bit | 0 | |
decimal | -10^38 +1 | |
numeric | -10^38 +1 | |
money | -922,337,203,685,477.5808 | |
smallmoney | -214,748.3648 | |
float | -1.79E + 308 | |
real | -3.40E + 38 |
Data e Time
DATA TYPE | FROM | |
---|---|---|
datetime | Jan 1, 1753 | |
smalldatetime | Jan 1, 1900 | |
date | June 30, 1991 | |
time | 12:30 P.M. |
Strings
char – varchar – varchar(max) – text
SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul modello relazionale (RDBMS).
Sviluppatore: Donald Chamberlin
Genere: creazione, interrogazione, gestione database.
Data prima versione: 1974
Ultima versione: SQL:2011
Paradigmi: Multiparadigma
Estensioni: .sql