SlideShare a Scribd company logo
1 of 15
22/07/04 Ing. Ronchi Sergio 1
TIPI DI DATI
INTERI
• TINYINT(M) 1 byte
• SMALLINT(M) 2 byte
• MEDIUMINT(M) 3 byte
• INT (M) 4 byte (INTEGER è un sinonimo)
• BIGINT(M) 8 byte
NOTE:
(M) indica il numero di cifre visualizzate ed è opzionale
UNSIGNED ZEROFILL sono impostazioni opzionali possibili
22/07/04 Ing. Ronchi Sergio 2
TIPI DI DATI
NUMERI REALI
• FLOAT(X) virgola mobile con precisione X
• FLOAT(M,D) singola precisione (24)
• DOUBLE(M,D) doppia precizione (53) REAL è un sinonimo
• DECIMAL(M,D) le cifre sono memorizzate come caratteri NUMERIC è sinonimo
•
NOTE:
(M,D) indica il numero di cifre visualizzate e il numero di decimali ed è opzionale
ZEROFILL sono impostazioni opzionali possibili (non è permesso lo ZEROFILL)
22/07/04 Ing. Ronchi Sergio 3
TIPI DI DATI
DATA E ORA
• DATE data: formato standard YYYY-MM-DD
• DATETIME data e ora formato standard YYYY-MM-DD HH:MM:SS
• TIME dora nel formato HH:MM:SS
• TIMESTAMP(M) assume la data e l'ora dell'ultima operazione fatta sulla riga
• YEAR(2|4) anno a 2 o 4 cifre
umero di cifre visualizzate
22/07/04 Ing. Ronchi Sergio 4
TIPI DI DATI
STRINGHE
• CHAR(M) stringa di dimensione fissa (max 255 caratteri)
• VARCHAR(M) stringa di dimensione variabile (max 255 caratteri)
STRINGHE DI GRANDI DIMENSIONI
• TINYBLOB 2^8 caratteri (invece di BLOB anche TEXT)
• BLOB 2^16 caratteri (invece di BLOB anche TEXT)
• MEDIUMBLOB 2^24 caratteri (invece di BLOB anche TEXT)
• LONGBLOB 2^32 caratteri (invece di BLOB anche TEXT)
ALTRI TIPI
• ENUM('vero','falso') uno solo dei due valori
• SET('uno','due') nessuno, uno o più valori
22/07/04 Ing. Ronchi Sergio 5
DDL (data definition language)
CREATE TABLE CLIENTI
( CODCLI INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
NOME VARCHAR(20) NOT NULL,
DESCRIZIONE TEXT);
--------------------------------------------------
CREATE TABLE FATTURE
( NUMERO SMALLINT(6) UNSIGNED ZEROFILL NOT NULL,
DATA DATE,
CODCLI INTEGER REFERENCES CLIENTI (CODCLI)
ON UPDATE CASCADE,
PRIMARY KEY(NUMERO,DATA));
22/07/04 Ing. Ronchi Sergio 6
DDL (vincoli)
CREATE TABLE Persone
(Nome TEXT(30),
Cognome TEXT(30),
Provincia TEXT(2),
CONSTRAINT province_fk FOREIGN KEY (Provincia)
REFERENCES Procince);
CREATE UNIQUE INDEX essai_index
ON Persone (Nome,Cognome);
22/07/04 Ing. Ronchi Sergio 7
DDL (vincoli)
CREATE TABLE Customer
( number VARCHAR(40) NOT NULL,
name VARCHAR(100) NOT NULL,
ssn VARCHAR(50) NOT NULL,
age INTEGER NOT NULL,
CONSTRAINT cust_pk PRIMARY KEY (number),
UNIQUE ( ssn ),
CONSTRAINT age_check CHECK (age >= 0 AND age < 200) )
22/07/04 Ing. Ronchi Sergio 8
DDL (data definition language)
eliminazione:
DROP TABLE PRODOTTI;
modifica
ALTER TABLE CLIENTI
ADD COLUMN INDIRIZZO VARCHAR(50);
ALTER TABLE CLIENTI
ALTER COLUMN INDIRIZZO SET DEFAULT ‘Sconosciuto’
ALTER TABLE CLIENTI
DROP COLUMN DESCRIZIONE;
ALTER TABLE CLIENTI
ADD INDEX CERCA_NOME (NOME);
ALTER TABLE CLIENTI
MODIFY COLUMN NOME VARCHAR(50);
ALTER TABLE CLIENTI
CHANGE COLUMN NOME NAME VARCHAR(50);
22/07/04 Ing. Ronchi Sergio 9
DML (data manipulation language)
Inserimento dati:
INSERT INTO PRODOTTI (NOME, PREZZO)
VALUES ('Notebook',1000.50);
INSERT INTO PRODOTTI (NOME, PREZZO)
SELECT 'Scheda di Rete',45.50;
INSERT INTO CLIENTI (CODCLI, NOME, INDIRIZZO)
SELECT CODICE,RAGSOC,INDIRIZZO FROM ANAGRAFICA
22/07/04 Ing. Ronchi Sergio 10
DML (data manipulation language)
Eliminazione:
DELETE FROM PRODOTTI
WHERE CODPRO=999;
DELETE FROM ANAGRAFICA
WHERE YEAR(Data)<1900 AND PROVINCIA=‘MI’;
22/07/04 Ing. Ronchi Sergio 11
DML (data manipulation language)
Aggiornamento dati:
modifica il nome del prodotto con codice 23
UPDATE PRODOTTI SET
NOME='Hard Disk'
WHERE CODPRO=23;
modifica il prezzo, aumentandolo del 10%, di tutti i prodotti
UPDATE PRODOTTI SET
PREZZO=PREZZO*1.1;
modifica il prezzo, aumentandolo del 20% e la descrizione dei prodotti
con codice maggiore di 100
UPDATE PRODOTTI SET
PREZZO=PREZZO*1.2,
DESCRIZIONE ='Lusso'
WHERE CODPRO>100;
22/07/04 Ing. Ronchi Sergio 12
QUERIES (proiezione)
Visualizzare tutti i dati contenuti in una tabella:
SELECT * FROM PRODOTTI;
Selezione delle colonne (o dei campi)
SELECT NOME,PREZZO FROM PRODOTTI;
Selezione delle colonne (o dei campi) con alias
SELECT NOME 'Nome del prodotto',
PREZZO 'Prezzo di Vendita' FROM PRODOTTI;
Selezione delle colonne con esecuzioni di operazioni sulle colonne:
SELECT NOME 'Nome del prodotto',
PREZZO*(1+IVA /100) 'Prezzo con IVA' FROM PRODOTTI;
22/07/04 Ing. Ronchi Sergio 13
QUERIES (utilizzo di funzioni)
Solitamente le funzioni interne dipendono dal DBMS utilizzato, tuttavia alcune sono comuni o
abbastanza simili.
Funzioni relative alle stringhe:
Concatenazione
SELECT concat(COGNOME, ',' , NOME) FROM STUDENTI; (MYSQL)
SELECT COGNOME || ',' || NOME FROM STUDENTI; (ORACLE)
SELECT COGNOME & ',' & NOME FROM STUDENTI; (ACCESS)
Sottostringa
SELECT substring(NOME,1,3) FROM STUDENTI;
SELECT MID(NOME,1,3) FROM STUDENTI; (ACCESS)
Altre funzioni stringa:
LENGTH(str) lunghezza
INSTR(str,'p') dà la posizione della prima occorrenza di 'p'
TRIM(str) elimina gli spazi prima e dopo la stringa
LEFT(str,5) cinque caratteriri a sistra (analogo RIGHT(6))
REPLACE(str,'www','w3') sostituzione di una sottostringa
22/07/04 Ing. Ronchi Sergio 14
QUERIES (utilizzo di funzioni)
Funzioni relative alle date o ore:
YEAR(data), MONTH(data), DAYOFMONTH(data), QUARTER(data),
DAYOFWEEK(data), DAYOFYEAR(data), WEEK(data), HOUR(data),
MINUTE(data), SECOND(data)
TO_DAYS('1999-01-02') => numero di giorni dall'anno 0
FROM_DAYS(729456) => l'opposto della precedente
DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
-> 'Saturday October 1997'
select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
NOW() fornisce la data attuale
22/07/04 Ing. Ronchi Sergio 15
QUERIES (utilizzo di funzioni)
Funzioni matematiche
Esiste un insieme notevole di tutte le principali funzioni matematiche,
tra le quali sicuramente importante è la funzione di arrotondamento:
ROUND(X,2) arrotonda con due decimali
Controllo
IF(VOTO>=6,'Sufficiente','Insufficiente')
IFNULL(PREZZO,'Non definito')

