SlideShare une entreprise Scribd logo
1  sur  17
Introduzione a SQL

Primi concetti con SQL
Prof. Giuseppe Sportelli
Tipi linguaggi supportati da SQL
Linguaggio DDL definizione dati
Linguaggio DML modifica dei dati
Linguaggio QL interrogazione dei dati
Linguaggio DCL controllo del database
Linguaggio DDL
Per la definizione delle tabelle e delle relazioni (solo InnoDB)
Insiemi di dati notevoli ammessi da Mysql
TINYINT 1 byte da 0 a 255 o da -127 a +128 con segno
SMALLINT 2 byte da 0 a 65535 senza segno e da -32767 a 32768 con segno
INTEGER o MEDIUMINT a 4 byte
BIGINT a 8 byte
DECIMAL (P,Q) Numeri reali con p cifre di cui q cifre per la mantissa e p-q cifre per
la caratteristica (in binario)
DOUBLE a 8 byte con eventualmente precisione Q o REAL o FLOAT reali a 4 byte
sempre di precisione Q;
CHAR(N) stringa di lunghezza fissa di n caratteri
VARCHAR(N) stringa di lunghezza fino a n caratteri
TEXT, MEDIUMTEXT, LONGTEXT variabili stringa grandi
BLOB, MEDIUMBLOB e LONGBLOB per dati binari con dimensioni fino a 4 Giga
byte (utili per immagazzinare files)
DATA/TIME tipo dati per le date egli orari
ENUM e SET tipi enumerativi
Creazione della tabella
Sintassi del comando
CREATE TABLE NOME TABELLA
(NOME CAMPO1 TIPO1 [NOT NULL], NOME
CAMPO2 TIPO2 [NOT NULL],...,NOME
CAMPON TIPO N [NOT NULL], PRIMARY KEY
NOME CAMPO CHIAVE) [ENGINE=INNODB];
NOT NULL indica valore non nullo. PRIMARY KEY
LA CHIAVE PRIMARIA, ENGINE INNODB dI
adottare la gestione delle tabelle mediante InnoDB.
Esempio 1
Creare una tabella conti correnti con i seguenti campi:
cod_conto, nome, cognome, saldo, data, tasso di
interesse:

