Esercitazioni con il catalogo di Messier


--
--   di seguito il prompt "mysql>" viene omesso per semplificare il taglia-e-incolla
--

-- Ci posizioniamo del database "opus2017"

use opus2017;

-- Creiamo la tabella per contenere gli oggetti di Messier e carichiamo il file CSV

CREATE TABLE messier (
  M     int NOT NULL,
  Type  char(2) DEFAULT '**',
  Const char(3) DEFAULT '***',
  Mag   float DEFAULT NULL,
  Ra    float DEFAULT NULL,
  Decl  float DEFAULT NULL,
  Dist  char(20) DEFAULT NULL,
  App_size char(20) DEFAULT 'unknown'
);

-- Verificare il percorso dove si trova il file - verificare anche la corretta estensione (.csv)
-- Notare che la prima riga del file contiene i nomi delle colonne, quindi la saltiamo (IGNORE 1 LINES)
-- Importante: su Windows il separatore di cartella e' comunque /
-- Quindi ad es. (cambiare il nome della cartella con i dati se diverso!):

load data local infile 'c:/dati_opus/messier.csv' into table messier fields terminated by ',' LINES TERMINATED BY '\n' IGNORE 1 LINES;


-- Descrizione delle colonne:
-- M = Codice dell'oggetto, da 1 a 110
-- Type = tipo di oggetto:
--     OC -> Open Cluster
--     GC -> Globular Cluster
--     GX -> Galaxy
--     PN -> Planetary Nebula
--     BN -> Bright Nebula
--     DN -> Dark Nebula
--     *2 -> Double Star
--     *C -> Star Cloud
-- Const = Nome della costellazione in cui si trovano
-- Mag = Magnitudine visuale
-- RA = Ascensione Retta
-- Decl = Declinazione
-- Dist = Distanza (anni luce)
-- App_size = Dimensione apparente (minuti di arco)


-- Facciamo delle query anche su questa tabella

-- I 3 oggetti piu' brillanti
select * from messier order by mag asc limit 3;

-- Tutti gli oggetti di tipo Globular Cluster (Ammasso Globulare)

select * from messier where type='OC';

-- Tutti gli oggetti nella costellazione di Perseo

select * from messier where Const like 'per%';

-- Contiamo quante Galassie ci sono

select count(*) as Numero_galassie from messier where Type = 'GX';


-- Continuare a piacere con altre query