Banner

Pagina 1 2 3 4 5 6 7 8

Aggiungere, Modificare, Rinominare, Eliminare... le colonne di una Tabella

Può accadere di dovere rimaneggiare una o più colonne di una Tabella. In questa situazione entra in gioco l'istruzione ALTER TABLE. Per illustare alcuni dei comandi più comui, senza dovere rischiare di danneggiare il DB Basket, ho creato una Tabella Contatti, che ho provveduto ad eliminare alla fine dei test.

mysql> CREATE TABLE Contatti (
    -> Cognome VARCHAR(20) NOT NULL,
    -> Nome VARCHAR(20) NOT NULL,
    -> Cellulare INT NOT NULL,
    -> PRIMARY KEY(Cellulare));
Query OK, 0 rows affected (0,20 sec)


mysql> DESCRIBE Contatti;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| Cognome   | varchar(20) | NO   |     | NULL    |       |
| Nome      | varchar(20) | NO   |     | NULL    |       |
| Cellulare | int(11)     | NO   | PRI | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0,05 sec)

Aggiungere una colonna ad una Tabella.

mysql> ALTER TABLE Contatti ADD Indirizzo VARCHAR (50) NOT NULL;
Query OK, 0 rows affected (0,16 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| Cognome   | varchar(20) | NO   |     | NULL    |       |
| Nome      | varchar(20) | NO   |     | NULL    |       |
| Cellulare | int(11)     | NO   | PRI | NULL    |       |
| Indirizzo | varchar(50) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0,00 sec)

Aggiungere un campo ad una Tabella come prima Colonna.