create table conti_correnti (cod_conto char(10) , nome varchar(25) not
null, cognome varchar(25) not null, saldo decimal(15,3) not null,
data_saldo date not null, tasso decimal(4,2), primary key (cod_conto))
engine=Innodb;
Inserire dei dati nella tabella
INSERT INTO NOME TABELLA VALUES (valore1, valore2,
....,valoren);
Notare che è sintassi contratta devo richiamare i campi così come sono
stati creati;
Le stringhe e le date sono fra apici singoli
Se non ricordo l'ordine dei campi devo richiamare il comando SQL con
la sintassi competa:
INSERT INTO NOME TABELLA NOME CAMPO1,..., NOME
CAMPON VALUES (valore1, valore2, ....,valoren);
Esempio 2
inserire i dati di 5 correntisti nella tabella
conti_correnti
vediamo per 1 valore:
insert into conti_correnti values ('0001','gennaro','esposito',1234.5,'2008-0505',3.895);
Esempio 3
Per aggiungere un campo alla tabella
ALTER TABLE NOME TABELLA ADD NOME
CAMPO1 TIPO 1 [NOT NULL] AFTER |
BEFORE CAMPO ESISTENTE;
Per eliminare un campo dalla tabella
ALTER TABLE NOME TABELLA DROP NOME
CAMPO1,..., NOME CAMPON;
Per vedere la struttura della tabella
DESC NOMETABELLA;
Comandi Sql per la manipolazione dati
Comandi per manipolare date
Comandi per manipolare stringhe
Comandi per la manipolazione dei dati numerici
Comandi per gestire date
Funzione Year restituisce l'anno di una data
Funzione Month e Day mese e giorno di una data
Funzione DateDiff Valuta la differenza fra due date ad esempio select *
from conti_correnti 'where datediff('2008-01-01',data_saldo) > 30;
Visualizza i dati con data_saldo superiore a 30 giorni.
Funzione Data_Format per convertire la data da un formato ad un altro
ad esempio
Data_Format('2008-01-03','%W %M %Y') restituisce data in formato
giorno esteso mese anno.
%W indica giorno settimana esteso %w giorno numerico da 1 a 31,
%M mese esteso, %m mese numerico.
Funzioni per le stringhe
Funzione Concat per concatenare più stringhe in campi
Concat(stringa1,stringa2,..,ecc)
Funzione Upper e Lower per conversione da minuscolo a maiuscolo e viceversa
Funzione per eliminare spazi Trim, eliminare spazi a sinistra Ltrim e a destra
Rtrim
Funzione Substring(stringa, inizio, lunghezza) estrae una stringa dal carattere
indicato come iniziale e di lunghezza indicato nell'argomento.
Funzione replace rimpiazza una sequenza di caratteri in una stringa
Replace(stringa,caratteri vecchi,nuovi caratteri)
Funzione Length per la lunghezza di una stringa
Funzioni di calcolo numerico
Div,Mod divisione e resto intero
Power (base,esponente) calcola la potenza di un
numero
Exp, ln,log2, log10 funzioni trascendenti
Sqrt radice quadrata
Applicazione delle funzioni
Possono essere applicate come campo calcolato o
come criterio da valutare
Se descritto come campo calcolato si può utilizzare la
definizione di alias.
Ad esempio
SELECT NOME CAMPO1, NOMECAMPO2,
...FUNZIONE(NOMECAMPI) AS ALIAS FROM
TABELLA WHERE CRITERIO
Funzioni di aggregazione
Permettono di aggregare i dati secondo uno o più
criteri
L'espressione generale è:
Select nomecamp1, nomecampo.
funzione_aggregazione(nomecampo) from tabella
where criterio group by nome campo having criterio.
La differenza fra where e having che la clausola where
prima li filtra e la clausola having li raggruppo dopo
che sono stati filtrati.
Funzioni di aggregrazione
Count conteggio
Max e Min massimo e minimo di un campo
Sum, Avg somma e media dei campi
Supponiamo di avere la tabella movimenti
cod_mov cod_conto importo
data_movimento
tipo
1 0001
1000
2008-01-13 assegno
2 0002
-1050
2008-04-13 bonifico
3 0004
-500
2008-04-30 pos
4 0005
5000
2008-01-05 bonifico
5 0002
454
2007-11-03 pos
6 0004
545,25
2007-05-06 assegno
Raggruppiamo i movimenti per conto
Select * from movimenti gruop by cod_conto;
Visualizza 4 righe quanti sono i codici di conto presenti. Le righe
visualizzate sono le prime intercettate nella tabella.
Select *,sum(importo) as saldo from movimenti group by cod_conto;
Effettua la somma degli importo dei movimenti di ciascun conto e lo
assegna all'alias saldo raggruppando il tutto per cod_conto.
Select *,sum(importo) as saldo from movimenti group by cod_conto
having saldo>0;
In questa ultima query calcolo il saldo e poi visualizza i saldi dei conti
raggruppati per conto con saldo positivo.
Fine Unità
Prof. Giuseppe Sportelli

Contenu connexe

En vedette

Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...
Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...
Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...KEA s.r.l.
 
I. Tommasi - I risultati economici delle aziende agricole al femminile
I. Tommasi - I risultati economici delle aziende agricole al femminileI. Tommasi - I risultati economici delle aziende agricole al femminile
I. Tommasi - I risultati economici delle aziende agricole al femminileIstituto nazionale di statistica
 
Minisito_Durex_Lancellotti_Invernizzi
Minisito_Durex_Lancellotti_InvernizziMinisito_Durex_Lancellotti_Invernizzi
Minisito_Durex_Lancellotti_InvernizziRoberto Lancellotti
 
P&G Business Game 2012: Gillette Venus
P&G Business Game 2012: Gillette VenusP&G Business Game 2012: Gillette Venus
P&G Business Game 2012: Gillette VenusFrancesco Varano
 
Presentazione Dso e Gps
Presentazione Dso e GpsPresentazione Dso e Gps
Presentazione Dso e Gpsdinosolari
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai databaseMaurizio Napolitano
 
Working capital introduction
Working capital introductionWorking capital introduction
Working capital introductionTemidara Adeosun
 
I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...
I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...
I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...Digital for Academy
 
SQL Tutorial - Basic Commands
SQL Tutorial - Basic CommandsSQL Tutorial - Basic Commands
SQL Tutorial - Basic Commands1keydata
 
WORKING CAPITAL MANAGEMENT
WORKING CAPITAL MANAGEMENTWORKING CAPITAL MANAGEMENT
WORKING CAPITAL MANAGEMENTipermeeta
 

En vedette (14)

