SQL

SQL e i database

 

Sql è lo standard per interfacciarsi con i database. E’ fondamentale non solo nella realizzazione e gestione dei sistemi informatici, ma anche nell’analisi dei dati che vanno recuperati, selezionati, raggruppati…

L’ho utilizzato in varie versioni (MySql, Sql Lite, Oracle, ….).

Ho fatto della semplice amministrazione di database, creato tabelle, eseguito query di varia complessità per elaborare i dati.

L’ho usato con:

Esercitazioni

Ho svolto degli esercizi per un corso di Sql per Data Science.

Un esempio è il seguente. Veniva assegnato un database con alcune tabelle, per rispodere alle domande occorreva eseguire istruzioni Sql.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
SELECT  SUM(prod_xy)*ABS(SUM(prod_xy))/(SUM(sq_diff_y)*SUM(sq_diff_x)) rho
FROM
(
  SELECT c1_t.diff_y, c1_t.diff_x, c1_t.diff_y*c1_t.diff_y sq_diff_y, c1_t.diff_x*c1_t.diff_x sq_diff_x, c1_t.diff_y*c1_t.diff_x prod_xy
  FROM
  (
    SELECT xy.x, av.mu_x, (xy.x - av.mu_x) diff_x, xy.y, av.mu_y, (xy.y - av.mu_y) diff_y
    FROM
      (SELECT fans x, useful y
      FROM user
      ) xy,
      (SELECT AVG(fans) mu_x, AVG(useful) mu_y
      FROM user
      ) av
  ) c1_t
) c2_t
SELECT  SUM(prod_xy)*ABS(SUM(prod_xy))/(SUM(sq_diff_y)*SUM(sq_diff_x)) rho
FROM
(
  SELECT c1_t.diff_y, c1_t.diff_x, c1_t.diff_y*c1_t.diff_y sq_diff_y, c1_t.diff_x*c1_t.diff_x sq_diff_x, c1_t.diff_y*c1_t.diff_x prod_xy
  FROM
  (
    SELECT xy.x, av.mu_x, (xy.x - av.mu_x) diff_x, xy.y, av.mu_y, (xy.y - av.mu_y) diff_y
    FROM
      (SELECT fans x, funny y
      FROM user
      ) xy,
      (SELECT AVG(fans) mu_x, AVG(funny) mu_y
      FROM user
      ) av
  ) c1_t
) c2_t

SELECT COUNT (funny)
FROM user
WHERE funny=0 and review_count != 0