More Related Content

Viewers also liked (19)

Sql 2
Sql 2Sql 2
Sql 2
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
 
Java lezione 13
Java lezione 13Java lezione 13
Java lezione 13
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 
Sql 4
Sql 4Sql 4
Sql 4
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Java lezione 9
Java lezione 9Java lezione 9
Java lezione 9
 
Oracle 2 (sqlplus)
Oracle 2 (sqlplus)Oracle 2 (sqlplus)
Oracle 2 (sqlplus)
 
Sql 1
Sql 1Sql 1
Sql 1
 
Java lezione 8
Java lezione 8Java lezione 8
Java lezione 8
 
Sql 3
Sql 3Sql 3
Sql 3
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Oracle PL sql 2
Oracle PL sql 2Oracle PL sql 2
Oracle PL sql 2
 
Oracle 3 (sq lnet)
Oracle 3 (sq lnet)Oracle 3 (sq lnet)
Oracle 3 (sq lnet)
 
Java lezione 19
Java lezione 19Java lezione 19
Java lezione 19
 
Oracle PL sql 3
Oracle PL sql 3Oracle PL sql 3
Oracle PL sql 3
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
 

Similar to MySQL

Similar to MySQL (16)

Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)Love Your Database (ESC 2k16)
Love Your Database (ESC 2k16)
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 
XSLT
XSLT XSLT
XSLT
 