Il linguaggio SQL
Il linguaggio SQLIl linguaggio SQL
Il linguaggio SQL
 
Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...
Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...
Argo CMS: impaginazione automatica in Word con formattazione di testi, tabell...
 
Introduzione al datamining
Introduzione al dataminingIntroduzione al datamining
Introduzione al datamining
 
I. Tommasi - I risultati economici delle aziende agricole al femminile
I. Tommasi - I risultati economici delle aziende agricole al femminileI. Tommasi - I risultati economici delle aziende agricole al femminile
I. Tommasi - I risultati economici delle aziende agricole al femminile
 
Minisito_Durex_Lancellotti_Invernizzi
Minisito_Durex_Lancellotti_InvernizziMinisito_Durex_Lancellotti_Invernizzi
Minisito_Durex_Lancellotti_Invernizzi
 
P&G Business Game 2012: Gillette Venus
P&G Business Game 2012: Gillette VenusP&G Business Game 2012: Gillette Venus
P&G Business Game 2012: Gillette Venus
 
Database introduzione
Database introduzioneDatabase introduzione
Database introduzione
 
Presentazione Dso e Gps
Presentazione Dso e GpsPresentazione Dso e Gps
Presentazione Dso e Gps
 
Introduzione al SQL e ai database
Introduzione al SQL e ai databaseIntroduzione al SQL e ai database
Introduzione al SQL e ai database
 
Working capital introduction
Working capital introductionWorking capital introduction
Working capital introduction
 
I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...
I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...
I Mille volti della Nutrizione - Integratori alimentari: dal Mercato ai Consu...
 
SQL : introduction
SQL : introductionSQL : introduction
SQL : introduction
 
SQL Tutorial - Basic Commands
SQL Tutorial - Basic CommandsSQL Tutorial - Basic Commands
SQL Tutorial - Basic Commands
 
WORKING CAPITAL MANAGEMENT
WORKING CAPITAL MANAGEMENTWORKING CAPITAL MANAGEMENT
WORKING CAPITAL MANAGEMENT
 

Similaire à SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione

IBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerIBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerRiccardo De Mattia
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concettiVincenzo De Maio
 
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...laboratoridalbasso
 
Access parte terza
Access parte terzaAccess parte terza
Access parte terzaMatekanc
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStudiabo
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)STELITANO
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandasStudiabo
 

Similaire à SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione (20)

primi comandi SQL con Mysql
primi comandi SQL con Mysqlprimi comandi SQL con Mysql
primi comandi SQL con Mysql
 
Sql 1
Sql 1Sql 1
Sql 1
 
Basi Di Dati 03
Basi Di Dati 03Basi Di Dati 03
Basi Di Dati 03
 
IBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL ServerIBM i db2 udb vs Microsoft SQL Server
IBM i db2 udb vs Microsoft SQL Server
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Dispensa di PL-SQL
Dispensa di PL-SQLDispensa di PL-SQL
Dispensa di PL-SQL
 
Sql stored procedures
Sql stored proceduresSql stored procedures
Sql stored procedures
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concetti
 
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
Ldb 25 strumenti gis e webgis_2014-05-15 gullotta - 4 tabelle attributi e lor...
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 
Basi Di Dati 02
Basi Di Dati 02Basi Di Dati 02
Basi Di Dati 02
 
Access parte terza
Access parte terzaAccess parte terza
Access parte terza
 
Sql 3
Sql 3Sql 3
Sql 3
 
Strutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggettiStrutture dati 04-funzionicustom-classioggetti
Strutture dati 04-funzionicustom-classioggetti
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)
 
MySQL
MySQLMySQL
MySQL
 
SQL Server2000
SQL Server2000SQL Server2000
SQL Server2000
 
Python advanced 01-numpypandas
Python advanced 01-numpypandasPython advanced 01-numpypandas
Python advanced 01-numpypandas
 

Plus de I.S.I.S. "Antonio Serra" - Napoli

Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileI.S.I.S. "Antonio Serra" - Napoli
 

Plus de I.S.I.S. "Antonio Serra" - Napoli (20)

La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Linguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e OggettiLinguaggio Java - Classi e Oggetti
Linguaggio Java - Classi e Oggetti
 
Linguaggio C++ - Basi
Linguaggio C++ - BasiLinguaggio C++ - Basi
Linguaggio C++ - Basi
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
I cicli in Python 3
I cicli in Python 3I cicli in Python 3
I cicli in Python 3
 
Video python3 n2
Video python3 n2Video python3 n2
Video python3 n2
 