mysql> ALTER TABLE Contatti ADD Codice_Fiscale VARCHAR(20) NOT NULL FIRST;
Query OK, 0 rows affected (0,42 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Cellulare      | int(11)     | NO   | PRI | NULL    |       |
| Indirizzo      | varchar(50) | NO   |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Aggiungere una colonna ad una Tabella dopo una colonna specifica.

mysql> ALTER TABLE Contatti ADD Telefono_Casa INT AFTER Nome;
Query OK, 0 rows affected (0,12 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa  | int(11)     | YES  |     | NULL    |       |
| Cellulare      | int(11)     | NO   | PRI | NULL    |       |
| Indirizzo      | varchar(50) | NO   |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
6 rows in set (0,00 sec)

Eliminare una colonna da una Tabella.

mysql> ALTER TABLE Contatti DROP Indirizzo;
Query OK, 0 rows affected (0,38 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa  | int(11)     | YES  |     | NULL    |       |
| Cellulare      | int(11)     | NO   | PRI | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Eliminare una chiave primaria da una Tabella.

mysql> ALTER TABLE Contatti DROP PRIMARY KEY;
Query OK, 0 rows affected (0,14 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa  | int(11)     | YES  |     | NULL    |       |
| Cellulare      | int(11)     | NO   |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Rinominare una Colonna di una Tabella.

mysql> ALTER TABLE Contatti CHANGE Cellulare Telefono_Cellulare INT NOT NULL;
Query OK, 0 rows affected (0,36 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+--------------------+-------------+------+-----+---------+-------+
| Field              | Type        | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| Codice_Fiscale     | varchar(20) | NO   |     | NULL    |       |
| Cognome            | varchar(20) | NO   |     | NULL    |       |
| Nome               | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa      | int(11)     | YES  |     | NULL    |       |
| Telefono_Cellulare | int(11)     | NO   |     | NULL    |       |
+--------------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Modificare attributi di una Colonna di una Tabella.

mysql> ALTER TABLE Contatti MODIFY Telefono_Casa VARCHAR(15) NOT NULL;
Query OK, 0 rows affected (0,10 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+--------------------+-------------+------+-----+---------+-------+
| Field              | Type        | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| Codice_Fiscale     | varchar(20) | NO   |     | NULL    |       |
| Cognome            | varchar(20) | NO   |     | NULL    |       |
| Nome               | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa      | varchar(15) | NO   |     | NULL    |       |
| Telefono_Cellulare | int(11)     | NO   |     | NULL    |       |
+--------------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Impostare come Chiave Primaria una Colonna di una Tabella.

mysql> ALTER TABLE Contatti MODIFY Codice_Fiscale VARCHAR(20) NOT NULL PRIMARY KEY;
Query OK, 0 rows affected (0,42 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+--------------------+-------------+------+-----+---------+-------+
| Field              | Type        | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| Codice_Fiscale     | varchar(20) | NO   | PRI | NULL    |       |
| Cognome            | varchar(20) | NO   |     | NULL    |       |
| Nome               | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa      | varchar(15) | NO   |     | NULL    |       |
| Telefono_Cellulare | int(11)     | NO   |     | NULL    |       |
+--------------------+-------------+------+-----+---------+-------+
5 rows in set (0,01 sec)

Manuale Online: ALTER TABLE

Le Viste

Le Viste sono Tabelle che permettono la visualizzazione dei dati provenienti da più fonti i cui elementi sono combinati fra loro.

Il mio scopo è quello di creare una classifica di realizzatori sia per la categoria Esordienti che per quella Aquilotti e poi due Registri Presenze per annotare il numero di partite a cui ha partecipato ciascun ragazzo anch'esso suddiviso per categoria.

Registro Presenze

mysql> CREATE VIEW presenze_aquilotti
    -> AS SELECT Partita.Codice_Partita,Campionato.Categoria, Giocatori.* FROM
    -> Giocatori inner join Partita
    -> ON Giocatori.Numero_Maglia=Partita.Numero_Maglia INNER JOIN Campionato
    -> ON Partita.Codice_Partita=Campionato.Codice_Partita
    -> WHERE Campionato.Categoria="Aquilotti"
    -> ORDER BY Giocatori.Numero_Maglia, Partita.Codice_Partita;
Query OK, 0 rows affected (0,12 sec)


mysql> SELECT * FROM presenze_aquilotti;
+----------------+-----------+---------------+-----------+------------+------+
| Codice_Partita | Categoria | Numero_Maglia | Cognome   | Nome       | Anno |
+----------------+-----------+---------------+-----------+------------+------+
|              4 | Aquilotti |             8 | Azzurro   | Alberto    | 2007 |
|              1 | Aquilotti |            11 | Beige     | Andrea     | 2006 |
|              4 | Aquilotti |            11 | Beige     | Andrea     | 2006 |
|              1 | Aquilotti |            13 | Bordeaux  | Riccardo   | 2006 |
|              4 | Aquilotti |            13 | Bordeaux  | Riccardo   | 2006 |
|              1 | Aquilotti |            15 | Carbone   | Lorenzo    | 2006 |
|              4 | Aquilotti |            15 | Carbone   | Lorenzo    | 2006 |
|              1 | Aquilotti |            17 | Arancioni | Romeo      | 2006 |
|              4 | Aquilotti |            17 | Arancioni | Romeo      | 2006 |
|              1 | Aquilotti |            18 | Catrame   | Vittorio   | 2006 |
|              4 | Aquilotti |            18 | Catrame   | Vittorio   | 2006 |
|              1 | Aquilotti |            20 | Rossi     | Alessandro | 2006 |
|              4 | Aquilotti |            20 | Rossi     | Alessandro | 2006 |
|              1 | Aquilotti |            23 | Gialli    | Paolo      | 2006 |
|              1 | Aquilotti |            30 | Neri      | Tommaso    | 2006 |
|              4 | Aquilotti |            30 | Neri      | Tommaso    | 2006 |
|              1 | Aquilotti |            33 | Blu       | Emanuele   | 2007 |
|              4 | Aquilotti |            33 | Blu       | Emanuele   | 2007 |
|              4 | Aquilotti |            36 | Ecru      | Federico   | 2007 |
|              1 | Aquilotti |            37 | Fucsia    | Francesco  | 2007 |
|              4 | Aquilotti |            37 | Fucsia    | Francesco  | 2007 |
|              1 | Aquilotti |            40 | Granata   | Roberto    | 2007 |
|              1 | Aquilotti |            42 | Ambra     | Francesco  | 2007 |
|              4 | Aquilotti |            42 | Ambra     | Francesco  | 2007 |
+----------------+-----------+---------------+-----------+------------+------+
24 rows in set (0,06 sec)

Manuale Online: CREATE VIEW

Viene creata una Vista di nome "presenze_aquilotti", che per convenzione viene scritta totalmente in minuscolo per distinguerla dalle Tabelle, le cui colonne sono selezionate in questo modo:

- "Codice_Partita" - recuperata dalla Tabella Partita.
- "Categoria" - recuperata dalla Tabella Campionato
- Tutte le colonne della Tabella Giocatori.

Le tre Tabelle sono unite/collegate fra loro attraverso la clausola INNER JOIN in questo modo:
- "Giocatori" e "Campionato" attraverso la colonna Numero_Maglia.
- "Partita" e "Campionato" attraverso la colonna Codice_Partita

Sono elencati solo i ragazzi che giocano nella catergoria Aquilotti e la lista è ordinata usando come criterio prima il numero della maglia e poi i codice della partita.

La colonna che funge da tramite deve essere identica in entrambe le Tabelle, e in una delle due deve essere una Chiave Primaria.

Manuale Online: JOIN

La Vista così come è non è molto pratica da leggere, in quanto produce una lista dei bambini che hanno partecipato alle varie partite ripetendo il nome di ciascun ragazzo tante volte quante sono i match che ha disputato.
Per avere un elenco in cui per ogni giocatoe viene visualizzato il numero di presenze, si usa una SELECT con l'opzione COUNT(*) che permette di conteggiare la ripetizione di un valore in una colonna:

mysql> SELECT Numero_Maglia, Cognome, Nome, Anno, COUNT(*) AS Presenze
    -> FROM presenze_aquilotti
    -> WHERE Anno>2005 and Anno<2009
    -> GROUP BY Numero_Maglia HAVING COUNT(*)>=0;
+---------------+-----------+------------+------+----------+
| Numero_Maglia | Cognome   | Nome       | Anno | Presenze |
+---------------+-----------+------------+------+----------+
|             8 | Azzurro   | Alberto    | 2007 |        1 |
|            11 | Beige     | Andrea     | 2006 |        2 |
|            13 | Bordeaux  | Riccardo   | 2006 |        2 |
|            15 | Carbone   | Lorenzo    | 2006 |        2 |
|            17 | Arancioni | Romeo      | 2006 |        2 |
|            18 | Catrame   | Vittorio   | 2006 |        2 |
|            20 | Rossi     | Alessandro | 2006 |        2 |
|            23 | Gialli    | Paolo      | 2006 |        1 |
|            30 | Neri      | Tommaso    | 2006 |        2 |
|            33 | Blu       | Emanuele   | 2007 |        2 |
|            36 | Ecru      | Federico   | 2007 |        1 |
|            37 | Fucsia    | Francesco  | 2007 |        2 |
|            40 | Granata   | Roberto    | 2007 |        1 |
|            42 | Ambra     | Francesco  | 2007 |        2 |
+---------------+-----------+------------+------+----------+
14 rows in set (0,04 sec)

La SELECT visualizza a video le colonne "Numero_Maglia", "Cognome", "Nome", "Anno" e una colonna dei conteggi di nome "Presenze", recuperate dalla Vista "presenze_aquilotti" dove i ragazzi sono nati negli anni 2006, 2007 e 2008 raggruppati per la colonna "Numero_Maglia". La clauola COUNT(*) permette di conteggiare le righe con lo stesso tipo di informazione e di raggrupparle secondo criteri a noi utili.

Manuale Online: COUNT(*)

Similmente si realizzano la Vista e la SELECT per il Registro Presenze degli Erordienti

mysql> CREATE VIEW presenze_esordienti
    -> AS SELECT Partita.Codice_Partita, Campionato.Categoria, Giocatori.* FROM
    -> Giocatori inner join Partita
    -> ON Giocatori.Numero_Maglia=Partita.Numero_Maglia INNER JOIN Campionato
    -> ON Partita.Codice_Partita=Campionato.Codice_Partita
    -> WHERE Campionato.Categoria="Esordienti"
    -> ORDER BY Giocatori.Numero_Maglia, Partita.Codice_Partita;
Query OK, 0 rows affected (0,06 sec)


mysql> SELECT Numero_Maglia, Cognome, Nome, Anno, COUNT(*) AS Presenze
    -> FROM presenze_esordienti
    -> WHERE Anno>2004 and Anno<2007
    -> GROUP BY Numero_Maglia HAVING COUNT(*)>=0;
+---------------+-----------+------------+------+----------+
| Numero_Maglia | Cognome   | Nome       | Anno | Presenze |
+---------------+-----------+------------+------+----------+
|             4 | Celesti   | Nicolò     | 2005 |        1 |
|             7 | Avorio    | Andrea     | 2005 |        1 |
|            10 | Marroni   | Ivan       | 2005 |        1 |
|            11 | Beige     | Andrea     | 2006 |        1 |
|            14 | Antracite | Lorenzo    | 2005 |        2 |
|            15 | Carbone   | Lorenzo    | 2006 |        2 |
|            17 | Arancioni | Romeo      | 2006 |        2 |
|            18 | Catrame   | Vittorio   | 2006 |        2 |
|            19 | Antracite | Ferdinando | 2005 |        2 |
|            20 | Rossi     | Alessandro | 2006 |        2 |
|            21 | Bianchi   | Antonio    | 2005 |        1 |
|            23 | Gialli    | Paolo      | 2006 |        1 |
|            24 | Ciano     | Federico   | 2005 |        2 |
|            25 | Corallo   | Luca       | 2005 |        1 |
|            26 | Cremisi   | Emiliano   | 2005 |        2 |
|            30 | Neri      | Tommaso    | 2006 |        1 |
+---------------+-----------+------------+------+----------+
16 rows in set (0,03 sec)

Classifiche Realizzatori

Per la realizzazione delle due classifiche ho innanzitutto creato una Vista con i canestri realizzati da ciascun giocatore in ogni partita suddivisi per valore; poi da questa ho estratto i giocatori che hanno frequentato il campionato Aquilotti e quello Esordienti.

mysql> CREATE VIEW canestri AS SELECT Partita.Codice_Partita,
    -> Partita.Numero_Maglia,Campionato.Categoria,
    -> Partita.Canestri_2p_1T+Partita.Canestri_2p_2T+
    -> Partita.Canestri_2p_3T+Partita.Canestri_2p_4T+
    -> Partita.Canestri_2p_5T+Partita.Canestri_2p_6T+
    -> Partita.Canestri_2p_7T+Partita.Canestri_2p_8T AS Canestri_2p,
    -> Partita.Canestri_1p_1T+Partita.Canestri_1p_2T+
    -> Partita.Canestri_1p_3T+Partita.Canestri_1p_4T+
    -> Partita.Canestri_1p_5T+Partita.Canestri_1p_6T+
    -> Partita.Canestri_1p_7T+Partita.Canestri_1p_8T AS Canestri_1p
    -> FROM Partita INNER JOIN Campionato
    -> ON Partita.Codice_Partita=Campionato.Codice_Partita;
Query OK, 0 rows affected (0,11 sec)


mysql> SELECT * FROM canestri;
+----------------+---------------+------------+-------------+-------------+
| Codice_Partita | Numero_Maglia | Categoria  | Canestri_2p | Canestri_1p |
+----------------+---------------+------------+-------------+-------------+
|              1 |            11 | Aquilotti  |           1 |           1 |
|              1 |            13 | Aquilotti  |           0 |           0 |
|              1 |            15 | Aquilotti  |           1 |           0 |
|              1 |            17 | Aquilotti  |           1 |           1 |
|              1 |            18 | Aquilotti  |           1 |           1 |
|              1 |            20 | Aquilotti  |           0 |           1 |
|              1 |            23 | Aquilotti  |           1 |           0 |
|              1 |            30 | Aquilotti  |           0 |           0 |
|              1 |            33 | Aquilotti  |           0 |           3 |
|              1 |            37 | Aquilotti  |           2 |           0 |
|              1 |            40 | Aquilotti  |           0 |           0 |
|              1 |            42 | Aquilotti  |           0 |           0 |
|              2 |             4 | Esordienti |           0 |           0 |
|              2 |             7 | Esordienti |           1 |           0 |
|              2 |            11 | Esordienti |           0 |           0 |
|              2 |            14 | Esordienti |           0 |           1 |
|              2 |            15 | Esordienti |           0 |           0 |
|              2 |            17 | Esordienti |           1 |           0 |
|              2 |            18 | Esordienti |           1 |           1 |
|              2 |            19 | Esordienti |           1 |           0 |
|              2 |            20 | Esordienti |           2 |           0 |
|              2 |            21 | Esordienti |           0 |           0 |
|              2 |            24 | Esordienti |           9 |           1 |
|              2 |            26 | Esordienti |           3 |           0 |
|              3 |            10 | Esordienti |           0 |           0 |
|              3 |            14 | Esordienti |           1 |           1 |
|              3 |            15 | Esordienti |           0 |           0 |
|              3 |            17 | Esordienti |           0 |           0 |
|              3 |            18 | Esordienti |           2 |           1 |
|              3 |            19 | Esordienti |           1 |           0 |
|              3 |            20 | Esordienti |           0 |           0 |
|              3 |            23 | Esordienti |           1 |           0 |
|              3 |            24 | Esordienti |           8 |           4 |
|              3 |            25 | Esordienti |           0 |           0 |
|              3 |            26 | Esordienti |           0 |           1 |
|              3 |            30 | Esordienti |           0 |           0 |
|              4 |             8 | Aquilotti  |           0 |           0 |
|              4 |            11 | Aquilotti  |           5 |           0 |
|              4 |            13 | Aquilotti  |           2 |           0 |
|              4 |            15 | Aquilotti  |           6 |           1 |
|              4 |            17 | Aquilotti  |           0 |           1 |
|              4 |            18 | Aquilotti  |           7 |           2 |
|              4 |            20 | Aquilotti  |           5 |           0 |
|              4 |            30 | Aquilotti  |           3 |           0 |
|              4 |            33 | Aquilotti  |           0 |           0 |
|              4 |            36 | Aquilotti  |           0 |           0 |
|              4 |            37 | Aquilotti  |           4 |           2 |
|              4 |            42 | Aquilotti  |           1 |           0 |
+----------------+---------------+------------+-------------+-------------+
48 rows in set (0,07 sec)

Viene creata una Vista selezionando le colonne Codice Partita e Numero Maglia dalla Tabella Partita, la Categoria dalla Tabella Campionato e poi vengono sommati i canestri realizzati in ciascun tempo da ogni singolo bambino raccolti in due variabili Canestri_2p e Canestri_1p di 2 e 1 punto rispettivamente, mettendo in relazione le due Tabelle Partita e Campionato attraverso i campi Codice Partita.
E adesso si scrivono le Viste per estrarre i dati relativi agli Aquilotti e agli Esordienti.

mysql> CREATE VIEW canestri_aquilotti AS SELECT Numero_Maglia,
    -> SUM(Canestri_2p) AS Totale_2p, SUM(Canestri_1p) AS Totale_1p, 
    -> (SUM(Canestri_2p)*2+SUM(Canestri_1p)) AS Punteggio
    -> FROM canestri WHERE Categoria="Aquilotti" GROUP BY Numero_Maglia;
Query OK, 0 rows affected (0,31 sec)


mysql> SELECT * FROM canestri_aquilotti;
+---------------+-----------+-----------+-----------+
| Numero_Maglia | Totale_2p | Totale_1p | Punteggio |
+---------------+-----------+-----------+-----------+
|             8 |         0 |         0 |         0 |
|            11 |         6 |         1 |        13 |
|            13 |         2 |         0 |         4 |
|            15 |         7 |         1 |        15 |
|            17 |         1 |         2 |         4 |
|            18 |         8 |         3 |        19 |
|            20 |         5 |         1 |        11 |
|            23 |         1 |         0 |         2 |
|            30 |         3 |         0 |         6 |
|            33 |         0 |         3 |         3 |
|            36 |         0 |         0 |         0 |
|            37 |         6 |         2 |        14 |
|            40 |         0 |         0 |         0 |
|            42 |         1 |         0 |         2 |
+---------------+-----------+-----------+-----------+
14 rows in set (0,06 sec)


mysql> CREATE VIEW canestri_esordienti AS SELECT Numero_Maglia,
    -> SUM(Canestri_2p) AS Totale_2p, SUM(Canestri_1p) AS Totale_1p,
    -> (SUM(Canestri_2p)*2+SUM(Canestri_1p)) AS Punteggio
    -> FROM canestri WHERE Categoria="Esordienti" GROUP BY Numero_Maglia;
Query OK, 0 rows affected (0,06 sec)


mysql> SELECT * FROM canestri_esordienti;
+---------------+-----------+-----------+-----------+
| Numero_Maglia | Totale_2p | Totale_1p | Punteggio |
+---------------+-----------+-----------+-----------+
|             4 |         0 |         0 |         0 |
|             7 |         1 |         0 |         2 |
|            10 |         0 |         0 |         0 |
|            11 |         0 |         0 |         0 |
|            14 |         1 |         2 |         4 |
|            15 |         0 |         0 |         0 |
|            17 |         1 |         0 |         2 |
|            18 |         3 |         2 |         8 |
|            19 |         2 |         0 |         4 |
|            20 |         2 |         0 |         4 |
|            21 |         0 |         0 |         0 |
|            23 |         1 |         0 |         2 |
|            24 |        17 |         5 |        39 |
|            25 |         0 |         0 |         0 |
|            26 |         3 |         1 |         7 |
|            30 |         0 |         0 |         0 |
+---------------+-----------+-----------+-----------+
16 rows in set (0,01 sec)

E adesso le due SELECT per la visualizzazione delle due Classifice:

mysql> SELECT Giocatori.*, canestri_aquilotti.Totale_2p,
    -> canestri_aquilotti.Totale_1p, canestri_aquilotti.Punteggio
    -> FROM Giocatori INNER JOIN canestri_aquilotti
    -> ON Giocatori.Numero_Maglia = canestri_aquilotti.Numero_Maglia
    -> WHERE Giocatori.Anno<2009 ORDER BY canestri_aquilotti.Punteggio DESC;                                     
+---------------+-----------+------------+------+-----------+-----------+-----------+
| Numero_Maglia | Cognome   | Nome       | Anno | Totale_2p | Totale_1p | Punteggio |
+---------------+-----------+------------+------+-----------+-----------+-----------+
|            18 | Catrame   | Vittorio   | 2006 |         8 |         3 |        19 |
|            15 | Carbone   | Lorenzo    | 2006 |         7 |         1 |        15 |
|            37 | Fucsia    | Francesco  | 2007 |         6 |         2 |        14 |
|            11 | Beige     | Andrea     | 2006 |         6 |         1 |        13 |
|            20 | Rossi     | Alessandro | 2006 |         5 |         1 |        11 |
|            30 | Neri      | Tommaso    | 2006 |         3 |         0 |         6 |
|            17 | Arancioni | Romeo      | 2006 |         1 |         2 |         4 |
|            13 | Bordeaux  | Riccardo   | 2006 |         2 |         0 |         4 |
|            33 | Blu       | Emanuele   | 2007 |         0 |         3 |         3 |
|            42 | Ambra     | Francesco  | 2007 |         1 |         0 |         2 |
|            23 | Gialli    | Paolo      | 2006 |         1 |         0 |         2 |
|             8 | Azzurro   | Alberto    | 2007 |         0 |         0 |         0 |
|            40 | Granata   | Roberto    | 2007 |         0 |         0 |         0 |
|            36 | Ecru      | Federico   | 2007 |         0 |         0 |         0 |
+---------------+-----------+------------+------+-----------+-----------+-----------+
14 rows in set (0,00 sec)


mysql> SELECT Giocatori.*, canestri_esordienti.Totale_2p, 
    -> canestri_esordienti.Totale_1p, canestri_esordienti.Punteggio
    -> FROM Giocatori INNER JOIN canestri_esordienti
    -> ON Giocatori.Numero_Maglia = canestri_esordienti.Numero_Maglia
    -> WHERE Giocatori.Anno>2004 ORDER BY canestri_esordienti.Punteggio DESC;
+---------------+-----------+------------+------+-----------+-----------+-----------+
| Numero_Maglia | Cognome   | Nome       | Anno | Totale_2p | Totale_1p | Punteggio |
+---------------+-----------+------------+------+-----------+-----------+-----------+
|            24 | Ciano     | Federico   | 2005 |        17 |         5 |        39 |
|            18 | Catrame   | Vittorio   | 2006 |         3 |         2 |         8 |
|            26 | Cremisi   | Emiliano   | 2005 |         3 |         1 |         7 |
|            14 | Antracite | Lorenzo    | 2005 |         1 |         2 |         4 |
|            19 | Antracite | Ferdinando | 2005 |         2 |         0 |         4 |
|            20 | Rossi     | Alessandro | 2006 |         2 |         0 |         4 |
|             7 | Avorio    | Andrea     | 2005 |         1 |         0 |         2 |
|            17 | Arancioni | Romeo      | 2006 |         1 |         0 |         2 |
|            23 | Gialli    | Paolo      | 2006 |         1 |         0 |         2 |
|             4 | Celesti   | Nicolò     | 2005 |         0 |         0 |         0 |
|            15 | Carbone   | Lorenzo    | 2006 |         0 |         0 |         0 |
|            25 | Corallo   | Luca       | 2005 |         0 |         0 |         0 |
|            10 | Marroni   | Ivan       | 2005 |         0 |         0 |         0 |
|            21 | Bianchi   | Antonio    | 2005 |         0 |         0 |         0 |
|            11 | Beige     | Andrea     | 2006 |         0 |         0 |         0 |
|            30 | Neri      | Tommaso    | 2006 |         0 |         0 |         0 |
+---------------+-----------+------------+------+-----------+-----------+-----------+
16 rows in set (0,01 sec)

Pagina 1 2 3 4 5 6 7 8

Siti Ufficiali Editor Free Guide Online Utility
Microsoft Visual Studio MSDN InnoSetup
Apple XCode Documentazione .Net Cyber Installer
Oracle NetBeans Apple Developer NSIS
Debian Eclipse W3C Diagram Online
Distrowatch Bluefish W3C Validator Junior Icon Editor
Brackets W3Schools Edit Cursors Online
TextWrangler

Sito realizzato da Fiaschi Francesco - Aggiornamento Dicembre 2018

W3C - XHTML 1.1 Validated