[Pillola]Introduzione al MySQL per neofiti

Bene tra varie indecisioni e ripensamenti ho deciso di scrivere questo breve (direi fulminio) tutorial che DOVREBBE indirizzarvi sulla via del SQL e in particolare di MySQL .

Salterò la teoria sui database relazionali e sul sistema DBMS, se volte informazioni in merito il manuale ufficiale potrà esaurire e anche far straboccare il bicchiere della vostra curiosità.

Le conoscenze per affrontare queto tutorial sono un minimo di conoscenza di PHP ora e tanta pazienza e costanza dopo.

Iniziamo a dire che il nostro amato linguaggio (il PHP, intendo) ci mette a disposizione tutti i comandi di cui necessitiamo per interfacciare il nostro programma con MySql , cio ci rendera piu facile la vita e l’apprendimento.
Per iniziare e necessario dire che bisogna connettersi al DB , bene il comando che PHP ci mette a disposizione e : mysql_connect (host , username d’accesso al db , password d’accesso al db);

Ora spiegherò questo comando in modo piu dettagliato.

HOST:

è dove è installato MySQL, generalmente si tratta di localhost, che sia installato in locale o che sia installato su una macchina diversa dalla vostra.

USERNAME D’ACCESSO AL DB:

è l’ username che avere messo per accedere la vostro database durante l’installazione di MySQL, nel caso non vi lasci accedere con i dati da voi inseriti, allora provate ad accedere con root , nel caso in cui site ostati da latri i dati vi verranno froniti dall’amministratore del server.

PASSWORD D’ACCESSO AL DB:

idem come sopra solo che si tratta della password, se siete in locale e non vi lascia accedere con la paswword da voi settata provate a lasciarla in bianco, se siete hostati da altri l’amministratore (ancora una volta) vi fornirà i dati.

$host = "localhost";
$username = "......";
$password = ".......";
$connessione = mysql_connect($host,$username,password);

La variabile anteposta al comando mysql_connect() è essenziale (ovvimente la potete rinominare a vostro piacimento), il perché lo vederemo col prossimo comando.

mysql_close();

Questo comando serve (come potete immaginare) a chiudere la conessione col server MySQL, mi raccomendo di non lasciare connessioni aperte in giro, una volta finito l’utilizzo di una connessione chiudetela.

La sintassi è : mysql_close(NOME VARIABILE CON CUI CI SI E CONNESSI); Ecco spiegato perché è inportante anteporre una variabile al comando di conessione.

mysql_close($connessione);

Un altro comando che vi servira sara : mysql_select_db(NOME DB,CONNESSIONE)
Con questo comando selezzionerete il db sul quale effettuerete le vostre query .

$connessione(......,.......,.......);
$db_name : "ciciolina";
mysql_select_db($db_name);

Ora passiamo a vedere i comandi che PHP ci mette a disposizione per effetuare le nostre query su db , i comandi sono 2:

1) mysql_query(“QUERY”);

Questo comando ci mette a disposizione la possibilita di fare una query su db e mentre questa è anconra in esecuzione richiamare i dati che ha gia raccolto , cio è comporta una certa utilita nel caso in cui si abbia la necessita di effettuare controlli “immediati”, nel senso di non aspettare la fine della sessione, ma richiede anche un GRANDE dispendio di memoria virtuale e quindi rallenta il processo.

2) Mysql_unbuffered_query(“QUERY”);

ci consente di effeture una query meno dispendiosa ripetto alla prima, ma non consente di caricare i dati prima della fine della query ( come dice il nome stesso unbuffered ).

L’uso dell’una piuttosto che l’altra è a vostra ,dicrezione in base alla situazione in cui vi trovate , personalmente consiglio la seconda.
Ora facciamo un piccolo ripilogo dei comandi con un esampio:

$host = "localhost";
$username = ".........";
$password = "........";
$db_name = "ciciolina";
$connnessione = mysql_connect($host,$username,$password);
$db = mysql_select_db($db_name, $connnessione);
$normal_query = mysql_query ("QUERY");
$unbuffered_query = mysql_unbuffered_query("QUERY");
mysql_close($connnessione );

Se a questo punto non vi siete ancora rotti , passiamo ad analizzare i comandi di SQL .

