Sei sulla pagina 1di 7

REFERENCE SQL PHP HTML

Esame di stato 2015

SQL
DDL
Comando
Creazione DB
Distruzione
DB
Creazione
tabella

Tipi di dato

Cancellare
tabella
Creazione
dominio

Sintassi
CREATE DATABASE nomedb;
CREATE DATABASE IF NOT EXISTS nomedb;
DROP DATABASE [IF EXISTS] nomedb;
CREATE TABLE nometabella {
Attributo Tipo [PRIMARY KEY] [AUTO_INCREMENT],
Attributo Tipo [REFERNCES Tabella.Campo],
Attributo Tipo [UNIQUE],
Attributo Tipo [NOT NULL],
PRIMARY KEY(Attributo, Attributo2),
FOREIGN KEY(Attributo, Attributo2) REFERENCES
TabellaB(AttributoB1, AttributoB2)
} [ON DELETE {NO ACTION | CASCADE | SET NULL},]
[ON UPDATE {NO ACTION | CASCADE | SET NULL} ];
varchar(n) = stringa di massimo n caratteri
date = data senza ora. Formato YYYY-MM-DD
datetime = data dal 1/1/1753 al 31/12/9999 con precisione 1/300
di secondo. Occupa 8B. Formato YYYY-MM-DD HH:MM:SS
timestamp = data con minor range (dal 1970 al 2038). Stesso
formato di datetime
decimal(p,s) = numero di p cifre di cui s decimali
char(n) = stringa di esattamente n caratteri
integer = intero 4B
smallint = intero 2B
float(n) = valore in virgola mobile, occupa 8B
numeric(p,s) = sinonimo di decimal
DROP TABLE [IF EXISTS] nometabella;
CREATE DOMAIN nomedominio
AS tipodato DEFAULT qualcosa
CHECK (VALUE > 0);
CREATE DOMAIN Voto
AS SMALLINT DEFAULT NULL
CHECK (VALUE > 0 AND VALUE <= 10);

Creazione
vista

Creazione
indice

DML
Comando
Condizioni

CREATE DOMAIN Area


AS CHAR(1) DEFAULT N
CHECK (VALUE IN {N, C, S});
CREATE [OR REPLACE] VIEW numdipendenti AS
SELECT D.NomeProgetto, count(*) AS NDipendenti
FROM Dipendenti D
GROUP BY NomeProgetto;
CREATE [UNIQUE] INDEX [IF NOT EXISTS] nomeindice
ON tabella(attributo, attributo2);

Sintassi
Attributo
Attributo
Attributo
Attributo
Attributo
Attributo
Attributo

> 12
BETWEEN 0 AND 10
== ciao
<> arrivederci
IS NULL
[NOT] in {a, b, c}
<> ALL {a, b, c} //EQUIVALE AL NOT IN

Inserimento
tuple
Selezione

Selezione con
group by

Aggiornamento

Cancellazione
Unione

Intersezione

Differenza

Subquery

Attributo == ANY {a, b, c} //EQUIVALE AL IN


Attributo LIKE ciao%tutt_ // rispetta il pattern specificato,
con % = stringa qualsiasi e _ = carattere qualsiasi
INSERT INTO tabella(Attributo1, Attributo2)
VALUES (v1, v2), (v3,v4);
SELECT [DISTINCT] Attr1, Attr2, AttrN
FROM tabella
WHERE condizione
SELECT Attr1, Attr2, count(*), sum(Attr3)
FROM tabella
[WHERE condizione]
GROUP BY Attr1, Attr2
HAVING count(*) > 10;
UPDATE tabella
SET Attributo = Attributo2 * Attributo3, Attributo2 =
Attributo4,
WHERE condizione;
DELETE FROM tabella
WHERE condizione;
SELECT Attributo1
FROM tabellaA
UNION
SELECT Attributo1
FROM tabellaB;
SELECT Attributo1
FROM tabellaA
INTERSECT
SELECT Attributo1
FROM tabellaB;
SELECT Attributo1
FROM tabellaA
MINUS
SELECT Attributo1
FROM tabellaB;
SELECT [DISTINCT] Attributo
FROM tabella (SELECT ... ) AS NuovaTabella
WHERE Attributo [NOT] IN (SELECT * FROM );

DCL (solo Oracle MySQL)


Comando
Sintassi
Creazione
CREATE USER nomeutente@localhost IDENTIFY BY miapassword;
utente
nomeutente @ apice localhost apice = stringa dettata dalla
sintassi di MySQL ( cos e basta). Localhost si riferisce al DB
sulla macchina stessa.
Concessione
GRANT {[SELECT,] [INSERT,] [UPDATE,] [DELETE,] | [ALL]}
privilegi
ON {nometabella | nomevista}
TO nomeutente
[WITH GRANT OPTION]
Rimozione
REVOKE {lista privilegi}
privilegi
ON {nometabella | nomevista}
FROM nomeutente
[CASCADE]
Lock tabella
LOCK TABLES
tabellaA [AS A] {READ [LOCAL] | WRITE [LOW PRIORITY]},
tabellaB [AS B] {READ [LOCAL] | WRITE [LOW PRIORITY]};
Unlock
UNLOCK TABLES;

Funzioni (solo Oracle MySQL)


