Banner

Pagina 1 2 3 4 5 6 7 8

Realizzazione DataBase Basket con SQL

Ho usato MAMP per programmare in PHP e usare SQL. Per l’installazione e la configurazione vi rimando al sito di appartenenza: https://www.mamp.info/en/.
Io preferisco usare il terminale al posto dell'interfaccia visuale di phpMyAdmin; permette di ottenere una migliore conoscenza del linguaggio SQL, anche se è necessario porre maggiore attenzione nello scrivere i comandi per evitare problemi inutili.

- Avviare MAMP e il Terminale.

- Se l'installazione di MAMP è stata effettuata senza apportare alcuna modifica né alla posizione di registrazione sull' HD, né al nome utente e password, scrivere il seguente comando nel terminale:

/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot

Appare il seguente messaggio per indicare che siamo entrati in MySQL e possiamo iniziare a lavorare:

Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.38 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

altrimenti modificare il percorso assoluto “/Applications/MAMP/Library/bin/“ con quello da voi impostato e/o le credenziali -u(sta per utente) e -p(sta per password) con quelle scelte da voi.
Se tutto è andato bene il prompt deve cambiare in “mysql>”.

INFORMAZIONI SU SQL:

- OGNI comando SQL deve terminare con un ';' (punto e virgola).
- Un comando può essere interrotto digitando al prompt '\c'.
- Le istruzioni SQL possono essere scritte indifferentemente in MAIUSCOLO o minuscolo.
- I comandi possono essere suddivisi su più linee semplicemente premendo INVIO laddove vogliamo separarli. Quando l’istruzione è terminata è sufficiente digitare il “;” e preme INVIO per mandarlo in esecuzione.

Per ogni riferimento all'uso di SQL si consulti il Manuale Online.

- Creiamo il nostro DataBase assegnandogli il nome di Basket:

mysql> CREATE DATABASE IF NOT EXISTS Basket;

Manuale Online: CREATE DATABASE

Il comando opposto, ossia quello per eliminare un DataBase non più necessario, è:

mysql> DROP DATABASE Basket;

Manuale Online: DROP DATABASE

- Verifichiamo che sia stato creato:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Basket             |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0,00 sec)

Manuale Online: SHOW DATABASES

Per poter lavorare con il nostro DB è necessario impartire il seguente comando:

mysql> USE Basket;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

Manuale Online: USE DATABASE

Il nome del DB DEVE essere scritto rispettando MAIUSCOLE/minuscole.
Da ora in poi possiamo manipolare il nostro DB, creando, modificando, cancellando, rinominando Tabelle, Campi, Record, Viste e Relazioni. Ogni qualvolta si vuole utilizzare il DataBase è sufficiente aprire il terminale, entrare in MySQL con il comando impartito all’inizio e usare l’istruzione “USE Basket;”.

- Creiamo le nostre 3 Tabelle:

mysql> CREATE TABLE Giocatori (
    -> Numero_Maglia INT NOT NULL, 
    -> Cognome VARCHAR(20) NOT NULL, 
    -> Nome VARCHAR(20) NOT NULL, 
    -> Anno INT NOT NULL, 
    -> PRIMARY KEY (Numero_Maglia));

Manuale Online: CREATE TABLE

Il comando crea una Tabella di nome "Giocatori" composta da 4 campi:
- Numero_Maglia: contiene valori numerici di tipo intero e non può essere vuota ( NOT NULL).
- Cognome: contiene del testo, ossia un numero di caratteri fino ad un massimo del valore impostato fra parentesi, 20 in questo caso, e non può essere lasciato vuoto.
- Nome: come Cognome.
- Anno: esattamente come Numero_Maglia.
Ogni Tabella deve contenere una colonna (campo) che contiene valori UNICI, mai ripetuti, in modo da poterle assegnare il titolo di "Chiave Primaria" e identificare quel particolare record proprio attraverso quel campo specifico. Un pò come accade per le persone con il Codice Fiscale, o il Numero di Targa dei veicoli. -Il comando PRIMARY KEY(Numero_Maglia) attribuisce al campo inserito fra le parentesi il titolo di Chiave Primaria.
Per i vari tipi di dati utilizzabili in MySQL si fa riferimento alla Documentazione online.