I sotto programmi in Python 3
I sotto programmi in Python 3I sotto programmi in Python 3
I sotto programmi in Python 3
 
Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1
 
Nuova ECLD - Modulo Online Collaboration n.2
Nuova ECLD - Modulo Online Collaboration n.2Nuova ECLD - Modulo Online Collaboration n.2
Nuova ECLD - Modulo Online Collaboration n.2
 
Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2
 
Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2Nuova ECDL - Modulo Online Essentials n.2
Nuova ECDL - Modulo Online Essentials n.2
 
Nuova ECDL - Modulo Presentation n.3
Nuova ECDL - Modulo Presentation n.3Nuova ECDL - Modulo Presentation n.3
Nuova ECDL - Modulo Presentation n.3
 
Nuova ECDL - Modulo Presentation n.2
Nuova ECDL - Modulo Presentation n.2Nuova ECDL - Modulo Presentation n.2
Nuova ECDL - Modulo Presentation n.2
 
Nuova ECDL - Word Processing
Nuova ECDL - Word ProcessingNuova ECDL - Word Processing
Nuova ECDL - Word Processing
 
Nuova ECDL - Word Processing n.2
Nuova ECDL - Word Processing n.2 Nuova ECDL - Word Processing n.2
Nuova ECDL - Word Processing n.2
 
Nuova ECDL - Word Processing n.1
Nuova ECDL - Word Processing n.1Nuova ECDL - Word Processing n.1
Nuova ECDL - Word Processing n.1
 
Computer Essentials n.3 - Edizione 2020
Computer Essentials n.3 - Edizione 2020Computer Essentials n.3 - Edizione 2020
Computer Essentials n.3 - Edizione 2020
 
Java - Lezione 1
Java - Lezione 1 Java - Lezione 1
Java - Lezione 1
 
Modello TCP/IP
Modello TCP/IPModello TCP/IP
Modello TCP/IP
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
 