C4 Sql1
C4 Sql1C4 Sql1
C4 Sql1
 
primi comandi SQL con Mysql
primi comandi SQL con Mysqlprimi comandi SQL con Mysql
primi comandi SQL con Mysql
 
Database
DatabaseDatabase
Database
 
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data AnalysisIntroduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
Introduzione ai Big Data e alla scienza dei dati - Exploratory Data Analysis
 
What is new in C# 2018
What is new in C# 2018What is new in C# 2018
What is new in C# 2018
 
Database
DatabaseDatabase
Database
 
Creare tabelle sul database MySql
Creare tabelle sul database MySqlCreare tabelle sul database MySql
Creare tabelle sul database MySql
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Strutture dati 07-multiindex
Strutture dati 07-multiindexStrutture dati 07-multiindex
Strutture dati 07-multiindex
 
06 3 struct
06 3 struct06 3 struct
06 3 struct
 
C3 Ddl1
C3 Ddl1C3 Ddl1
C3 Ddl1
 
Python advanced 03-multiindex
Python advanced 03-multiindexPython advanced 03-multiindex
Python advanced 03-multiindex
 
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
 

More from Sergio Ronchi (14)

Java lezione 18
Java lezione 18Java lezione 18
Java lezione 18
 
Java lezione 17
Java lezione 17Java lezione 17
Java lezione 17
 
Java lezione 16
Java lezione 16Java lezione 16
Java lezione 16
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
 
Java lezione 7
Java lezione 7Java lezione 7
Java lezione 7
 
Java lezione 6
Java lezione 6Java lezione 6
Java lezione 6
 
Java lezione 5
Java lezione 5Java lezione 5
Java lezione 5
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
 
Java lezione 3
Java lezione 3Java lezione 3
Java lezione 3
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
 
Oracle PLSql 4
Oracle PLSql 4Oracle PLSql 4
Oracle PLSql 4
 
Oracle PL sql 1
Oracle PL sql 1Oracle PL sql 1
Oracle PL sql 1
 
Oracle 1
Oracle 1Oracle 1
Oracle 1
 
Sql 5
Sql 5Sql 5
Sql 5
 