1) CREATE, creare ma cosa ? , questo comando va abbianto a due specifiche dello stesso:

A) DATABASE, crea un nuovo db , non credo che vi sara di grande utilita queto comando , dato che spesso si è impossibilitati dalle circostanze a creare un nuovo db (vedi host gratutiti , e avolte anche a pagamento).

SINTASSI:

CREATE DATABASE

B) TABLE , molto + utile della prima , anzi essenziale , poiche ogni volta che create un nuovo script utilizzerete una nuova tabella o anche + di una.

SINTASSI:

CREATE TABLE

2) DROP, serve per eliminare cio che è stato creato con CREATE la sintassi è DROP TABLE/DATABASE IF EXIST nome_db/tabella

3) ALTER, serve per modificare le colonne del database , la sintassi è ALERT TABLE ADD/DROP COLUM …….COLOR], oppure con MODIFY , [COLOR=red]ALERT TABLE MODIFY nome_tabella ………

4) INSERT INTO, questa funzione serve per inserire i dati all’interno di una tabella la sintassi è : INSET INTO nome tabella (campi della tabella in ordine decrescente (dall’alto verso il basso) separati da una virgola) VALUES (titti i valori da inserire all’interno della tabella nello stesso ordine
dei campi precedentemente inseriti anch’essi separti da virgola)


INSERT INTO utenti (id,username,password) VALUES ('1','sirdaid','milan')

5) UPDATE, con questo comando potremo modificare determinati campi di una tabella attraverso l’attributo SET, la sintassi è : UPDATE nome tabella SET qulacosa = a qualcosa WHERE qualcosa= qualcosa, L’attributo WHERE serve ad identificare un determinato campo della tabella attreverso un dato presente nella tabella.

UPDATE utenti SET username = 'sirdaid' WHERE password = 'milan'

6) DELETE, attraverso questo comando possiamo cancellare i dati che corrispondono a determinate caratteristiche .La sintassi è:

DELETE FROM…….(e volendo potremmo aggiungerci un where per verificare delle condizioni).

DELETE id FROM utenti WHERE username = 'sirdaid'

7) SELECT, ultimo , ma non ultimo della lista abbiamo select, che serve a selezionare un determinato campo della tabella.
La sintassi è : SELECT qualcosa FROM nome tabella WHERE …..

Bisogna aggiungere inoltre 2 possibili specifiche per le query olte a WHERE : AND e OR , essi possono , anzi generalmente vengono, abbinati a WHERE per fornire indicazioni + precise.

SELECT * FROM utenti WHERE username = 'sirdaid' AND password = 'milan' OR password = ' snow'

N.B nel esempio di qui sopra ho usato il simobolo * che in SQL significa TUTTO , qunidi io gli ho tetto di selezionate tutto in corrispondenza di quelle condizioni.

Ora guisto perché le cose da memorizzare non erano abbastanza dovete sapere che ogni campo di una tabella puo avere caratteristiche differenti i principali sono:

1) TEXT, indica un campo di esclusivo testo

2) VARCHAR, un campo che puo essere numerico , di testo o entrambi e puo contenere un massimo di 255 caratteri . La sintassi è:
VARCHAR (numero massimo di caratteri voluto che non superi 255) , se lasciato in baico avra automaticmante valore 255

3) INT, un campo che contiene solo numeri

4) AUTO_INCREMENT, se un canpo numerico ha questo valore ,allora si auto incrementa paretendo da uno .

5) PRIMARY KEY, ovvero chiave primaria , se si esgue una queri attraverso un campo che è stato definito chiave primaria , le richerche sarannno molto + veloci.

6) NOT NULL, dice che quel campo on puo essere vuoto.

Questo è l’elenco MINIMO di tipi di campi con cui potrete incominciare a lavorare e a esercitarvi .
Per semplificare un attimo cio che fino ad ora è stato detto, qui sotto scrivero un esempio di codice che serve a creare una tabella:

mysql_unbuffered_query("CREATE TABLE utenti (
id INT(5) AUTO_INCREMENT NOT NULL,
username TEXT NOT NULL,
password VARCHAR(50) NOT NULL,
PRIMARY KEY(id))");

Tutorial By Sirdad