SQL Unità 1 linguaggio DDL; DML, funzioni di aggregazione

  • 1. Introduzione a SQL Primi concetti con SQL Prof. Giuseppe Sportelli
  • 2. Tipi linguaggi supportati da SQL Linguaggio DDL definizione dati Linguaggio DML modifica dei dati Linguaggio QL interrogazione dei dati Linguaggio DCL controllo del database
  • 3. Linguaggio DDL Per la definizione delle tabelle e delle relazioni (solo InnoDB) Insiemi di dati notevoli ammessi da Mysql TINYINT 1 byte da 0 a 255 o da -127 a +128 con segno SMALLINT 2 byte da 0 a 65535 senza segno e da -32767 a 32768 con segno INTEGER o MEDIUMINT a 4 byte BIGINT a 8 byte DECIMAL (P,Q) Numeri reali con p cifre di cui q cifre per la mantissa e p-q cifre per la caratteristica (in binario) DOUBLE a 8 byte con eventualmente precisione Q o REAL o FLOAT reali a 4 byte sempre di precisione Q; CHAR(N) stringa di lunghezza fissa di n caratteri VARCHAR(N) stringa di lunghezza fino a n caratteri TEXT, MEDIUMTEXT, LONGTEXT variabili stringa grandi BLOB, MEDIUMBLOB e LONGBLOB per dati binari con dimensioni fino a 4 Giga byte (utili per immagazzinare files) DATA/TIME tipo dati per le date egli orari ENUM e SET tipi enumerativi
  • 4. Creazione della tabella Sintassi del comando CREATE TABLE NOME TABELLA (NOME CAMPO1 TIPO1 [NOT NULL], NOME CAMPO2 TIPO2 [NOT NULL],...,NOME CAMPON TIPO N [NOT NULL], PRIMARY KEY NOME CAMPO CHIAVE) [ENGINE=INNODB]; NOT NULL indica valore non nullo. PRIMARY KEY LA CHIAVE PRIMARIA, ENGINE INNODB dI adottare la gestione delle tabelle mediante InnoDB.
  • 5. Esempio 1 Creare una tabella conti correnti con i seguenti campi: cod_conto, nome, cognome, saldo, data, tasso di interesse: create table conti_correnti (cod_conto char(10) , nome varchar(25) not null, cognome varchar(25) not null, saldo decimal(15,3) not null, data_saldo date not null, tasso decimal(4,2), primary key (cod_conto)) engine=Innodb;
  • 6. Inserire dei dati nella tabella INSERT INTO NOME TABELLA VALUES (valore1, valore2, ....,valoren); Notare che è sintassi contratta devo richiamare i campi così come sono stati creati; Le stringhe e le date sono fra apici singoli Se non ricordo l'ordine dei campi devo richiamare il comando SQL con la sintassi competa: INSERT INTO NOME TABELLA NOME CAMPO1,..., NOME CAMPON VALUES (valore1, valore2, ....,valoren);
  • 7. Esempio 2 inserire i dati di 5 correntisti nella tabella conti_correnti vediamo per 1 valore: insert into conti_correnti values ('0001','gennaro','esposito',1234.5,'2008-0505',3.895);
  • 8. Esempio 3 Per aggiungere un campo alla tabella ALTER TABLE NOME TABELLA ADD NOME CAMPO1 TIPO 1 [NOT NULL] AFTER | BEFORE CAMPO ESISTENTE; Per eliminare un campo dalla tabella ALTER TABLE NOME TABELLA DROP NOME CAMPO1,..., NOME CAMPON; Per vedere la struttura della tabella DESC NOMETABELLA;
  • 9. Comandi Sql per la manipolazione dati Comandi per manipolare date Comandi per manipolare stringhe Comandi per la manipolazione dei dati numerici
  • 10. Comandi per gestire date Funzione Year restituisce l'anno di una data Funzione Month e Day mese e giorno di una data Funzione DateDiff Valuta la differenza fra due date ad esempio select * from conti_correnti 'where datediff('2008-01-01',data_saldo) > 30; Visualizza i dati con data_saldo superiore a 30 giorni. Funzione Data_Format per convertire la data da un formato ad un altro ad esempio Data_Format('2008-01-03','%W %M %Y') restituisce data in formato giorno esteso mese anno. %W indica giorno settimana esteso %w giorno numerico da 1 a 31, %M mese esteso, %m mese numerico.
  • 11. Funzioni per le stringhe Funzione Concat per concatenare più stringhe in campi Concat(stringa1,stringa2,..,ecc) Funzione Upper e Lower per conversione da minuscolo a maiuscolo e viceversa Funzione per eliminare spazi Trim, eliminare spazi a sinistra Ltrim e a destra Rtrim Funzione Substring(stringa, inizio, lunghezza) estrae una stringa dal carattere indicato come iniziale e di lunghezza indicato nell'argomento. Funzione replace rimpiazza una sequenza di caratteri in una stringa Replace(stringa,caratteri vecchi,nuovi caratteri) Funzione Length per la lunghezza di una stringa
  • 12. Funzioni di calcolo numerico Div,Mod divisione e resto intero Power (base,esponente) calcola la potenza di un numero Exp, ln,log2, log10 funzioni trascendenti Sqrt radice quadrata
  • 13. Applicazione delle funzioni Possono essere applicate come campo calcolato o come criterio da valutare Se descritto come campo calcolato si può utilizzare la definizione di alias. Ad esempio SELECT NOME CAMPO1, NOMECAMPO2, ...FUNZIONE(NOMECAMPI) AS ALIAS FROM TABELLA WHERE CRITERIO
  • 14. Funzioni di aggregazione Permettono di aggregare i dati secondo uno o più criteri L'espressione generale è: Select nomecamp1, nomecampo. funzione_aggregazione(nomecampo) from tabella where criterio group by nome campo having criterio. La differenza fra where e having che la clausola where prima li filtra e la clausola having li raggruppo dopo che sono stati filtrati.
  • 15. Funzioni di aggregrazione Count conteggio Max e Min massimo e minimo di un campo Sum, Avg somma e media dei campi Supponiamo di avere la tabella movimenti cod_mov cod_conto importo data_movimento tipo 1 0001 1000 2008-01-13 assegno 2 0002 -1050 2008-04-13 bonifico 3 0004 -500 2008-04-30 pos 4 0005 5000 2008-01-05 bonifico 5 0002 454 2007-11-03 pos 6 0004 545,25 2007-05-06 assegno
  • 16. Raggruppiamo i movimenti per conto Select * from movimenti gruop by cod_conto; Visualizza 4 righe quanti sono i codici di conto presenti. Le righe visualizzate sono le prime intercettate nella tabella. Select *,sum(importo) as saldo from movimenti group by cod_conto; Effettua la somma degli importo dei movimenti di ciascun conto e lo assegna all'alias saldo raggruppando il tutto per cod_conto. Select *,sum(importo) as saldo from movimenti group by cod_conto having saldo>0; In questa ultima query calcolo il saldo e poi visualizza i saldi dei conti raggruppati per conto con saldo positivo.