MySQL

  • 1. 22/07/04 Ing. Ronchi Sergio 1 TIPI DI DATI INTERI • TINYINT(M) 1 byte • SMALLINT(M) 2 byte • MEDIUMINT(M) 3 byte • INT (M) 4 byte (INTEGER è un sinonimo) • BIGINT(M) 8 byte NOTE: (M) indica il numero di cifre visualizzate ed è opzionale UNSIGNED ZEROFILL sono impostazioni opzionali possibili
  • 2. 22/07/04 Ing. Ronchi Sergio 2 TIPI DI DATI NUMERI REALI • FLOAT(X) virgola mobile con precisione X • FLOAT(M,D) singola precisione (24) • DOUBLE(M,D) doppia precizione (53) REAL è un sinonimo • DECIMAL(M,D) le cifre sono memorizzate come caratteri NUMERIC è sinonimo • NOTE: (M,D) indica il numero di cifre visualizzate e il numero di decimali ed è opzionale ZEROFILL sono impostazioni opzionali possibili (non è permesso lo ZEROFILL)
  • 3. 22/07/04 Ing. Ronchi Sergio 3 TIPI DI DATI DATA E ORA • DATE data: formato standard YYYY-MM-DD • DATETIME data e ora formato standard YYYY-MM-DD HH:MM:SS • TIME dora nel formato HH:MM:SS • TIMESTAMP(M) assume la data e l'ora dell'ultima operazione fatta sulla riga • YEAR(2|4) anno a 2 o 4 cifre umero di cifre visualizzate
  • 4. 22/07/04 Ing. Ronchi Sergio 4 TIPI DI DATI STRINGHE • CHAR(M) stringa di dimensione fissa (max 255 caratteri) • VARCHAR(M) stringa di dimensione variabile (max 255 caratteri) STRINGHE DI GRANDI DIMENSIONI • TINYBLOB 2^8 caratteri (invece di BLOB anche TEXT) • BLOB 2^16 caratteri (invece di BLOB anche TEXT) • MEDIUMBLOB 2^24 caratteri (invece di BLOB anche TEXT) • LONGBLOB 2^32 caratteri (invece di BLOB anche TEXT) ALTRI TIPI • ENUM('vero','falso') uno solo dei due valori • SET('uno','due') nessuno, uno o più valori
  • 5. 22/07/04 Ing. Ronchi Sergio 5 DDL (data definition language) CREATE TABLE CLIENTI ( CODCLI INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, NOME VARCHAR(20) NOT NULL, DESCRIZIONE TEXT); -------------------------------------------------- CREATE TABLE FATTURE ( NUMERO SMALLINT(6) UNSIGNED ZEROFILL NOT NULL, DATA DATE, CODCLI INTEGER REFERENCES CLIENTI (CODCLI) ON UPDATE CASCADE, PRIMARY KEY(NUMERO,DATA));
  • 6. 22/07/04 Ing. Ronchi Sergio 6 DDL (vincoli) CREATE TABLE Persone (Nome TEXT(30), Cognome TEXT(30), Provincia TEXT(2), CONSTRAINT province_fk FOREIGN KEY (Provincia) REFERENCES Procince); CREATE UNIQUE INDEX essai_index ON Persone (Nome,Cognome);
  • 7. 22/07/04 Ing. Ronchi Sergio 7 DDL (vincoli) CREATE TABLE Customer ( number VARCHAR(40) NOT NULL, name VARCHAR(100) NOT NULL, ssn VARCHAR(50) NOT NULL, age INTEGER NOT NULL, CONSTRAINT cust_pk PRIMARY KEY (number), UNIQUE ( ssn ), CONSTRAINT age_check CHECK (age >= 0 AND age < 200) )
  • 8. 22/07/04 Ing. Ronchi Sergio 8 DDL (data definition language) eliminazione: DROP TABLE PRODOTTI; modifica ALTER TABLE CLIENTI ADD COLUMN INDIRIZZO VARCHAR(50); ALTER TABLE CLIENTI ALTER COLUMN INDIRIZZO SET DEFAULT ‘Sconosciuto’ ALTER TABLE CLIENTI DROP COLUMN DESCRIZIONE; ALTER TABLE CLIENTI ADD INDEX CERCA_NOME (NOME); ALTER TABLE CLIENTI MODIFY COLUMN NOME VARCHAR(50); ALTER TABLE CLIENTI CHANGE COLUMN NOME NAME VARCHAR(50);
  • 9. 22/07/04 Ing. Ronchi Sergio 9 DML (data manipulation language) Inserimento dati: INSERT INTO PRODOTTI (NOME, PREZZO) VALUES ('Notebook',1000.50); INSERT INTO PRODOTTI (NOME, PREZZO) SELECT 'Scheda di Rete',45.50; INSERT INTO CLIENTI (CODCLI, NOME, INDIRIZZO) SELECT CODICE,RAGSOC,INDIRIZZO FROM ANAGRAFICA
  • 10. 22/07/04 Ing. Ronchi Sergio 10 DML (data manipulation language) Eliminazione: DELETE FROM PRODOTTI WHERE CODPRO=999; DELETE FROM ANAGRAFICA WHERE YEAR(Data)<1900 AND PROVINCIA=‘MI’;
  • 11. 22/07/04 Ing. Ronchi Sergio 11 DML (data manipulation language) Aggiornamento dati: modifica il nome del prodotto con codice 23 UPDATE PRODOTTI SET NOME='Hard Disk' WHERE CODPRO=23; modifica il prezzo, aumentandolo del 10%, di tutti i prodotti UPDATE PRODOTTI SET PREZZO=PREZZO*1.1; modifica il prezzo, aumentandolo del 20% e la descrizione dei prodotti con codice maggiore di 100 UPDATE PRODOTTI SET PREZZO=PREZZO*1.2, DESCRIZIONE ='Lusso' WHERE CODPRO>100;
  • 12. 22/07/04 Ing. Ronchi Sergio 12 QUERIES (proiezione) Visualizzare tutti i dati contenuti in una tabella: SELECT * FROM PRODOTTI; Selezione delle colonne (o dei campi) SELECT NOME,PREZZO FROM PRODOTTI; Selezione delle colonne (o dei campi) con alias SELECT NOME 'Nome del prodotto', PREZZO 'Prezzo di Vendita' FROM PRODOTTI; Selezione delle colonne con esecuzioni di operazioni sulle colonne: SELECT NOME 'Nome del prodotto', PREZZO*(1+IVA /100) 'Prezzo con IVA' FROM PRODOTTI;
  • 13. 22/07/04 Ing. Ronchi Sergio 13 QUERIES (utilizzo di funzioni) Solitamente le funzioni interne dipendono dal DBMS utilizzato, tuttavia alcune sono comuni o abbastanza simili. Funzioni relative alle stringhe: Concatenazione SELECT concat(COGNOME, ',' , NOME) FROM STUDENTI; (MYSQL) SELECT COGNOME || ',' || NOME FROM STUDENTI; (ORACLE) SELECT COGNOME & ',' & NOME FROM STUDENTI; (ACCESS) Sottostringa SELECT substring(NOME,1,3) FROM STUDENTI; SELECT MID(NOME,1,3) FROM STUDENTI; (ACCESS) Altre funzioni stringa: LENGTH(str) lunghezza INSTR(str,'p') dà la posizione della prima occorrenza di 'p' TRIM(str) elimina gli spazi prima e dopo la stringa LEFT(str,5) cinque caratteriri a sistra (analogo RIGHT(6)) REPLACE(str,'www','w3') sostituzione di una sottostringa
  • 14. 22/07/04 Ing. Ronchi Sergio 14 QUERIES (utilizzo di funzioni) Funzioni relative alle date o ore: YEAR(data), MONTH(data), DAYOFMONTH(data), QUARTER(data), DAYOFWEEK(data), DAYOFYEAR(data), WEEK(data), HOUR(data), MINUTE(data), SECOND(data) TO_DAYS('1999-01-02') => numero di giorni dall'anno 0 FROM_DAYS(729456) => l'opposto della precedente DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); -> 'Saturday October 1997' select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s'); -> '22:23:00' NOW() fornisce la data attuale
  • 15. 22/07/04 Ing. Ronchi Sergio 15 QUERIES (utilizzo di funzioni) Funzioni matematiche Esiste un insieme notevole di tutte le principali funzioni matematiche, tra le quali sicuramente importante è la funzione di arrotondamento: ROUND(X,2) arrotonda con due decimali Controllo IF(VOTO>=6,'Sufficiente','Insufficiente') IFNULL(PREZZO,'Non definito')