Comando
Sintassi
Funzioni
count([DISTINCT] )
aggregate
sum
avg // media
max
min
Selezionare
SELECT DAY(2007-02-03); // 3
giorno dalla
SELECT DAYNAME(2007-02-03); // Wednesday
data
SELECT DAYOFWEEK(2007-02-03); // 4 = mercoled = Wednesday;
il conto 1 = domenica, 2 = luned, 3 = marted
Selezionare
SELECT YEAR(2007-02-03) //2007
qualcosa da
SELECT MONTH(2007-02-03) // 2
data/tempo
SELECT WEEK(2007-02-03) // 9, perch sarebbe la nona settimana
(range 0-53)
SELECT HOUR(10:01:02); //10
SELECT MINUTE(10:01:02); //01
SELECT SECOND(10:01:02); //02
Selezionare
SELECT NOW(); // 2015-06-03 17:34:00
tempo
corrente
Selezionare
anno corrente

SELECT YEAR(NOW());
possono essere annidati

PHP
Interazione con SQL
Comando
Sintassi
Connessione
$connessione = mysql_connect(127.0.0.1, user, password);
Selezione
mysql_select_db(nomeDatabase, $connessione); // oppure
database
mysql_query(USE nomeDatabase;, $connessione);
Esecuzione query $risultato = mysql_query($stringaSQL, $connessione);
La stringa contenente la query deve terminare con ;
Estrazione riga
$row = mysql_fetch_row($risultato);
echo $row[0];
Chiusura
mysql_close($connessione);
connessione

Passaggio di variabili
Comando
Sintassi
Recuperare
$var = $_REQUEST[nomeVariabile];
variabile
Verificare
esistenza
variabile
Passare
variabili hidden
Argomenti di
default

Array
Comando
Creazione array
Dimensione array
Aggiungere
elemento array
Iterare array
Eliminazione
elemento array

Creazione array
associativo

isset($var);
echo <form>;
echo <hidden name=nomeVariabile value=$codice/>;
echo </form>;
function pippo($parametro = 123) { }

Sintassi
$array= array(1, 2, 3, 4);
$size = count($array);
$array[count($array-1)] = $elem;
$array[ ] = $elem;
foreach($array as $elem) { } //attento alla posizione: prima
array, poi elem
$array= array(0, 1, 2, 3);
unset($array[2]);
$array= array_values($array);
La funzione array_values normalizza gli indici (senza,
salterebbe lindice tolto, che non un problema se si itera
col ciclo foreach)
$array= array(
$chiave => $valore,
$chiave1 => $valore1,

);
Le chiavi non devono necessariamente essere dello stesso tipo.
Stessa cosa per i valori.
$array[$chiave] = $valore;

Inserimento
array
associativo
Iterare array
foreach($array as $key
associativo
PHP Stringhe, funzioni di libreria e altro
Comando
Sintassi

=> $value) { }

Lunghezza di una
stringa
Occorrenze di
una stringa in
un altra
Substringa

String Tokenizer

Trovare
lordinata di un
carattere
Trovare il
carattere a
partire
dallordinata
Casuale tra due
numeri
Casting

$index = strlen($stringa);
Prima occorrenza: $index = strpos($stringa, $sottoStringa);
Ultima occorrenza: $index = strrpos($stringa, $sottoStringa);
$substring = substr($stringa, $indiceInizio, $lunghezza);
Se la lunghezza non specificata, considera tutto il pezzo
rimanente di stringa
$token = strtok($stringa, $separatore)// per inizializzare il
tokenizer
while($token !== false) // attento all operatore ! = =
$token = strtok($separatore);
$var = ord($carattere);
$var = chr($intero);

$var = rand($minimo,
Entrambi gli estremi
INT FLOAT
$var = 100/3;
var_dump float(33.3333333)

$massimo);
sono inclusi
STRING INT/FLOAT
$var = "123.35";
var_dump($var); string(6)

"123.35"

$var2 = $var + 0;

INT/FLOAT STRING
$var = 123 .
ciao;
var_dump($var); string(7)
"123ciao"

var_dump($var2);
float(123.35)

Variabili di sessione e cookie


Comando
Sintassi
Aprire sessione
session_start();
Usare variabili
$_SESSION[password] = ciao;
di sessione
$pass = $_SESSION[password];
Cancellare
unset($_SESSION[password]); // elimina singole
variabili di
$_SESSION = array(); // elimina tutte
sessione
Scrivere un
cookie

Leggere un
cookie
Verificare se un
cookie esiste
Cancellare
cookie

setcookie(
nomeIdentificativoDellaVariabile,
valoreAssunto,
time()+3600); // scadenza = tempo corrente + 1h
$variabile = $_COOKIE[nomeIdentificativoDellaVariabile];
isset($_COOKIE[blabla]);
setcookie(id, null);

HTML
Form
Comando
Moduli
Bottone invio
dati form
Casella di testo
Casella di testo
criptata
Menu a tendina

Bottoni scelta
singola
Bottoni
checkbox

Bottone
javascript

Sintassi
<form method=GET action=page.php></form>
<form method=POST action=page.php></form>
<input type=submit value=Premi per Inviare />
<input type=text name=nomeCasella />
Attributi: readonly, disabled, maxLenght=10
<input type=password name=nomeCasella />
<select name=auto>
<option value=BMW selected>BMW</option>
<option value=Audi>Audi</option> </select>
<input type=radio name=nomeGruppo valore=maschio checked
/>
<input type=radio name=nomeGruppo valore=femmina />
<input type="checkbox" name="nomeCheckbox" value="Bicicletta"
/>
<input type="checkbox" name=" nomeCheckbox "
value="Automobile" />
<input type="button" onclick="alert('Hello World!')"
value="Premimi />