Come per il DB anche per la Tabelle esiste il comando che ne permette l'eliminazione:

mysql> DROP TABLE Giocatori;

Manuale Online: DROP TABLE

Se invece desideriamo CANCELLARE solo il contenuto della Tabella senza eliminarne la struttura si usa il comando DELETE:

mysql> DELETE FROM Giocatori;
Query OK, 7 rows affected (0,03 sec)

Manuale Online: DELETE

Adesso verifichiamo che sia stata creata la Tabella Giocatori.

mysql> SHOW TABLES;
+------------------+
| Tables_in_basket |
+------------------+
| Giocatori        |
+------------------+
1 row in set (0,00 sec)

Manuale Online: SHOW TABLES

Per assicurarci che abbiamo fatto le cose per bene chiediamo che ci venga mostrata la descrizione della struttura di "Giocatori":

mysql> DESCRIBE Giocatori;
+---------------+-------------+------+-----+---------+-------+
| Field         | Type        | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| Numero_Maglia | int(11)     | NO   | PRI | NULL    |       |
| Cognome       | varchar(20) | NO   |     | NULL    |       |
| Nome          | varchar(20) | NO   |     | NULL    |       |
| Anno          | int(11)     | NO   |     | NULL    |       |
+---------------+-------------+------+-----+---------+-------+
4 rows in set (0,06 sec)

Manuale Online: DESCRIBE

- Creiamo le altre 2 Tabelle: Campionato e Partita:

mysql> CREATE TABLE Campionato (
    -> Codice_Partita INT NOT NULL AUTO_INCREMENT,
    -> Data_Partita DATE NOT NULL,
    -> Squadra_Casa VARCHAR(25) NOT NULL,
    -> Squadra_Ospite VARCHAR(25) NOT NULL,
    -> Tipologia VARCHAR(15) NOT NULL,
    -> Categoria VARCHAR(15) NOT NULL,
    -> Risulatato_Finale VARCHAR(10) NULL,
    -> Parziale_1T VARCHAR(10) NULL,
    -> Parziale_2T VARCHAR(10) NULL,
    -> Parziale_3T VARCHAR(10) NULL,
    -> Parziale_4T VARCHAR(10) NULL,
    -> Parziale_5T VARCHAR(10) NULL,
    -> Parziale_6T VARCHAR(10) NULL,
    -> Parziale_7T VARCHAR(10) NULL,
    -> Parziale_8T VARCHAR(10) NULL,
    -> PRIMARY KEY (Codice_Partita));


mysql> CREATE TABLE Partita (
    -> Indice INT NOT NULL AUTO_INCREMENT,
    -> Codice_Partita INT NOT NULL,
    -> Numero_Maglia INT NOT NULL,
    -> Canestri_2p_1T INT NULL,
    -> Canestri_1p_1T INT NULL,
    -> Canestri_2p_2T INT NULL,
    -> Canestri_1p_2T INT NULL,
    -> Canestri_2p_3T INT NULL,
    -> Canestri_1p_3T INT NULL,
    -> Canestri_2p_4T INT NULL,
    -> Canestri_1p_4T INT NULL,
    -> Canestri_2p_5T INT NULL,
    -> Canestri_1p_5T INT NULL,
    -> Canestri_2p_6T INT NULL,
    -> Canestri_1p_6T INT NULL,
    -> Canestri_2p_7T INT NULL,
    -> Canestri_1p_7T INT NULL,
    -> Canestri_2p_8T INT NULL,
    -> Canestri_1p_8T INT NULL,
    -> PRIMARY KEY (Indice));

Controlliamo se abbiamo fatto tutto bene:

mysql> DESCRIBE Campionato;
+-------------------+-------------+------+-----+---------+----------------+
| Field             | Type        | Null | Key | Default | Extra          |
+-------------------+-------------+------+-----+---------+----------------+
| Codice_Partita    | int(11)     | NO   | PRI | NULL    | auto_increment |
| Data_Partita      | date        | NO   |     | NULL    |                |
| Squadra_Casa      | varchar(25) | NO   |     | NULL    |                |
| Squadra_Ospite    | varchar(25) | NO   |     | NULL    |                |
| Tipologia         | varchar(15) | NO   |     | NULL    |                |
| Categoria         | varchar(15) | NO   |     | NULL    |                |
| Risulatato_Finale | varchar(10) | YES  |     | NULL    |                |
| Parziale_1T       | varchar(10) | YES  |     | NULL    |                |
| Parziale_2T       | varchar(10) | YES  |     | NULL    |                |
| Parziale_3T       | varchar(10) | YES  |     | NULL    |                |
| Parziale_4T       | varchar(10) | YES  |     | NULL    |                |
| Parziale_5T       | varchar(10) | YES  |     | NULL    |                |
| Parziale_6T       | varchar(10) | YES  |     | NULL    |                |
| Parziale_7T       | varchar(10) | YES  |     | NULL    |                |
| Parziale_8T       | varchar(10) | YES  |     | NULL    |                |
+-------------------+-------------+------+-----+---------+----------------+
15 rows in set (0,35 sec)


mysql> DESCRIBE Partita;
+----------------+---------+------+-----+---------+----------------+
| Field          | Type    | Null | Key | Default | Extra          |
+----------------+---------+------+-----+---------+----------------+
| Indice         | int(11) | NO   | PRI | NULL    | auto_increment |
| Codice_Partita | int(11) | NO   |     | NULL    |                |
| Numero_Maglia  | int(11) | NO   |     | NULL    |                |
| Canestri_2p_1T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_1T | int(11) | YES  |     | NULL    |                |
| Canestri_2p_2T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_2T | int(11) | YES  |     | NULL    |                |
| Canestri_2p_3T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_3T | int(11) | YES  |     | NULL    |                |
| Canestri_2p_4T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_4T | int(11) | YES  |     | NULL    |                |
| Canestri_2p_5T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_5T | int(11) | YES  |     | NULL    |                |
| Canestri_2p_6T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_6T | int(11) | YES  |     | NULL    |                |
| Canestri_2p_7T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_7T | int(11) | YES  |     | NULL    |                |
| Canestri_2p_8T | int(11) | YES  |     | NULL    |                |
| Canestri_1p_8T | int(11) | YES  |     | NULL    |                |
+----------------+---------+------+-----+---------+----------------+
19 rows in set (0,01 sec)

Adesso se visualizziamo la lista delle Tabelle del nostro DB otteniamo:

mysql> SHOW TABLES;
+-------------------+
| Tables_in_basket  |
+-------------------+
| Campionato        |
| Giocatori         |
| Partita           |
+-------------------+
3 rows in set (0,00 sec)

Ora dobbiamo riempire le nostre Tabelle con le informazioni impostate. Vi sono vari modi per scrivere i dati in una Tabella:

1 - INSERT INTO Nome_Tabella VALUES (valore_1, valore_2, valore_3,... ,valore_n);
Inserisce una nuova linea con i dati impostati.
I valori stringa (di tipo VARCHAR) devono essere inseriti fra apici ( ' ) o virgolette ( " ); i valori numerici senza niente.

mysql> INSERT INTO Giocatori VALUES (20,'Rossi','Alessandro',2006);
Query OK, 1 row affected (0,03 sec)

Oppure, nel caso volessimo inserire più linee contemporaneamente:

mysql> INSERT INTO Giocatori VALUES
    -> (30,'Neri','Tommaso',2006),
    -> (21,'Bianchi','Antonio',2005);
Query OK, 2 rows affected (0,35 sec)
Records: 2  Duplicates: 0  Warnings: 0

Manuale Online: INSERT

2 - REPLACE INTO Nome_Tabella VALUES (valore_1, valore_2, valore_3,... ,valore_n);
Rimpiazza la linea in questione con i dati impostati o ne crea una nuova nel caso tale riga non esista.

mysql> REPLACE INTO Giocatori VALUES (23,"Gialli","Paolo",2006);
Query OK, 1 row affected (0,00 sec)

Manuale Online: REPLACE

3 - LOAD DATA LOCAL INFILE “/Percorso_Assoluto/Nome_File.txt" INTO TABLE Nome_Tabella;
In questo modo si caricano nella Tabella i dati memorizzati in un file .txt.
* I dati di una linea devono stare su una stessa riga separati da una tabulazione.
* Linee diverse devono essere divise da un ritorno a capo (Tasto INVIO)
* Lultima linea deve terminare anch'essa con un ritorno a capo (Tasto INVIO).
* I campi AUTO_INCREMENT possono essere omessi lasciando una spazio vuoto.

Aprite un editor di testo e inserite tutti i nomi dei ragazzi per popolare la Tabella Giocatori e salvate il file con un nome a vostra scelta con estensione .txt. Annotate il nome e la cartella dove lo registrate. Io ho scelto "/Users/gfrank/Desktop/Giocatori.txt".

File txt con i dati dei Giocatori

mysql> LOAD DATA LOCAL INFILE "/Users/gfrank/Desktop/Giocatori.txt" INTO TABLE Giocatori;
Query OK, 4 rows affected (0,04 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0

Manuale Online: LOAD DATA INFILE

L'istruzione non sovrascrive la Tabella esistente, ma aggiunge i valori contenuti nel file .txt a quelli già presenti.

È arrivato il momento di verificare se abbiamo inserito i dati in modo corretto. Si usa il comando SELECT seguito da un " * " per indicare che vogliamo visualizzare tutte le colonne della Tabella, il cui nome è scritto di seguito. L'opzione di Default prevede che, se non specificato diversamente, la Tabella viene visualizzata riordinata secondo la colonna scelta come chiave primaria.

mysql> SELECT * FROM Giocatori;
+---------------+---------+------------+------+
| Numero_Maglia | Cognome | Nome       | Anno |
+---------------+---------+------------+------+
|             4 | Celesti | Nicolò     | 2005 |
|            10 | Marroni | Ivan       | 2005 |
|            20 | Rossi   | Alessandro | 2006 |
|            21 | Bianchi | Antonio    | 2005 |
|            23 | Gialli  | Paolo      | 2006 |
|            27 | Grigi   | Mattia     | 2006 |
|            30 | Neri    | Tommaso    | 2006 |
|            33 | Blu     | Emanuele   | 2007 |
+---------------+---------+------------+------+
8 rows in set (0,00 sec)

Manuale Online: SELECT

Supponiamo di avere sbagliato l'anno di nascita di Grigi Mattia, nella Tabella Giocatori, e che dobbiamo cambiarlo da 2006 a 2005. Possimao usare indifferentemente due comandi: REPLACE INTO... oppure UPDATE...:

mysql> REPLACE INTO Giocatori VALUES (27, "Grigi","Mattia",2005);
Query OK, 2 rows affected (0,00 sec)

Oppure

mysql> UPDATE Giocatori SET Anno=2005 WHERE Numero_Maglia=27;
Query OK, 1 row affected (0,02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Manuale Online: UPDATE

In entrambi i casi la Tabella Giocatori sarà corretta in questo modo:

mysql> SELECT * FROM Giocatori;
+---------------+---------+------------+------+
| Numero_Maglia | Cognome | Nome       | Anno |
+---------------+---------+------------+------+
|             4 | Celesti | Nicolò     | 2005 |
|            10 | Marroni | Ivan       | 2005 |
|            20 | Rossi   | Alessandro | 2006 |
|            21 | Bianchi | Antonio    | 2005 |
|            23 | Gialli  | Paolo      | 2006 |
|            27 | Grigi   | Mattia     | 2005 |
|            30 | Neri    | Tommaso    | 2006 |
|            33 | Blu     | Emanuele   | 2007 |
+---------------+---------+------------+------+
8 rows in set (0,00 sec)

Nel caso in cui sia necessario eliminare un ragazzo dalla Tabella si può ricorrere al comando DELETE FROM...

mysql> DELETE FROM Giocatori WHERE Numero_Maglia=10;
Query OK, 1 row affected (0,00 sec)

Abbiamo eliminato il bambino con il numero maglia uguale a 10, ossia Marroni Ivan. Potevamo usare la clausola WHERE insieme al campo Nome="Ivan" o Cognome="Marroni", avremmo ottenuto lo stesso effetto. Ma se nell'elenco vi fosse stato un altro ragazzo con lo stesso nome o cognome sarebbe stato eliminato anche quello. Usando la chiave primaria come criterio di ricerca, eravamo certi che avremmo eliminato SOLO quel record e nessun altro.

mysql> SELECT * FROM Giocatori;
+---------------+---------+------------+------+
| Numero_Maglia | Cognome | Nome       | Anno |
+---------------+---------+------------+------+
|             4 | Celesti | Nicolò     | 2005 |
|            20 | Rossi   | Alessandro | 2006 |
|            21 | Bianchi | Antonio    | 2005 |
|            23 | Gialli  | Paolo      | 2006 |
|            27 | Grigi   | Mattia     | 2005 |
|            30 | Neri    | Tommaso    | 2006 |
|            33 | Blu     | Emanuele   | 2007 |
+---------------+---------+------------+------+
7 rows in set (0,00 sec)

Per poter continuare il lavoro è necessario caricare altri dati nella Tabella Giocatori e popolare le altre due: Campionato e Partita.

mysql> INSERT INTO Giocatori VALUES
    -> (7,'Avorio','Andrea',2005),
    -> (8,'Azzurro','Alberto',2007),
    -> (10,'Marroni','Ivan',2005),
    -> (11,'Beige','Andrea',2006),
    -> (13,'Bordeaux','Riccardo',2006),
    -> (14,'Antracite','Lorenzo',2005),
    -> (15,'Carbone','Lorenzo',2006),
    -> (17,'Arancioni','Romeo',2006),
    -> (18,'Catrame','Vittorio',2006),
    -> (19,'Antracite','Ferdinando',2005),
    -> (24,'Ciano','Federico',2005),
    -> (25,'Corallo','Luca',2005),
    -> (26,'Cremisi','Emiliano',2005),
    -> (35,'Amaranto','Mattia',2007),
    -> (36,'Ecru','Federico',2007),
    -> (37,'Fucsia','Francesco',2007),
    -> (40,'Granata','Roberto',2007),
    -> (42,'Ambra','Francesco',2007),
    -> (75,'Bronzo','Silvio',2006),
    -> (90,'Indaco','Matteo',2007);
Query OK, 20 rows affected (0,00 sec)
Records: 20  Duplicates: 0  Warnings: 0


mysql> INSERT INTO Campionato VALUES
    -> ('','2016-11-05','Ghezzano','Cascina','Campionato','Aquilotti',
    -> '10-14','0-7','9-1','0-1','9-0','3-5','6-7','0-0','0-0'),
    -> ('','2016-11-13','Cascina','Juve Pontedera','Campionato','Esordienti',
    -> '39-41','6-10','13-10','7-12','13-9','0-0','0-0','0-0','0-0'),
    -> ('','2016-11-20','Volterra','Cascina','Campionato','Esordienti',
    -> '43-34','10-2','7-16','14-3','12-13','0-0','0-0','0-0','0-0'),
    -> ('','2016-11-26','Cascina','Pall. Valdera','Campionato','Aquilotti',
    -> '16-8','4-8','26-0','15-2','9-8','10-4','10-0','0-0','0-0');
Query OK, 4 rows affected, 4 warnings (0,01 sec)
Records: 4  Duplicates: 0  Warnings: 4

Ora inseriamo i dati relativi alle singole partite:

mysql> INSERT INTO Partita VALUES
    -> ('',1,11,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0),
    -> ('',1,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',1,15,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',1,17,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',1,18,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0),
    -> ('',1,20,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',1,23,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0),
    -> ('',1,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',1,33,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0),
    -> ('',1,37,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0),
    -> ('',1,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',1,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
Query OK, 12 rows affected, 12 warnings (0,02 sec)
Records: 12  Duplicates: 0  Warnings: 12


mysql> INSERT INTO Partita VALUES
    -> ('',2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',2,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',2,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
    -> ('',2,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',2,17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',2,18,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0),
    -> ('',2,19,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
    -> ('',2,20,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0),
    -> ('',2,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',2,24,0,0,5,1,0,0,4,0,0,0,0,0,0,0,0,0),
    -> ('',2,26,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0);
Query OK, 12 rows affected, 12 warnings (0,00 sec)
Records: 12  Duplicates: 0  Warnings: 12


mysql> INSERT INTO Partita VALUES
    -> ('',3,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,14,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0),
    -> ('',3,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,18,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,19,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,23,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,24,0,0,3,2,0,0,5,2,0,0,0,0,0,0,0,0),
    -> ('',3,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,26,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
    -> ('',3,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
Query OK, 12 rows affected, 12 warnings (0,00 sec)
Records: 12  Duplicates: 0  Warnings: 12


mysql> INSERT INTO Partita VALUES
    -> ('',4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',4,11,0,0,0,0,4,0,0,0,1,0,0,0,0,0,0,0),
    -> ('',4,13,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0),
    -> ('',4,15,0,0,5,0,0,0,1,1,0,0,0,0,0,0,0,0),
    -> ('',4,17,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0),
    -> ('',4,18,0,0,5,2,0,0,2,0,0,0,0,0,0,0,0,0),
    -> ('',4,20,0,0,2,0,0,0,0,0,3,0,0,0,0,0,0,0),
    -> ('',4,30,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0),
    -> ('',4,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',4,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
    -> ('',4,37,0,0,0,0,3,1,0,0,0,0,1,1,0,0,0,0),
    -> ('',4,42,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0);
Query OK, 12 rows affected, 12 warnings (0,01 sec)
Records: 12  Duplicates: 0  Warnings: 12

Prima di proseguire nel lavoro e fare anche delle prove, è opportuno salvare le tre Tabelle con i relativi dati contenuti.
Per fare ciò, nel MAC con sistema operativo EL CAPITAN o seguente, è necessario disabilitare le impostazioni dell'opzione "secure_file_priv". Se è impostata a NULL impedisce all'utente l'operazione di salvataggio delle Tabelle MySQL. Per conoscere il valore impostato impartire il seguente comando:

mysql> SELECT @@secure_file_priv;
+--------------------+
| @@secure_file_priv |
+--------------------+
| NULL               |
+--------------------+
1 row in set (0,00 sec)

I valori possibili sono i seguenti:
- NULL : nessuna operazione di salvataggio è permessa.
- /Percorso/Assoluto/... : si possono salvare file SOLO nella cartella impostata dal percorso indicato.
- "" : Sicurezza disabilitata; si può salvare ovunque vogliamo.

Per modificarne il valore si procede in questo modo
- Arrestare il Server di MAMP
- Aprire un qualunque editor di testo e digitare le seguenti linee:

[mysqld_safe]
[mysqld]
secure_file_priv=""

Salvare il file con nome " .my.cnf " nella propria directory Home; quindi riavviare il Server e verificare che le impostazioni siano state rese effettive.

mysql> SELECT @@secure_file_priv;
+--------------------+
| @@secure_file_priv |
+--------------------+
|                    |
+--------------------+
1 row in set (0,00 sec)

Adesso che tutto è a posto si può procedere con il salvataggio delle tre Tabelle. Si utilizza il comando SELECT ... INTO OUTFILE:

mysql> SELECT * FROM Giocatori INTO OUTFILE '/Users/gfrank/Downloads/Giocatori.txt';
Query OK, 27 rows affected (0,07 sec)


mysql> SELECT * FROM Campionato INTO OUTFILE '/Users/gfrank/Downloads/Campionato.txt';
Query OK, 4 rows affected (0,00 sec)


mysql> SELECT * FROM Partita INTO OUTFILE '/Users/gfrank/Downloads/Partita.txt';
Query OK, 48 rows affected (0,00 sec)

Manuale Online: SELECT ... INTO OUTFILE

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